# Rotation¶

## Functionality¶

This node is used to make general rotation over geometry. It works directly over vertices, not with matrixes. Just like Blender, it offers 3 different types of rotation:

 Axis Rotation Based on axis (X, Y, Z) and a rotation angle (W)
Type of Rotation Description
Axis Rotation Based on axis (X, Y, Z) and a rotation angle (W)
Euler Rotation Using Euler Gimbal: 3 axis with a hierarchical relationship between them
Quaternion rotation Based on four values (X, Y, Z, W). W value will avoid X, Y, Z rotation

If you want to learn deeply about all this types of rotation, visit this link: http://wiki.blender.org/index.php/User:Pepribal/Ref/Appendices/Rotation

## Axis Rotation¶

This mode let us define an axis (X, y, Z), a center point and a rotation angle (W), in degrees, around the defined axis.

### Inputs¶

All inputs are vectorized and they will accept single or multiple values. There is four inputs:

• Vertices
• Center
• Axis
• Angle

### Parameters¶

All parameters except Vertices has a default value. Angle can be given by the node or an external input.

Param Type Default Description
Vertices Vertices none vertices to rotate
Center Vertices (0.0, 0.0, 0.0) point to place the rotation axis
Axis Vector (0.0, 0.0, 1.0) axis around which rotation will be done
Angle Float 0.00 angle in degrees to make rotation

### Outputs¶

Only Vertices will be generated. Depending on the type of the inputs, if more than one angle is set, then more objects will be outputted.

### Example of usage¶ In this example we use axis rotation with multiple inputs in axis an angle to create a complex geometry from just one plane.

## Euler Rotation¶

This mode is used to perform Euler rotations, refered to an Eular gimbal. A gimbal is a set of 3 axis that have a hierarchical relationship between them.

### Inputs¶

All inputs are vectorized and they will accept single or multiple values. There is four inputs:

• Vertices
• X
• Y
• Z

### Parameters¶

All parameters except Vertices has a default value. X, Y and Z can be given by the node or an external input.

Param Type Default Description
Vertices Vertices none vertices to rotate
X Float 0.00 value to X axis rotation
Y Float 0.00 value to Y axis rotation
Z Float 0.00 value to Z axis rotation
Order Enum XYZ order of the hierarchical relationship between axis

### Outputs¶

Only Vertices will be generated. Depending on the type of the inputs, if one or more inputs have multiple values, then more objects will be outputted.

### Example of usage¶  In the first example we use Euler rotation to perfomr a simple operation, we just rotate a plane around Z axis multiple times. The second is more complex, with multiple inputs in Y and Z to create a complex geometry from just one plane, simulating infinite loop.

## Quaternion Rotation¶

In this mode rotation is defined by 4 velues (X, Y, Z, W), but it works in a different way than Axis Rotation. The important thing es the relation between all four values. For example, X value rotate the object around X axis up to 180 degrees. The effect of W is to avoid that rotation and leave the element with zero rotation. The final rotation is a combination of all four values.

### Inputs¶

All inputs are vectorized and they will accept single or multiple values. There is five inputs:

• Vertices
• X
• Y
• Z
• W

### Parameters¶

All parameters except Vertices has a default value. X, Y, Z and W can be given by the node or an external input.

Param Type Default Description
Vertices Vertices none vertices to rotate
X Float 0.00 value to X axis rotation
Y Float 0.00 value to Y axis rotation
Z Float 0.00 value to Z axis rotation
W Float 1.00 value to Z axis rotation

### Outputs¶

Only Vertices will be generated. Depending on the type of the inputs, if one or more inputs have multiple values, then more objects will be outputted.

### Example of usage¶ As we can see in this example, we try to rotate the plan 45 degrees and then set W with multiple values, each higher than before, but the plane is never get to rotate 180 degrees.