Node Transform Properties

Unless otherwise noted, the following transform properties are always interpreted with respect to the current working coordinate system as defined by the currently active coordsys context. The default coordsys is world. The pos, rotation, and scale properties of a node are aliases to the corresponding subcontroller for the node's transform controller. If the transform controller does not have one of these subcontrollers, accessing the corresponding node property will result in an "Unknown property" error message. For example, the LookAt controller does not have a Rotation subcontroller, and the IK controller does not have any subcontrollers. You can still access the transform values using the Matrix3 properties of the node's transform property, for example, objpos=obj.transform.translationpart.

<node>.transform           : Matrix3 -- can read/write to. If written to,

                           : the Matrix3 value is decomposed into its

                           : position, rotation, and scale values, and these

                           : values are stored in the respective position,

                           : rotation, and scale controllers, if those

                           : controllers exist and can be written to.

<node>.pos                 : Point3 -- can use .position synonym throughout

<node>.pos.controller      : Controllerùcan use .track synonym throughout

<node>.pos.isAnimated      : Boolean, read-onlyùtrue if position is animated

<node>.pos.keys            : MAXKeyArray

<node>.pos.track           : Controllerùsynonym of .pos.controller

<node>.rotation            : Quat

<node>.rotation.x_rotation : X rotation of node

<node>.rotation.y_rotation : Y rotation of node

<node>.rotation.z_rotation : Z rotation of node

<node>.rotation.controller : Controllerùcan use .track synonym throughout

<node>.rotation.isAnimated : Boolean, read-onlyùtrue if rotation is animated

<node>.rotation.keys       : MAXKeyArray

<node>.rotation.track      : Controllerùsynonym of .rotation.controller

<node>.scale               : Point3 -- fraction

<node>.scale.controller    : Controllerùcan use .track synonym throughout

<node>.scale.isAnimated    : Boolean, read-onlyùtrue if scale is animated

<node>.scale.keys          : MAXKeyArray

<node>.scale.track         : Controllerùsynonym of .scale.controller

<node>.dir                 : Point3 -- local z-axis direction vector

Rotates node so that the node's Z axis points in the specified direction. The node is rotated around its Z axis such that the Y axis points as much as possible in the world -Z direction.

<node>.max                 : Point3, read-onlyùmax coordinates of node's bounding box

<node>.min                 : Point3, read-onlyùmin coordinates of node's bounding box

<node>.center              : Point3 -- coordinates of center of node's bounding box

<node>.transform           : Matrix3 -- node's main transformation matrix

Note that rotation in the internal transformation matrices is left-handed in contradiction to the 3ds max user interface and MAXScript. Take care when mixing rotation derived from these matrices and rotation used in rotation-related functions or from rotation properties.

<node>.pivot               : Point3  -- node's pivot point position

<node>.objectOffsetPos     : Point3

<node>.objectOffsetRot     : Quat

<node>.objectOffsetScale   : Point3

Node geometry's position, rotation, and scale offset from the pivot in world coordinates.

<node>.objectTransform     : Matrix3, read-only

Node geometry's offset in world coordinates.

See also