Kanzi Graphics Engine
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
kzu_transformed_object.h File Reference

Transformed object node. More...

Functions

kzsError kzuTransformedObjectNodeCreate (const struct KzcMemoryManager *memoryManager, struct KzuObjectNode *object, const struct KzcMatrix4x4 *parentTransform, kzBool parentTransformChanged, kzBool visible, kzBool instanciated, kzBool *out_transformChanged, struct KzuTransformedObjectNode **out_object)
 Creates new Transformed object node from regular scene graph object. More...
 
kzsError kzuTransformedObjectNodeCreateFromLayer (const struct KzcMemoryManager *memoryManager, struct KzuObjectNode *objectNode, kzBool visible, struct KzuTransformedObjectNode **out_transformedObjectNode)
 Creates new transformed object node from a layer. More...
 
kzsError kzuTransformedObjectNodeRefreshChildren (const struct KzuTransformedObjectNode *transformedObjectNode)
 Refreshes transformed object node's children to contain matrices from new matrix values in scene graph. More...
 
struct KzuTransformedObjectNodekzuTransformedObjectNodeGetParent (const struct KzuTransformedObjectNode *transformedObjectNode)
 Adds a child transformed object for parent. More...
 
kzsError kzuTransformedObjectNodeAddChildNode (struct KzuTransformedObjectNode *parentObject, struct KzuTransformedObjectNode *childNode)
 Adds a child transformed object for parent. More...
 
kzsError kzuTransformedObjectNodeRemove (struct KzuTransformedObjectNode *parentObject, const struct KzuTransformedObjectNode *destObject)
 Removes transformed object node from parent and moves its children upper in hierarchy. More...
 
kzsError kzuTransformedObjectNodeCopyWithoutChildren (const struct KzcMemoryManager *memoryManager, const struct KzuTransformedObjectNode *sourceObject, struct KzuTransformedObjectNode **out_object)
 Copies a object without children to the new node. More...
 
void kzuTransformedObjectNodeSetInstanciated (struct KzuTransformedObjectNode *node, struct KzuTransformedObjectNode *instanciatorNode)
 Sets transformed object node instanciated from given node. More...
 
struct KzuTransformedObjectNodekzuTransformedObjectNodeGetInstanciatorNode (const struct KzuTransformedObjectNode *node)
 Gets instanciator from given node. More...
 
kzsError kzuTransformedObjectTreeToDynamicArray (const struct KzcMemoryManager *memoryManager, const struct KzuTransformedObjectNode *rootNode, struct KzcDynamicArray **out_dynamicArray)
 Creates an array from tree. More...
 
struct KzcDynamicArrayIterator kzuTransformedObjectNodeGetChildren (const struct KzuTransformedObjectNode *transformedObjectNode)
 Returns a children of transformed object node as iterator (list of KzuTransformedObjectNode:s). More...
 
kzUint kzuTransformedObjectNodeGetChildCount (const struct KzuTransformedObjectNode *transformedObjectNode)
 Returns the child count. More...
 
struct KzuTransformedObjectNodekzuTransformedObjectNodeGetChildAtIndex (const struct KzuTransformedObjectNode *transformedObjectNode, kzUint index)
 Returns a child from given index from object node. More...
 
struct KzuObjectNodekzuTransformedObjectNodeGetObjectNode (const struct KzuTransformedObjectNode *transformedObjectNode)
 Returns a KzuObjectNode owned by transformed object node. More...
 
struct KzuTransformedObjectNodekzuTransformedObjectNodeFindChildObjectNode (const struct KzuTransformedObjectNode *transformedObjectNode, const struct KzuObjectNode *objectToFind)
 Finds transformed object node from destination object node's direct children. More...
 
struct KzuTransformedObjectNodekzuTransformedObjectNodeFindChildObjectNodeFromDescendants (const struct KzuTransformedObjectNode *transformedObjectNode, const struct KzuObjectNode *objectToFind)
 Finds transformed object node from destination object node's direct descendants. More...
 
