[x3d-public] SFRotation default value spec. inconsistency
Andreas Plesch
andreasplesch at gmail.com
Fri Feb 14 11:35:42 PST 2025
Let me just add for clarity that the length (or norm) of a quaternion
includes the fourth, the scalar component. The norm is the square root of
the sum of the squares of all four components.
Only unit quaternions represent rotations. A (0,0,0,0) quaternion does not
represent any rotation (but of course exists outside of rotations).
Andreas
PS: To add back in some fuzziness, a unit quaternion can only represent a
rotation up to 360 degrees. I think there is a mechanism to use non-unit
quaternions for larger rotations.
On Fri, Feb 14, 2025 at 10:22 AM Holger Seelig <holger.seelig at yahoo.de>
wrote:
> All quaternions must be normalized to be a legal rotation, so the length
> of the quaternion must always be one.
>
> Holger
> --
> Holger Seelig
> Leipzig, Germany
>
> holger.seelig at yahoo.de
> https://create3000.github.io/x_ite/
>
> Am 14.02.2025 um 15:38 schrieb Joe D Williams via x3d-public <
> x3d-public at web3d.org>:
>
> > So, sensibly, a zero rotation around any axis corresponds to the "zero
> unit Quaternion" (0, 0, 0, 1 XYZW),
>
>
> Right. Not sure but 0 0 0 0 for unit quaternion might not be legal. I
> think the values must compute to1 to be legal?
> Thanks,
> Joe
>
>
>
>
>
> -----Original Message-----
> From: Andreas Plesch <andreasplesch at gmail.com>
> Sent: Feb 10, 2025 12:37 PM
> To: Joe D Williams <joedwil at earthlink.net>
> Cc: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org>
> Subject: Re: [x3d-public] SFRotation default value spec. inconsistency
>
>
> https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_node_rotation
> has indeed (0, 0, 0, 1 XYZW) as a default value.
>
> This is difficult to interpret as a rotation around an axis since the
> corresponding axis would be at first glance (0 0 0).
>
> x3dom converts quaternion (0, 0, 0, 1 XYZW) to (axis),angle (0,0,0),0 as
> does https://www.andre-gaschler.com/rotationconverter/ .
>
> On the other hand both SFRotation (0 0 1 0) and SFRotation (0 1 0 0) are
> also represented by quaternion (0, 0, 0, 1 XYZW).
>
> So, sensibly, a zero rotation around any axis corresponds to the "zero
> unit Quaternion" (0, 0, 0, 1 XYZW), making it a useful default value for
> quaternions. But that does not help with choosing a default axis for the
> SFRotation value.
>
> This will rarely matter. A use case may be when a SFRotation is
> initialized to the X3D default in a Proto but then only the angle is
> modified by a Proto script with the assumption that the axis is (0 0 1).
>
> -Andreas
>
> On Mon, Feb 10, 2025 at 12:57 PM Joe D Williams <joedwil at earthlink.net>
> wrote:
>
>> not zerp, zero
>>
>> -----Original Message-----
>> From: Extensible 3D (X3D) Graphics public discussion <
>> x3d-public at web3d.org>
>> Sent: Feb 10, 2025 9:50 AM
>> To: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org>,
>> X3D Graphics public mailing list <x3d-public at web3d.org>
>> Cc: Joe D Williams <joedwil at earthlink.net>, Andreas Plesch <
>> andreasplesch at gmail.com>
>> Subject: Re: [x3d-public] SFRotation default value spec. inconsistency
>>
>>
>> I think the 0 0 1 0 should be used everywhere for default axis-angle.
>> I thinkI see 'zerp' unit quaternions (as in gltf as 0 0 0 1 XYZW)
>> Thanks,
>> Joe
>>
>>
>>
>> -----Original Message-----
>> From: Extensible 3D (X3D) Graphics public discussion <
>> x3d-public at web3d.org>
>> Sent: Feb 10, 2025 8:44 AM
>> To: X3D Graphics public mailing list <x3d-public at web3d.org>
>> Cc: Andreas Plesch <andreasplesch at gmail.com>
>> Subject: Re: [x3d-public] SFRotation default value spec. inconsistency
>>
>>
>> The JS SAI spec. at
>> https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html#FieldServices
>>
>> does not list functions for SFColorRGBA, only SFColor. There may be an
>> earlier report. -Andreas
>>
>> On Mon, Feb 10, 2025 at 11:31 AM Andreas Plesch <andreasplesch at gmail.com>
>> wrote:
>>
>>>
>>> https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/fieldTypes.html#SFRotationAndMFRotation
>>>
>>> specifies that (0 0 1 0) is the value of an uninitialized SFRotation
>>> given as (x y z a).
>>>
>>> However, the JS SAI spec. in table 7.18 in
>>> https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html#SFRotationInstanceCreationFunction
>>>
>>> effectively makes (0 1 0 0) the default value if no parameters are
>>> provided.
>>>
>>> The inconsistency does not have much of an impact since both are 0
>>> rotations but I believe (0 1 0 0) - a 0 rotation around y - may have been
>>> intended as the default.
>>>
>>> -Andreas
>>>
>>> --
>>> Andreas Plesch
>>> Waltham, MA 02453
>>>
>>
>>
>> --
>> Andreas Plesch
>> Waltham, MA 02453
>>
>>
>>
>>
>>
>
>
> --
> Andreas Plesch
> Waltham, MA 02453
>
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
>
>
--
Andreas Plesch
Waltham, MA 02453
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250214/18f3f87e/attachment.html>
More information about the x3d-public
mailing list