[x3d-public] SFRotation constructor axis argument by reference or value ?
Don Brutzman
brutzman at nps.edu
Tue Mar 3 09:23:14 PST 2020
[Dick and I are on a teleconference]
The way that you have written this, it looks to us like each object is independent.
Thus if you create a 'rot' SFRotation object, its values are passed by value only change if they are directly modified.
This seems to be a straightforward case of object encapsulation. For those interested in learning more, general information:
* Encapsulation (computer programming)
https://en.wikipedia.org/wiki/Encapsulation_(computer_programming)
On 3/3/2020 7:06 AM, Andreas Plesch wrote:
> 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
all the best, Don
--
Don Brutzman Naval Postgraduate School, Code USW/Br brutzman at nps.edu
Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman
More information about the x3d-public
mailing list