[x3d-public] computed orientation_changed output
Andreas Plesch
andreasplesch at gmail.com
Sun Sep 1 20:36:21 PDT 2024
Hi Don,
Ok, I will make a start for prose clarification of
https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/nurbs.html#NurbsOrientationInterpolator
"This orientation value shall be then sent by value_changed."
->
"This orientation is given as a rotation relative to the default
orientation in the local coordinate system and is defined in the same
way as the orientation of
https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/navigation.html#X3DViewpointNode
. This value is sent by value_changed."
Strictly speaking, this is still a bit ambiguous since the same
orientation can be expressed as different rotations which all have the
same effect. Viewpoint.orientation or
SFRotation(SFVec3f fromVector, SFVec3f toVector) have the same
ambiguity. However, this may never matter in practice.
For example, using (0,0,-1) as default orientation
(1, 0, 0) orientation -> (0 1 0 -pi/2) rotation
(1, 0, 0) orientation -> (0 -1 0 pi/2) rotation
(I hope I got it right.)
There may be other X3D nodes which output rotations which are orientations ?
-Andreas
On Sun, Sep 1, 2024 at 7:45 PM Brutzman, Donald (Don) (CIV)
<brutzman at nps.edu> wrote:
>
> Draft Specification pros is welcome. This isn't always easy, but it is an excellent path towards clarity. In this case we might need to adapt a figure as well. Thanks for considering the possibilities!
>
> v/r Don
> ________________________________
> From: x3d-public <x3d-public-bounces at web3d.org> on behalf of Andreas Plesch via x3d-public <x3d-public at web3d.org>
> Sent: Saturday, August 31, 2024 8:48:14 AM
> To: Holger Seelig <holger.seelig at yahoo.de>
> Cc: Andreas Plesch <andreasplesch at gmail.com>; X3D <x3d-public at web3d.org>
> Subject: Re: [x3d-public] computed orientation_changed output
>
> I think the issue is that the spec. only defines the toVector (as the tangent) but is silent on the fromVector. It is a reasonable assumption that the fromVector is implied as 0,0,-1 ("forward") and most implementations will do that. But in theory it could be any vector.
>
> An additional ambiguity is that there are two possible rotations from a vector to another vector. One is using the inverted axis of the other. But as long as these rotations are only used to actually be applied as rotations, this may not matter as both lead the same result.
>
> Andreas
>
> On Sat, Aug 31, 2024, 6:14 AM Holger Seelig <holger.seelig at yahoo.de> wrote:
>
> It is possible to calculate a rotation from fromVector to toVector, but these rotations have an arbitrary upVector.
>
> And yes, it would be better to have a defined upVector to make these rotations stable.
>
> Holger
>
> --
> Holger Seelig
> Leipzig, Germany
>
> holger.seelig at yahoo.de
> https://create3000.github.io/x_ite/
>
> Am 30.08.2024 um 23:45 schrieb Patrick Dähne <pdaehne at gmail.com>:
>
> Unfortunately, it is not possible to implement NurbsOrientationInterpolator because it is not specified how to calculate the „up“ vector (the tangent of the curve only specifies the z axis, but neither the x nor y axis of the local coordinate system). The same applies to any other hypothetical „xOrientationInterpolator“.
>
> Bye,
>
> Patrick
>
>
--
Andreas Plesch
Waltham, MA 02453
More information about the x3d-public
mailing list