On Thu, Aug 7, 2008 at 9:55 AM, Ralf Gerlich wrote:

> Sorry to correct you, but in Triangle::build() the segment lists are
> built using TGTriSegments::unique_divide_and_add(), which does segment
> splitting if TerraGear thinks that one of the end-nodes lies on an
> already known edge. These checks seem to be less exact than the
> predicates used by TriangleJRS ;-)
>

Hi Ralf and Fred,

Both of you have helped refresh my memory. :-)

Yes, there is code to split long features of polygons so they can more
naturally follow the underlying terrain features.  A single mile long edge
across varying terrain looks extremely ugly whereas splitting this up into
200m or 400m segments allows the feature to more naturally follow the
underlying terrain.  However, this is on a very large scale so shouldn't
cause any numerical accuracy problems.

As Ralf points out, there is code that attempts to find stray nodes that lie
on existing edges and split the edge at that point.  When this situation
exists, it can lead to degenerate behavior.  As I understand it, the
terragear check should be more ambitious than the TriangleJRS check in order
to prevent problems down stream.

You can tune the thresholds for detection of this situation, but the looser
you make the constraints, the more you are likely to alter the original
geometry which will create artifacts in the final result.

Regards,

Curt.
-- 
Curtis Olson: http://baron.flightgear.org/~curt/
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to