degenerate polyhedron faces ok?

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

degenerate polyhedron faces ok?

adrianv
Is it legal to give a polyhedron faces that have zero area, e.g. a face like
[ [0,0,0],[0,0,0], [0,0,1],[0,0,1]]?  Or a degenerate "triangle" like
[[0,0,0],[0,0,0],[0,0,1]]?   What about a completely degenerate faces where
all vertices are equal?  

In trying to implement a certain degenerate case in my code I have used some
degenerate faces and it appears to work.  (I can render, and add multiple
polyhedra to the model.)   But I wonder if there might be hidden problems.  




--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: degenerate polyhedron faces ok?

doug.moen
Degenerate faces like this should generally be avoided. The face has zero area, and the normal vector is [0,0,0]. That's considered defective, and some programs will not allow you to import such a mesh. Other programs won't have a problem.

On Mon, Nov 18, 2019, at 8:24 PM, adrianv wrote:

> Is it legal to give a polyhedron faces that have zero area, e.g. a face like
> [ [0,0,0],[0,0,0], [0,0,1],[0,0,1]]?  Or a degenerate "triangle" like
> [[0,0,0],[0,0,0],[0,0,1]]?   What about a completely degenerate faces where
> all vertices are equal?  
>
> In trying to implement a certain degenerate case in my code I have used some
> degenerate faces and it appears to work.  (I can render, and add multiple
> polyhedra to the model.)   But I wonder if there might be hidden problems.  
>
>
>
>
> --
> Sent from: http://forum.openscad.org/
>
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: degenerate polyhedron faces ok?

nophead
I think CGAL will throw an exception if you do a union with a unit cube();

On Tue, 19 Nov 2019 at 01:27, Doug Moen <[hidden email]> wrote:
Degenerate faces like this should generally be avoided. The face has zero area, and the normal vector is [0,0,0]. That's considered defective, and some programs will not allow you to import such a mesh. Other programs won't have a problem.

On Mon, Nov 18, 2019, at 8:24 PM, adrianv wrote:
> Is it legal to give a polyhedron faces that have zero area, e.g. a face like
> [ [0,0,0],[0,0,0], [0,0,1],[0,0,1]]?  Or a degenerate "triangle" like
> [[0,0,0],[0,0,0],[0,0,1]]?   What about a completely degenerate faces where
> all vertices are equal? 
>
> In trying to implement a certain degenerate case in my code I have used some
> degenerate faces and it appears to work.  (I can render, and add multiple
> polyhedra to the model.)   But I wonder if there might be hidden problems. 
>
>
>
>
> --
> Sent from: http://forum.openscad.org/
>
> _______________________________________________
> OpenSCAD mailing list
> [hidden email]
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: degenerate polyhedron faces ok?

adrianv
Nope.  Adding more geometry doesn't cause render to fail.  


nophead wrote
> I think CGAL will throw an exception if you do a union with a unit cube();
>
> On Tue, 19 Nov 2019 at 01:27, Doug Moen &lt;

> doug@

> &gt; wrote:
>
>> Degenerate faces like this should generally be avoided. The face has zero
>> area, and the normal vector is [0,0,0]. That's considered defective, and
>> some programs will not allow you to import such a mesh. Other programs
>> won't have a problem.
>>
>> On Mon, Nov 18, 2019, at 8:24 PM, adrianv wrote:
>> > Is it legal to give a polyhedron faces that have zero area, e.g. a face
>> like
>> > [ [0,0,0],[0,0,0], [0,0,1],[0,0,1]]?  Or a degenerate "triangle" like
>> > [[0,0,0],[0,0,0],[0,0,1]]?   What about a completely degenerate faces
>> where
>> > all vertices are equal?
>> >
>> > In trying to implement a certain degenerate case in my code I have used
>> some
>> > degenerate faces and it appears to work.  (I can render, and add
>> multiple
>> > polyhedra to the model.)   But I wonder if there might be hidden
>> problems.
>> >
>> >
>> >
>> >
>> > --
>> > Sent from: http://forum.openscad.org/
>> >
>> > _______________________________________________
>> > OpenSCAD mailing list
>> >

> Discuss@.openscad

>> > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>> >
>>
>> _______________________________________________
>> OpenSCAD mailing list
>>

> Discuss@.openscad

>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>>
>
> _______________________________________________
> OpenSCAD mailing list

> Discuss@.openscad

> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org





--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: degenerate polyhedron faces ok?

nophead
Possibly because simple degenerate triangles get removed but ones where the sum of two sides equals the third and ones where two sides are equal and the third is zero don't get removed.

I made a branch where I removed all the degenerate triangles but decided it was pointless without also removing self intersections because both are consequences of truncating coordinates and grid snapping.

On Tue, 19 Nov 2019 at 11:01, adrianv <[hidden email]> wrote:
Nope.  Adding more geometry doesn't cause render to fail. 


nophead wrote
> I think CGAL will throw an exception if you do a union with a unit cube();
>
> On Tue, 19 Nov 2019 at 01:27, Doug Moen &lt;

> doug@

> &gt; wrote:
>
>> Degenerate faces like this should generally be avoided. The face has zero
>> area, and the normal vector is [0,0,0]. That's considered defective, and
>> some programs will not allow you to import such a mesh. Other programs
>> won't have a problem.
>>
>> On Mon, Nov 18, 2019, at 8:24 PM, adrianv wrote:
>> > Is it legal to give a polyhedron faces that have zero area, e.g. a face
>> like
>> > [ [0,0,0],[0,0,0], [0,0,1],[0,0,1]]?  Or a degenerate "triangle" like
>> > [[0,0,0],[0,0,0],[0,0,1]]?   What about a completely degenerate faces
>> where
>> > all vertices are equal?
>> >
>> > In trying to implement a certain degenerate case in my code I have used
>> some
>> > degenerate faces and it appears to work.  (I can render, and add
>> multiple
>> > polyhedra to the model.)   But I wonder if there might be hidden
>> problems.
>> >
>> >
>> >
>> >
>> > --
>> > Sent from: http://forum.openscad.org/
>> >
>> > _______________________________________________
>> > OpenSCAD mailing list
>> >

> Discuss@.openscad

>> > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>> >
>>
>> _______________________________________________
>> OpenSCAD mailing list
>>

> Discuss@.openscad

>> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
>>
>
> _______________________________________________
> OpenSCAD mailing list

> Discuss@.openscad

> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org





--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org