[x3d-public] SFRotation constructor axis argument by reference orvalue ?
GPU Group
gpugroup at gmail.com
Fri Mar 6 06:12:54 PST 2020
The 'last one set' rule sounds interesting for Viewpoint {
SFRotation orientation
SFVec3f direction
SFVec3f upVector
...
}
would allow both ways of setting orientation
On Fri, Mar 6, 2020 at 6:43 AM Andreas Plesch <andreasplesch at gmail.com>
wrote:
> I looked at the abstract and Java SAI spec. but they do not have more
> guidance.
>
> In my mind, the argument for the axis vector in the constructor to become
> decoupled from the rotation, eg. rot.y = 0 in the example, was that
> SFRotation is only defined in terms of float primitives, x,y,z and a. The
> constructor using axis is expected therefore to copy the axis x,y,z over
> and the axis vector would not be kept with the rotation (except perhaps
> internally for convenience).
>
> Of course, this is quite a lot to deduce from a few lines in the spec.
>
> my 2c,
>
> Andreas
>
> ---on the phone---
>
> On Thu, Mar 5, 2020, 4:04 PM Joseph D Williams <joedwil at earthlink.net>
> wrote:
>
>>
>> - So I would guess for ecmascript it should
>>
>> be rot.y = 1.0
>>
>>
>>
>> me too because rot values can be set as rot.x rot.y rot.z and rot.a
>>
>> and axis can be set by by axis.x axis.y and axis.z
>>
>> so in this example the last one set is the final value.
>>
>> Joe
>>
>>
>>
>> *From: *Andreas Plesch <andreasplesch at gmail.com>
>> *Sent: *Tuesday, March 3, 2020 7:08 AM
>> *To: *X3D Graphics public mailing list <x3d-public at web3d.org>
>> *Subject: *[x3d-public] SFRotation constructor axis argument by
>> reference orvalue ?
>>
>>
>>
>> In the ecmascript SAI, SFRotation has a constructor which has the
>>
>> rotation axis as a SFVec3f argument:
>>
>>
>>
>> new SFRotation ( SFVec3f axis, numeric angle )
>>
>>
>>
>>
>> https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html#SFRotation
>>
>> (Table 7.18, -url in the first sentence is off-)
>>
>>
>>
>> The question is when I make a new SFRotation and later change the
>>
>> SFVec3f which was used for the axis, does the previously constructed
>>
>> SFRotation also change ?
>>
>>
>>
>> axis = new SFVec3f ( 0, 0, 1 );
>>
>> rot = new SFRotation( axis, 3.14 );
>>
>> axis.y = 1.0
>>
>> axis.z = 0.0
>>
>> // rot.y is ?
>>
>> // constructed by value: rot.y = 0.0
>>
>> // constructed by reference: rot.y = 1.0
>>
>>
>>
>> I did not check the abstract SAI spec. for guidance so it is very
>>
>> possible I missed something.
>>
>>
>>
>> This is just an example. There are of course other constructors which
>>
>> use objects as parameters. It is also probably rare that a script
>>
>> would want to do this.
>>
>>
>>
>> It may depend on the scripting language. In ecmascript objects are
>>
>> passed by reference, you have to explicitly make a copy if you need
>>
>> it. This is for performance. So I would guess for ecmascript it should
>>
>> be rot.y = 1.0 .
>>
>>
>>
>> -Andreas
>>
>>
>>
>>
>>
>> --
>>
>> Andreas Plesch
>>
>> Waltham, MA 02453
>>
>>
>>
>> _______________________________________________
>>
>> x3d-public mailing list
>>
>> x3d-public at web3d.org
>>
>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>
>>
>>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200306/23b828ab/attachment.html>
More information about the x3d-public
mailing list