panda3d / panda3d

Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU
https://www.panda3d.org/
Other
4.52k stars 785 forks source link

<Collide> causes a segmentation fault if the group has Lines inside of it #1515

Closed Wizzerinus closed 1 year ago

Wizzerinus commented 1 year ago

Description

Using a object inside a group with in any mode causes a segmentation fault when pview, egg2bam etc. is run. This happens even if the collide mode does not need to look at the line (i.e. Plane type is used)

Steps to Reproduce

Scene { 0 { 1 0 0 } 1 { 0 1 0 } 2 { 1 1 1 } 3 { 0 0 1 } } test { test { Plane descend } inside { { { 0 1 3 { Scene } } } { { 1 2 { Scene } } } } } ``` * Save as `file.egg` * Run `pview file.egg` If `` or `` is removed everything works, having both causes a segmentation fault ## Environment * Operating system: Linux * System architecture: 64x * Panda3D version: 1.10.12 (just tested, 1.10.13 also has this issue) * Installation method: pip * Python version (if using Python): 3.11.3
Wizzerinus commented 1 year ago

Btw: I do not know if non-polygon objects also have this problem. It seems that the other two egg nodes that can exist in a group are Patch and PointLight (and theres that one technical type that should not be in an egg), but I don't know how theyre used, nor if they're common, and nor if they crash.

rdb commented 1 year ago

It's composite primitives that can't be triangulated, which is just lines - the egg loader enters an infinite loop trying to "triangulate" the lines.