• Create Account

We're offering banner ads on our site from just \$5!

Don't forget to read Tuesday's email newsletter for your chance to win a free copy of Construct 2!

Артем Шубович

Member Since 20 Jan 2012
Offline Last Active Jan 24 2012 07:20 AM

least square conformal map

20 January 2012 - 06:06 AM

I'm trying to implement LSCM algorithm. And i really stuck understanding it when reached "charts growth" section.

I've found this comment within Galaxy 3/4 engine sources:

```The original LSCM algorithm for growing charts :

-----------------------

EdgeHeap : heap of directed edges (with associated face F(edge))
sorted by dist(F(edge)) (dist is distance to feature)

mark all edges as "chart boundaries"
track is_boundary(edge)

track chart(face) , tells you which chart a face is in

EdgeHeap contains all edge to consider growing a chart from

Seed charts :
{
chart[i] = seed face
push edges of seed face to EdgeHeap
}
// each connected area must have at least one seed
// each connected area that is not a disk must have at least *two* seeds

// grow charts :
while EdgeHeap not empty :
{
edge = EdgeHeap.pop
// assert is_boundary(edge)
face = F(edge) // is the face to consider adding
prev = F(edge flipped) // is the face growing off of
// assert chart(prev) != none

if ( chart(face) = none )
{
add face to chart(prev)
set is_boundary(edge) = false
consider edges of "face" and "prev" ; any edge which is not connected to two other
is_boundary() edges, mark as not being is_boundary() either
push edges of face to EdgeHeap (if they are is_boundary() true)
}
else if ( chart(face) != chart(prev) )
{
// consider merging the charts

}
}```

It's totally dark for me. In the original algorithm, author uses "facet" terminus and "distance from half-edge to facet" but again, i can not imagine what is that "facet" and how can i find the distance from my half-edge to it.

Could anyone help me understanding that stuff? I just need to un-chart my entire mesh and then perform some algebra. I understood that algebra mostly, but i stuck a bit earlier i hoped

PS: i've got some sources on Github detecting and growing features.

PARTNERS