struct KzuTransformedObjectNodekzuTransformedObjectNodeFindChildTransformedObjectNodeFromDescendants (const struct KzuTransformedObjectNode *transformedObjectNode, const struct KzuTransformedObjectNode *transformedObjectNodeToFind)
 Finds given transformed object node from destination transformed object node's descendants. More...
 
kzsError kzuTransformedObjectNodeGetBoundingVolumeUnionWorld (const struct KzuTransformedObjectNode *transformedObjectNode, struct KzcVolume *out_volume)
 Gets bounding volume union from transformed object node and its children. More...
 
kzsError kzuTransformedObjectNodeGetBoundingVolumeWorld (const struct KzuTransformedObjectNode *transformedObjectNode, struct KzcVolume *out_volume)
 Gets bounding volume union from transformed object node without children taken into account. More...
 
void kzuTransformedObjectNodeSetMatrix (struct KzuTransformedObjectNode *transformedObjectNode, const struct KzcMatrix4x4 *matrix)
 Sets the world matrix for transformed object node. More...
 
struct KzcMatrix4x4 kzuTransformedObjectNodeGetMatrix (const struct KzuTransformedObjectNode *transformedObjectNode)
 Returns the world matrix of transformed object node. More...
 
void kzuTransformedObjectNodeGetPosition (const struct KzuTransformedObjectNode *transformedObjectNode, struct KzcVector3 *out_position)
 Returns a position of this transformed object node. More...
 
struct KzuTransformedObjectNodekzuTransformedObjectListFindObject (const struct KzcDynamicArray *objectList, const struct KzuObjectNode *objectToFind)
 Finds transformed object node from object list. More...
 
kzBool kzuTransformedObjectNodeIsVisible (const struct KzuTransformedObjectNode *transformedObjectNode)
 Returns visibility of a transformed object node. More...
 

Detailed Description

Transformed object node.

KzuTransformedObjectNode is created from a scene graph object node (KzuObjectNode). It contains all the same characteristics as the KzuObjectNode, as the transformed object node keeps a pointer to the KzuObjectNode. The world transformation matrix returned by kzuTransformedObjectNodeGetMatrix() is calculated on-demand from the KzuObjectNode's KZU_PROPERTY_TYPE_TRANSFORMATION, layout and KZU_PROPERTY_TYPE_RENDER_TRANSFORMATION matrix when the transformed object node is created and whenever kzuTransformedObjectNodeRefreshChildren() is called for its parent. The calculated matrix is also stored to the referenced KzuObjectNode and can be obtained by calling kzuObjectNodeGetFinalTransformation().

See Also
kzu_object.h, kzu_scene.h.

Copyright 2008-2019 by Rightware. All rights reserved.

Function Documentation

kzsError kzuTransformedObjectNodeCreate ( const struct KzcMemoryManager memoryManager,
struct KzuObjectNode object,
const struct KzcMatrix4x4 parentTransform,
kzBool  parentTransformChanged,
kzBool  visible,
kzBool  instanciated,
kzBool out_transformChanged,
struct KzuTransformedObjectNode **  out_object 
)

Creates new Transformed object node from regular scene graph object.

Saves the reference to original scene graph object and copies the matrix data.

kzsError kzuTransformedObjectNodeCreateFromLayer ( const struct KzcMemoryManager memoryManager,
struct KzuObjectNode objectNode,
kzBool  visible,
struct KzuTransformedObjectNode **  out_transformedObjectNode 
)

Creates new transformed object node from a layer.

kzsError kzuTransformedObjectNodeRefreshChildren ( const struct KzuTransformedObjectNode transformedObjectNode)

Refreshes transformed object node's children to contain matrices from new matrix values in scene graph.

struct KzuTransformedObjectNode* kzuTransformedObjectNodeGetParent ( const struct KzuTransformedObjectNode transformedObjectNode)

Adds a child transformed object for parent.

kzsError kzuTransformedObjectNodeAddChildNode ( struct KzuTransformedObjectNode parentObject,
struct KzuTransformedObjectNode childNode 
)

Adds a child transformed object for parent.

kzsError kzuTransformedObjectNodeRemove ( struct KzuTransformedObjectNode parentObject,
const struct KzuTransformedObjectNode destObject 
)

Removes transformed object node from parent and moves its children upper in hierarchy.

