# least square conformal map

This topic is 2192 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

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:

[CODE]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 )
{
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

}
}[/CODE]

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 [img]http://public.gamedev.net//public/style_emoticons/default/tongue.png[/img]

PS: i've got some [url="https://github.com/shybovycha/irrPaint3D"]sources on Github[/url] detecting and growing features.