StaticRotation

Inherits Rotation

A StaticRotation is using a fixed and constant rotation factor that does not change over time. The rotation value is provided as a property that can be changed at runtime, but it will not change automatically over time.

Members

Name

Documentation

Type

Description

Optional

Rotation

Stores the static rotation as a vector containing Euler angles, a quaternion representation, or a rotation matrix. For the Euler angles, the values have to be provided in radians. To convert degres to radians, you can use the math.rad function. For the Quaternion representation, the values have to be provided in the order (w, x, y, z). For the matrix form, the provided matrix will be converted into Euler angles, an operation which might fail if the matrix is not a true rotation matrix. The values are assumed to be in row-major order.

Vector3<double>, Vector4<double>, or Matrix3x3<double>

Value of type ‘Vector3’, Value of type ‘Vector4’, or Value of type ‘Matrix3x3

No

Inherited members from Rotation

Name

Documentation

Type

Description

Optional

Type

The type of the rotation that is described in this element. The available types of rotations depend on the configuration of the application and can be written to disk on application startup into the FactoryDocumentation

String

Must name a valid Rotation type

No

TimeFrame

The time frame in which this Rotation is applied. If the in-game time is outside this range, no rotation will be applied.

Table

TimeFrame

Yes

Asset Examples

Matrix

This asset creates a scene graph node that only displays coordinate axes. The rotation of the coordinate axes are determined by a constant and unchanging static rotation that is provided by a 3-by-3 rotation matrix in column-major order.

 1local Node = {
 2  Identifier = "StaticRotation_Example_Matrix",
 3  Transform = {
 4    Rotation = {
 5      Type = "StaticRotation",
 6      Rotation = {
 7        -0.9999987, -0.0015927, 0.0000000,
 8         0.0015927, -0.9999987, 0.0000000,
 9         0.0000000,  0.0000000, 1.0000000
10      }
11    }
12  },
13  Renderable = {
14    Type = "RenderableCartesianAxes"
15  },
16  GUI = {
17    Name = "StaticRotation - Matrix",
18    Path = "/Examples"
19  }
20}
21
22asset.onInitialize(function()
23  openspace.addSceneGraphNode(Node)
24end)
25
26asset.onDeinitialize(function()
27  openspace.removeSceneGraphNode(Node)
28end)
Time Frame

This asset creates a rotation that is only applied between 2000 JAN 01 and just prior to 2002 JAN 01. The rotation of the coordinate axes shown by this scene graph node are determined by a constant and unchanging static rotation.

 1local Node = {
 2  Identifier = "StaticRotation_Example_TimeFrame",
 3  Transform = {
 4    Rotation = {
 5      Type = "StaticRotation",
 6      Rotation = { math.pi / 2.0, 0.0, math.pi },
 7      TimeFrame = {
 8        Type = "TimeFrameInterval",
 9        Start = "2000 JAN 01",
10        End = "2002 JAN 01"
11      }
12    }
13  },
14  Renderable = {
15    Type = "RenderableCartesianAxes"
16  },
17  GUI = {
18    Name = "StaticRotation - Time Frame",
19    Path = "/Examples"
20  }
21}
22
23asset.onInitialize(function()
24  openspace.addSceneGraphNode(Node)
25end)
26
27asset.onDeinitialize(function()
28  openspace.removeSceneGraphNode(Node)
29end)
Quaternion

This asset creates a scene graph node that only displays coordinate axes. The rotation of the coordinate axes are determined by a constant and unchanging static rotation that is provided by a four-dimensional quaternion.

 1local Node = {
 2  Identifier = "StaticRotation_Example_Quaternion",
 3  Transform = {
 4    Rotation = {
 5      Type = "StaticRotation",
 6      Rotation = { 0.4873552, -0.4869268, -0.5127203, 0.5123526 }
 7    }
 8  },
 9  Renderable = {
10    Type = "RenderableCartesianAxes"
11  },
12  GUI = {
13    Name = "StaticRotation - Quaternion",
14    Path = "/Examples"
15  }
16}
17
18asset.onInitialize(function()
19  openspace.addSceneGraphNode(Node)
20end)
21
22asset.onDeinitialize(function()
23  openspace.removeSceneGraphNode(Node)
24end)
Euler Angles

This asset creates a rotation provided by Euler angles and applies it to a scene graph node that only displays coordinate axes. The rotation of the coordinate axes are determined by a constant and unchanging static rotation.

 1local Node = {
 2  Identifier = "StaticRotation_Example_Euler",
 3  Transform = {
 4    Rotation = {
 5      Type = "StaticRotation",
 6      Rotation = { math.pi / 2.0, 0.0, math.pi }
 7    }
 8  },
 9  Renderable = {
10    Type = "RenderableCartesianAxes"
11  },
12  GUI = {
13    Name = "StaticRotation - Euler Angles",
14    Path = "/Examples"
15  }
16}
17
18asset.onInitialize(function()
19  openspace.addSceneGraphNode(Node)
20end)
21
22asset.onDeinitialize(function()
23  openspace.removeSceneGraphNode(Node)
24end)