Difference between revisions of "NiAVObjectSetLocalRotation"
Jump to navigation
Jump to search
imported>DragoonWraith |
Tag: Manual revert |
||
(8 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
'''Syntax''' | '''Syntax''' | ||
(bool:success) | (bool:success) NiAVObjectSetLocalRotation array_var:rotation short:nifID ''short:blockID'' | ||
(bool:success) NiAVObjSetLocRot array_var:rotation short:nifID ''short:blockID'' | |||
Sets the local rotation of the specified | Sets the local rotation of the specified <tt>NiAVObject</tt>-derived block. Since <tt>blockID</tt> defaults to 0, the NIF's root <tt>NiNode</tt>, and <tt>NiNode</tt> is derived from <tt>NiAVObject</tt>, this function will change the local rotation of the NIF's root if called with no explicit <tt>blockID</tt>. | ||
The passed <tt>array_var</tt> must be a 3×3 [[GenerateRotationMatrix|rotation matrix]] | |||
== Example == | == Example == | ||
This script will rotate each of the root's children, which are <tt>NiAVObject</tt> blocks, 180° about the X axis. This will effectively flip the NIF upside-down. | |||
array_var R | |||
== | array_var children | ||
array_var child | |||
short nifID | |||
short blockID | |||
... | |||
let R := GenerateRotationMatrix X 180 | |||
let children := NiNodeGetChildren nifID | |||
foreach child <- children | |||
let blockID := *child | |||
let locRot := NiAVObjectGetLocalRotation nifID blockID | |||
let locRot := MatrixMultiply R locRot ; order matters | |||
NiAVObjectSetLocalRotation locRot nifID blockID | |||
loop | |||
== See Also == | == See Also == | ||
* [[ | * [[NiAVObjectGetLocalRotation]] | ||
* [[ | * [[NiAVObjectSetLocalTransform]] | ||
* [[ | * [[NiAVObjectSetLocalTranslation]] | ||
* [[ | * [[NiAVObjectSetLocalScale]] | ||
== External Links == | == External Links == | ||
* [http://en.wikipedia.org/wiki/Rotation_representation#Rotation_matrix Wikipedia: Rotation Matrices] | * [http://en.wikipedia.org/wiki/Rotation_representation#Rotation_matrix Wikipedia: Rotation Matrices] | ||
[[Category:NifSE| | [[Category:NifSE|AVObjectSetLocalRotation]] | ||
[[Category:NifSE ( | [[Category:NifSE (NiAVObject)|SetLocalRotation]] |
Latest revision as of 12:19, 21 December 2023
This is a command from NifSE.
Syntax
(bool:success) NiAVObjectSetLocalRotation array_var:rotation short:nifID short:blockID (bool:success) NiAVObjSetLocRot array_var:rotation short:nifID short:blockID
Sets the local rotation of the specified NiAVObject-derived block. Since blockID defaults to 0, the NIF's root NiNode, and NiNode is derived from NiAVObject, this function will change the local rotation of the NIF's root if called with no explicit blockID.
The passed array_var must be a 3×3 rotation matrix
Example[edit | edit source]
This script will rotate each of the root's children, which are NiAVObject blocks, 180° about the X axis. This will effectively flip the NIF upside-down.
array_var R array_var children array_var child short nifID short blockID ... let R := GenerateRotationMatrix X 180 let children := NiNodeGetChildren nifID foreach child <- children let blockID := *child let locRot := NiAVObjectGetLocalRotation nifID blockID let locRot := MatrixMultiply R locRot ; order matters NiAVObjectSetLocalRotation locRot nifID blockID loop
See Also[edit | edit source]