POV-Ray : Newsgroups : povray.unofficial.patches : csg error with megapov's solid mesh? : Re: csg error with megapov's solid mesh? Server Time
2 Sep 2024 06:13:44 EDT (-0400)
  Re: csg error with megapov's solid mesh?  
From: ryan constantine
Date: 29 Aug 2000 18:28:47
Message: <39AC391A.659EAEFF@yahoo.com>
what kind of meshes does this work on?  can it convert from regular to
mesh2?

Warp wrote:
> 
>   I have done this kind of triangle mesh "fixing" myself (in my triangle
> mesh smoother program).
>   The idea is quite simple:
> 
>   1. Take the first triangle and mark it as 'handled'.
> 
>   2. Search all the triangles which are adjacent to this one and are
>      not marked as 'handled'. An adjacent triangle is one that shares two
>      vertices with this one.
> 
>   3. Check if the adjacent triangle is ordered correctly. That is, if the
>      shared vertices are listed in inverse order in the adjacent triangle than
>      in the current triangle, then it's ok. If they are listed in the same
>      order, then you have to swap the other triangle.
> 
>   4. Now mark these adjacent triangles as 'handled' and for each one of them
>      make recursively steps 2, 3 and 4 until no more triangles are found.
> 
>   5. After that, search for some unhandled triangle. If the mesh consisted of
>      one contiguous surface, you'll not find any, but you have to do this
>      because the mesh may consist of several separate parts. If you find
>      an unhandled triangle, make all steps 1, 2, 3, 4 and 5 for it.
> 
>   This works pretty well, but it's very slow, specially with big meshes.
> The slowest step is the second one (ie. the searching). There's probably some
> way of speeding it up using some tree structure or hash table.
> 
> --
> main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
> ):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.