kzsError kzuTransformedObjectNodeCopyWithoutChildren ( const struct KzcMemoryManager memoryManager,
const struct KzuTransformedObjectNode sourceObject,
struct KzuTransformedObjectNode **  out_object 
)

Copies a object without children to the new node.

void kzuTransformedObjectNodeSetInstanciated ( struct KzuTransformedObjectNode node,
struct KzuTransformedObjectNode instanciatorNode 
)

Sets transformed object node instanciated from given node.

struct KzuTransformedObjectNode* kzuTransformedObjectNodeGetInstanciatorNode ( const struct KzuTransformedObjectNode node)

Gets instanciator from given node.

kzsError kzuTransformedObjectTreeToDynamicArray ( const struct KzcMemoryManager memoryManager,
const struct KzuTransformedObjectNode rootNode,
struct KzcDynamicArray **  out_dynamicArray 
)

Creates an array from tree.

struct KzcDynamicArrayIterator kzuTransformedObjectNodeGetChildren ( const struct KzuTransformedObjectNode transformedObjectNode)

Returns a children of transformed object node as iterator (list of KzuTransformedObjectNode:s).

kzUint kzuTransformedObjectNodeGetChildCount ( const struct KzuTransformedObjectNode transformedObjectNode)

Returns the child count.

struct KzuTransformedObjectNode* kzuTransformedObjectNodeGetChildAtIndex ( const struct KzuTransformedObjectNode transformedObjectNode,
kzUint  index 
)

Returns a child from given index from object node.

struct KzuObjectNode* kzuTransformedObjectNodeGetObjectNode ( const struct KzuTransformedObjectNode transformedObjectNode)

Returns a KzuObjectNode owned by transformed object node.

struct KzuTransformedObjectNode* kzuTransformedObjectNodeFindChildObjectNode ( const struct KzuTransformedObjectNode transformedObjectNode,
const struct KzuObjectNode objectToFind 
)

Finds transformed object node from destination object node's direct children.

NULL if nothing was found.

struct KzuTransformedObjectNode* kzuTransformedObjectNodeFindChildObjectNodeFromDescendants ( const struct KzuTransformedObjectNode transformedObjectNode,
const struct KzuObjectNode objectToFind 
)

Finds transformed object node from destination object node's direct descendants.

NULL if nothing was found.

struct KzuTransformedObjectNode* kzuTransformedObjectNodeFindChildTransformedObjectNodeFromDescendants ( const struct KzuTransformedObjectNode transformedObjectNode,
const struct KzuTransformedObjectNode transformedObjectNodeToFind 
)

Finds given transformed object node from destination transformed object node's descendants.

Returns KZ_NULL if nothing was found.

kzsError kzuTransformedObjectNodeGetBoundingVolumeUnionWorld ( const struct KzuTransformedObjectNode transformedObjectNode,
struct KzcVolume out_volume 
)

Gets bounding volume union from transformed object node and its children.

kzsError kzuTransformedObjectNodeGetBoundingVolumeWorld ( const struct KzuTransformedObjectNode transformedObjectNode,
struct KzcVolume out_volume 
)

Gets bounding volume union from transformed object node without children taken into account.

void kzuTransformedObjectNodeSetMatrix ( struct KzuTransformedObjectNode transformedObjectNode,
const struct KzcMatrix4x4 matrix 
)

Sets the world matrix for transformed object node.

struct KzcMatrix4x4 kzuTransformedObjectNodeGetMatrix ( const struct KzuTransformedObjectNode transformedObjectNode)

Returns the world matrix of transformed object node.

void kzuTransformedObjectNodeGetPosition ( const struct KzuTransformedObjectNode transformedObjectNode,
struct KzcVector3 out_position 
)

Returns a position of this transformed object node.

struct KzuTransformedObjectNode* kzuTransformedObjectListFindObject ( const struct KzcDynamicArray objectList,
const struct KzuObjectNode objectToFind 
)

Finds transformed object node from object list.

kzBool kzuTransformedObjectNodeIsVisible ( const struct KzuTransformedObjectNode transformedObjectNode)

Returns visibility of a transformed object node.