|
Kohi Game Engine
|
Go to the source code of this file.
Data Structures | |
| struct | ktransform_system_config |
Macros | |
| #define | KRENDERBUFFER_NAME_TRANSFORMS_GLOBAL "Kohi.StorageBuffer.TransformsGlobal" |
Typedefs | |
| typedef struct ktransform_system_config | ktransform_system_config |
Functions | |
| b8 | ktransform_system_initialize (u64 *memory_requirement, void *state, void *config) |
| void | ktransform_system_shutdown (void *state) |
| b8 | ktransform_system_update (struct ktransform_system_state *state, struct frame_data *p_frame_data) |
| KAPI ktransform | ktransform_create (u64 user) |
| Creates and returns a new ktransform, using a zero vector for position, identity quaternion for rotation, and a one vector for scale. Not marked dirty by default. More... | |
| KAPI ktransform | ktransform_clone (ktransform original, u64 user) |
| Creates and returns a new ktransform, using the position, rotation and scale of the provided original transform. Not marked dirty by default. More... | |
| KAPI void | ktransform_mark_dirty (ktransform transform) |
| KAPI ktransform | ktransform_from_position (vec3 position, u64 user) |
| Creates a ktransform from the given position. Uses a zero rotation and a one scale. More... | |
| KAPI ktransform | ktransform_from_rotation (quat rotation, u64 user) |
| Creates a ktransform from the given rotation. Uses a zero position and a one scale. More... | |
| KAPI ktransform | ktransform_from_position_rotation (vec3 position, quat rotation, u64 user) |
| Creates a ktransform from the given position and rotation. Uses a one scale. More... | |
| KAPI ktransform | ktransform_from_position_rotation_scale (vec3 position, quat rotation, vec3 scale, u64 user) |
| Creates a ktransform from the given position, rotation and scale. More... | |
| KAPI ktransform | ktransform_from_matrix (mat4 m, u64 user) |
| Creates a ktransform from the provided matrix. More... | |
| KAPI void | ktransform_destroy (ktransform *t) |
| Destroys the ktransform with the given handle, and frees the handle. More... | |
| KAPI b8 | ktransform_is_identity (ktransform t) |
| Indicates if the provided transform is an identity transform (i.e. zero position, identity rotation, one-scale). More... | |
| KAPI b8 | ktransform_parent_set (ktransform t, ktransform parent) |
| KAPI ktransform | ktransform_parent_get (ktransform t) |
| KAPI vec3 | ktransform_position_get (ktransform t) |
| Returns the local position of the given ktransform. More... | |
| KAPI vec3 | ktransform_world_position_get (ktransform t) |
| Returns the world position of the given ktransform. More... | |
| KAPI void | ktransform_position_set (ktransform t, vec3 position) |
| Sets the position of the given ktransform. More... | |
| KAPI void | ktransform_translate (ktransform t, vec3 translation) |
| Applies a translation to the given ktransform. Not the same as setting. More... | |
| KAPI quat | ktransform_rotation_get (ktransform t) |
| Returns the rotation of the given ktransform. More... | |
| KAPI quat | ktransform_world_rotation_get (ktransform t) |
| Returns the world rotation of the given ktransform. More... | |
| KAPI void | ktransform_rotation_set (ktransform t, quat rotation) |
| Sets the rotation of the given ktransform. More... | |
| KAPI void | ktransform_rotate (ktransform t, quat rotation) |
| Applies a rotation to the given ktransform. Not the same as setting. More... | |
| KAPI vec3 | ktransform_scale_get (ktransform t) |
| Returns the scale of the given ktransform. More... | |
| KAPI vec3 | ktransform_world_scale_get (ktransform t) |
| Returns the world scale of the given ktransform. More... | |
| KAPI void | ktransform_scale_set (ktransform t, vec3 scale) |
| Sets the scale of the given ktransform. More... | |
| KAPI void | ktransform_scale (ktransform t, vec3 scale) |
| Applies a scale to the given ktransform. Not the same as setting. More... | |
| KAPI void | ktransform_position_rotation_set (ktransform t, vec3 position, quat rotation) |
| Sets the position and rotation of the given ktransform. More... | |
| KAPI void | ktransform_position_rotation_scale_set (ktransform t, vec3 position, quat rotation, vec3 scale) |
| Sets the position, rotation and scale of the given ktransform. More... | |
| KAPI void | ktransform_translate_rotate (ktransform t, vec3 translation, quat rotation) |
| Applies translation and rotation to the given ktransform. More... | |
| KAPI void | ktransform_calculate_local (ktransform t) |
| KAPI mat4 | ktransform_local_get (ktransform t) |
| Retrieves the local ktransformation matrix from the provided ktransform. Automatically recalculates the matrix if it is dirty. Otherwise, the already calculated one is returned. More... | |
| KAPI mat4 | ktransform_world_get (ktransform t) |
| Obtains the world matrix of the given ktransform. More... | |
| KAPI u64 | ktransform_user_get (ktransform t) |
| KAPI void | ktransform_user_set (ktransform t, u64 user) |
| KAPI const char * | ktransform_to_string (ktransform t) |
| Returns a string representation of the ktransform pointed to by the given handle. More... | |
| KAPI b8 | ktransform_from_string (const char *str, u64 user, ktransform *out_ktransform) |
| Creates an ktransform from the given string. More... | |
| #define KRENDERBUFFER_NAME_TRANSFORMS_GLOBAL "Kohi.StorageBuffer.TransformsGlobal" |
| typedef struct ktransform_system_config ktransform_system_config |
| KAPI void ktransform_calculate_local | ( | ktransform | t | ) |
Recalculates the local matrix for the transform with the given handle.
| KAPI ktransform ktransform_clone | ( | ktransform | original, |
| u64 | user | ||
| ) |
Creates and returns a new ktransform, using the position, rotation and scale of the provided original transform. Not marked dirty by default.
| original | The transform to be cloned. |
| user | User data, typically a handle or pointer to something for reverse lookups. |
| KAPI ktransform ktransform_create | ( | u64 | user | ) |
Creates and returns a new ktransform, using a zero vector for position, identity quaternion for rotation, and a one vector for scale. Not marked dirty by default.
| user | User data, typically a handle or pointer to something for reverse lookups. |
| KAPI void ktransform_destroy | ( | ktransform * | t | ) |
Destroys the ktransform with the given handle, and frees the handle.
| t | A pointer to a handle to the transform to be destroyed. The handle itself is also invalidated. |
| KAPI ktransform ktransform_from_matrix | ( | mat4 | m, |
| u64 | user | ||
| ) |
Creates a ktransform from the provided matrix.
| m | The matrix to decompose and extract a transform from. |
| user | User data, typically a handle or pointer to something for reverse lookups. |
| KAPI ktransform ktransform_from_position | ( | vec3 | position, |
| u64 | user | ||
| ) |
Creates a ktransform from the given position. Uses a zero rotation and a one scale.
| position | The position to be used. |
| user | User data, typically a handle or pointer to something for reverse lookups. |
| KAPI ktransform ktransform_from_position_rotation | ( | vec3 | position, |
| quat | rotation, | ||
| u64 | user | ||
| ) |
Creates a ktransform from the given position and rotation. Uses a one scale.
| position | The position to be used. |
| rotation | The rotation to be used. |
| user | User data, typically a handle or pointer to something for reverse lookups. |
| KAPI ktransform ktransform_from_position_rotation_scale | ( | vec3 | position, |
| quat | rotation, | ||
| vec3 | scale, | ||
| u64 | user | ||
| ) |
Creates a ktransform from the given position, rotation and scale.
| position | The position to be used. |
| rotation | The rotation to be used. |
| scale | The scale to be used. |
| user | User data, typically a handle or pointer to something for reverse lookups. |
| KAPI ktransform ktransform_from_rotation | ( | quat | rotation, |
| u64 | user | ||
| ) |
Creates a ktransform from the given rotation. Uses a zero position and a one scale.
| rotation | The rotation to be used. |
| user | User data, typically a handle or pointer to something for reverse lookups. |
| KAPI b8 ktransform_from_string | ( | const char * | str, |
| u64 | user, | ||
| ktransform * | out_ktransform | ||
| ) |
Creates an ktransform from the given string.
| str | The string from which to create the ktransform. Should be either 'x y z qx qy qz qw sx sy sz' (quaternion rotation) OR 'x y z ex ey ez sx sy sz' (euler rotation) |
| user | User data, typically a handle or pointer to something for reverse lookups. |
| out_ktransform | A pointer to hold the handle to the newly created ktransform. |
| KAPI b8 ktransform_is_identity | ( | ktransform | t | ) |
Indicates if the provided transform is an identity transform (i.e. zero position, identity rotation, one-scale).
| t | A handle to the transform to be analyzed. |
| KAPI mat4 ktransform_local_get | ( | ktransform | t | ) |
Retrieves the local ktransformation matrix from the provided ktransform. Automatically recalculates the matrix if it is dirty. Otherwise, the already calculated one is returned.
| t | A handle to the ktransform whose matrix to retrieve. |
| KAPI void ktransform_mark_dirty | ( | ktransform | transform | ) |
Forces the transform to be dirty, thus forcing a recalculation on the next update.
| transform | The transform to flag as dirty. |
| KAPI ktransform ktransform_parent_get | ( | ktransform | t | ) |
| KAPI b8 ktransform_parent_set | ( | ktransform | t, |
| ktransform | parent | ||
| ) |
| KAPI vec3 ktransform_position_get | ( | ktransform | t | ) |
Returns the local position of the given ktransform.
| t | A handle whose position to get. |
| KAPI void ktransform_position_rotation_scale_set | ( | ktransform | t, |
| vec3 | position, | ||
| quat | rotation, | ||
| vec3 | scale | ||
| ) |
Sets the position, rotation and scale of the given ktransform.
| t | A handle to the ktransform to be updated. |
| position | The position to be set. |
| rotation | The rotation to be set. |
| scale | The scale to be set. |
| KAPI void ktransform_position_rotation_set | ( | ktransform | t, |
| vec3 | position, | ||
| quat | rotation | ||
| ) |
Sets the position and rotation of the given ktransform.
| t | A handle to the ktransform to be updated. |
| position | The position to be set. |
| rotation | The rotation to be set. |
| KAPI void ktransform_position_set | ( | ktransform | t, |
| vec3 | position | ||
| ) |
Sets the position of the given ktransform.
| t | A handle to the ktransform to be updated. |
| position | The position to be set. |
| KAPI void ktransform_rotate | ( | ktransform | t, |
| quat | rotation | ||
| ) |
Applies a rotation to the given ktransform. Not the same as setting.
| t | A handle to the ktransform to be updated. |
| rotation | The rotation to be applied. |
| KAPI quat ktransform_rotation_get | ( | ktransform | t | ) |
Returns the rotation of the given ktransform.
| t | A handle whose rotation to get. |
| KAPI void ktransform_rotation_set | ( | ktransform | t, |
| quat | rotation | ||
| ) |
Sets the rotation of the given ktransform.
| t | A handle to the ktransform to be updated. |
| rotation | The rotation to be set. |
| KAPI void ktransform_scale | ( | ktransform | t, |
| vec3 | scale | ||
| ) |
Applies a scale to the given ktransform. Not the same as setting.
| t | A handle to the ktransform to be updated. |
| scale | The scale to be applied. |
| KAPI vec3 ktransform_scale_get | ( | ktransform | t | ) |
Returns the scale of the given ktransform.
| t | A handle whose scale to get. |
| KAPI void ktransform_scale_set | ( | ktransform | t, |
| vec3 | scale | ||
| ) |
Sets the scale of the given ktransform.
| t | A handle to the ktransform to be updated. |
| scale | The scale to be set. |
| void ktransform_system_shutdown | ( | void * | state | ) |
| b8 ktransform_system_update | ( | struct ktransform_system_state * | state, |
| struct frame_data * | p_frame_data | ||
| ) |
| KAPI const char* ktransform_to_string | ( | ktransform | t | ) |
Returns a string representation of the ktransform pointed to by the given handle.
| t | A handle to the ktransform to retrieve as a string. |
| KAPI void ktransform_translate | ( | ktransform | t, |
| vec3 | translation | ||
| ) |
Applies a translation to the given ktransform. Not the same as setting.
| t | A handle to the ktransform to be updated. |
| translation | The translation to be applied. |
| KAPI void ktransform_translate_rotate | ( | ktransform | t, |
| vec3 | translation, | ||
| quat | rotation | ||
| ) |
Applies translation and rotation to the given ktransform.
| t | A handle to the ktransform to be updated. |
| translation | The translation to be applied. |
| rotation | The rotation to be applied. |
| KAPI u64 ktransform_user_get | ( | ktransform | t | ) |
| KAPI void ktransform_user_set | ( | ktransform | t, |
| u64 | user | ||
| ) |
| KAPI mat4 ktransform_world_get | ( | ktransform | t | ) |
Obtains the world matrix of the given ktransform.
| t | A handle to the ktransform whose world matrix to retrieve. |
| KAPI vec3 ktransform_world_position_get | ( | ktransform | t | ) |
Returns the world position of the given ktransform.
| t | A handle whose position to get. |
| KAPI quat ktransform_world_rotation_get | ( | ktransform | t | ) |
Returns the world rotation of the given ktransform.
| t | A handle whose world rotation to get. |
| KAPI vec3 ktransform_world_scale_get | ( | ktransform | t | ) |
Returns the world scale of the given ktransform.
| t | A handle whose scale to get. |