[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