You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm aware the below polygons aren't a valid 'solid', omitting some polygons for clarity.
In my 'real' code I'm using g/extrude some-poly {:depth 280} on some 100 different extruded polygons, which all are succeeding apart from the one below.
It seems to be related to the *eps* value which makes compute-split-types classify the polygon wrongly. ie: t is larger then *eps* or t smaller then (- *eps*) hence the polygon gets split-type 1 or 2, instead of the expected split-type 0 (as a csg-node with a single polygon of course should).
Not sure how to handle this. Guess there's some 'best' *eps*.
For now I'll fiddle with (set! thi.ng.math.core/*eps* MY_EPSILON)
Setting *eps* to 0.001 fixes the issue above, but well, guess it'll introduce others :)
NOTE: the t of the problem polygon in previous post is 0.000003032253516721539 with the default *eps* of 0.000001. Hence.
I'm aware the below polygons aren't a valid 'solid', omitting some polygons for clarity.
In my 'real' code I'm using
g/extrude some-poly {:depth 280}
on some 100 different extruded polygons, which all are succeeding apart from the one below.This fails with "call stack size exceeded":
But with the first polygon only
mesh->csg
succeeds:With the second polygon only
mesh->csg
throws "call stack size exceeded" (?!)This is bizarre :-) Seems the call to
csg-node
ends up in an endless loop.Question of course is: how the hell can that happen with a single polygon?
It looks like some specific polygon orientations induce the problem.
Below the full "problem" mesh:
The polygon used with
(g/extrude poly {:depth 280})
The text was updated successfully, but these errors were encountered: