All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
kzu_transformed_object.h File Reference

Transformed object node. More...

Namespaces

 kanzi
 

Functions

void kzuTransformedObjectNodeCreate (const KzcMemoryManager *memoryManager, kanzi::Node3D *object, const KzcMatrix4x4 *parentTransform, bool parentTransformChanged, bool visible, bool instantiated, bool *out_transformChanged, KzuTransformedObjectNode **out_object)
 Creates new Transformed object node from regular scene graph object. More...
 
kzsError kzuTransformedObjectNodeRefreshChildren (const struct KzuTransformedObjectNode *transformedObjectNode)
 Refreshes transformed object node's children to contain matrices from new matrix values in scene graph. More...
 
KANZI_API struct
KzuTransformedObjectNode
kzuTransformedObjectNodeGetParent (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 kzuTransformedObjectNodeSetInstantiator3DNode (struct KzuTransformedObjectNode *node, struct KzuTransformedObjectNode *instantiatorNode)
 Sets transformed object node instantiated from given node. More...
 
struct KzuTransformedObjectNodekzuTransformedObjectNodeGetInstantiator3DNode (const struct KzuTransformedObjectNode *node)
 Gets instantiator 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...
 
KANZI_API kanzi::Node3DkzuTransformedObjectNodeGetObjectNode (const struct KzuTransformedObjectNode *transformedObjectNode)
 Returns a KzuObjectNode owned by transformed object node. More...
 
struct KzuTransformedObjectNodekzuTransformedObjectNodeFindChildObjectNode (const struct KzuTransformedObjectNode *transformedObjectNode, const kanzi::Node3D *objectToFind)
 Finds transformed object node from destination object node's direct children. More...
 
struct KzuTransformedObjectNodekzuTransformedObjectNodeFindChildObjectNodeFromDescendants (const struct KzuTransformedObjectNode *transformedObjectNode, const kanzi::Node3D *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...
 
KANZI_API 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...
 
KANZI_API void kzuTransformedObjectNodeSetMatrix (struct KzuTransformedObjectNode *transformedObjectNode, const struct KzcMatrix4x4 *matrix)
 Sets the world matrix for transformed object node. More...
 
KANZI_API 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...
 
KANZI_API struct
KzuTransformedObjectNode
kzuTransformedObjectListFindObject (const struct KzcDynamicArray *objectList, const kanzi::Node3D *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 ::KzuObjectNode::TransformationProperty.get(), layout and ::KzuObjectNode::RenderTransformationProperty.get() 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-2020 by Rightware. All rights reserved.

Function Documentation

void kzuTransformedObjectNodeCreate ( const KzcMemoryManager memoryManager,
kanzi::Node3D object,
const KzcMatrix4x4 parentTransform,
bool  parentTransformChanged,
bool  visible,
bool  instantiated,
bool *  out_transformChanged,
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 kzuTransformedObjectNodeRefreshChildren ( const struct KzuTransformedObjectNode transformedObjectNode)

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

KANZI_API 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 kzuTransformedObjectNodeSetInstantiator3DNode ( struct KzuTransformedObjectNode node,
struct KzuTransformedObjectNode instantiatorNode 
)

Sets transformed object node instantiated from given node.

struct KzuTransformedObjectNode* kzuTransformedObjectNodeGetInstantiator3DNode ( const struct KzuTransformedObjectNode node)

Gets instantiator 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.

KANZI_API kanzi::Node3D* kzuTransformedObjectNodeGetObjectNode ( const struct KzuTransformedObjectNode transformedObjectNode)

Returns a KzuObjectNode owned by transformed object node.

struct KzuTransformedObjectNode* kzuTransformedObjectNodeFindChildObjectNode ( const struct KzuTransformedObjectNode transformedObjectNode,
const kanzi::Node3D 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 kanzi::Node3D 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.

KANZI_API 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.

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

Sets the world matrix for transformed object node.

KANZI_API 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.

KANZI_API struct KzuTransformedObjectNode* kzuTransformedObjectListFindObject ( const struct KzcDynamicArray objectList,
const kanzi::Node3D objectToFind 
)

Finds transformed object node from object list.

kzBool kzuTransformedObjectNodeIsVisible ( const struct KzuTransformedObjectNode transformedObjectNode)

Returns visibility of a transformed object node.