[x3d-public] Edge cases of Extrusion

simon place psiplace at netscape.net
Sun Aug 23 21:16:51 PDT 2015


i've been trying to think of solutions;

restating the fundamental problem;  something at right-angles to a
line in 3D is a plane, with no unique direction to align a
cross-section with.

so in an attempt to get a sensible automatic base direction, the
current spec did this; special cases for straight splines, and then
use any turn in the spline to define the rotation origin ( the whole
SCP stuff.), but with a misunderstanding of the limitations of digital
maths, neither of these work, co-location, co-linearity and
co-orientation are not uniquely definable. the difference between
spline points that line-up or not, completely changing the geometry,
can always be smaller than the rounding error you are limited to,
however small you make it.

idea 1: have an invisible pre-defined section of spline before the
first, this might simplify specifying some edge cases, but still the
'digital maths'' problem.

idea 2: (as has been mentioned) have the spline start always in a
specific direction, and use transform to turn it.

idea 3: have the orientations be absolute, not depending in any way on
next or last spline points. this fixes all the problems, but doesn't
do as much automatically, however i think its simpler to understand,
and that shouldn't be underestimated. Notice this would allow
extrusions to easily split/combined.

other smaller issues:

closed cross-section and spline; basically another 'digital maths'
issue, you can not determine if these are closed or not from the
coordinates, so a smooth join (crease angle based) is unpredictable
(undefined) without flags.



also small bug in current spec.:

Quote: "Uniform extrusions:If the scale is (1, 1) and the spine is
straight, the cross-section is extruded uniformly without twisting or
scaling along the spine. The result is a cylindrical shape with a
uniform cross section."
that should be "prismatic" not "cylindrical" (cross section not
necessarily a circle) and scale (1,1) why?

On 10 August 2015 at 03:27, simon place <psiplace at netscape.net> wrote:
> FWIW
>
> see this discussion;
> http://sourceforge.net/p/castle-engine/tickets/13/  ,where Extrusion,
> as currently defined, is considered to be broken, having, as it does,
> discontinuities exactly at co-linear spline point arrangements and
> there being no way to consistently determine co-linearity due to
> standard maths rounding issues.



More information about the x3d-public mailing list