fastest 3D software for linux

Linux 3D
interactive ray-tracing

Index

 E3d_NodeGetChildIndex
 E3d_NodeComponentClassRegister
 E3d_NodeComponentClassDeactivate
 E3d_NodeComponentAdd
 E3d_NodeComponentAddSingle
 E3d_NodeComponentAddCopy
 E3d_NodesCreateUniqueBranchList


E3d_NodeGetChildIndex

Get the index of Node under its parent, following the NextSibling links

Syntax
EIndex E3d_NodeGetChildIndex(const E3dNode* PNode)

Argument
// Description If PNode has a parent, returns the position PNode in the parent's list of children (starting with 0).
Description
If PNode has a parent, returns the position PNode in the parent's list of children (starting with 0).

Return value
The place of PNode under its parent, or the number of children under the parent, if PNode is not one of its children.

E3d_NodeComponentClassRegister

Register a new NodeInfo class

Syntax
E3dNodeComponentClass* E3d_NodeComponentClassRegister(E3dNodeComponentClass* PDescriptor)

Argument
E3dNodeComponentClass* PDescriptor Descriptor struct (see E3D/Node.h)
Description
Registers a new E3dNodeComponentClass.
Runtime-typed E3dNodeComponent records can be stored on E3dNodes to provide all kinds of dynamic information, such as:
- Construction history (e.g. a root Node will remember that the hierarchy under it was created by the "Duplicate with repeat tool")
- Inverse Kinematics joint and / or effector information.
- Even things like XML schema element information for the XML schema viewer plugin!
practically anything...

Return value
Pointer to the new E3dNodeComponentClass, or NULL in case of an error. See also E3d_NodeComponentClassFindByName, E3d_NodeComponentClassDeactivate, E3d_NodeComponentClassesFree

See also
E3d_NodeComponentClassFindByName, E3d_NodeComponentClassDeactivate, E3d_NodeComponentClassesFree

E3d_NodeComponentClassDeactivate

Deactivate an NodeComponentClass

Syntax
void E3d_NodeComponentClassDeactivate(E3dNodeComponentClass* PClass)

Argument
E3dNodeComponentClass* PClass The Class to be deactivated
Description
Clears member function pointers etc. in the given Class, but keeps the Class registered. Usually called when the plugin that registered the Class is unloaded to be edited and reloaded on the fly. This allows for keeping the data associated with this class on instances when the code needs to be changed. The Class can be later re-activated when the plugin is reloaded. For example, if a bug is found in the Sphere plugin while testing a scene with, say 500 spheres, the plugin can be unloaded/changed/reloaded all without exiting EQUINOX-3D or deleting/recreating the 500 spheres.

Return value
None.

See also
E3d_NodeComponentClassRegister, E3d_NodeComponentClassFindByName, E3d_NodeComponentClassesFree

E3d_NodeComponentAdd

Add a NodeComponent of a given Class to a Node

Syntax
E3dNodeComponent* E3d_NodeComponentAdd(E3dNode* PNode, E3dNodeComponentClass* PClass)

Arguments
E3dNode* PNode Pointer to the Node E3dNodeComponentClass* PClass Pointer to the NodeComponent class
Description
Creates a new instance if NodeComponent of class PClass and adds it to PNode->Components.

Return value
Pointer to the new E3dNodeComponent, or NULL in case of an error. See also E3d_NodeComponentAddCopy

See also
E3d_NodeComponentAddCopy

E3d_NodeComponentAddSingle

Add a NodeComponent of a given Class to a Node

Syntax
E3dNodeComponent* E3d_NodeComponentAddSingle(E3dNode* PNode, E3dNodeComponentClass* PClass)

Arguments
E3dNode* PNode Pointer to the Node E3dNodeComponentClass* PClass Pointer to the NodeComponent class
Description
Similar to E3d_NodeComponentAdd, but if NodeComponent of PClass already exists on PNode, it returns that.

Return value
Pointer to the new E3dNodeComponent, or NULL in case of an error. See also E3d_NodeComponentAdd

See also
E3d_NodeComponentAdd

E3d_NodeComponentAddCopy

Add a copy of a NodeComponent to a Node

Syntax
E3dNodeComponent* E3d_NodeComponentAddCopy(E3dNode* POldNode, E3dNode* PNode, E3dNodeComponent* POldComponent)

Arguments
E3dNode* POldNode Pointer to the source Node E3dNode* PNode Pointer to the destination Node E3dNodeComponent* POldComponent Pointer to the NodeComponent
Description
Checks if POldComponent->Flags contains the flag EComponentCOPY. If so, it creates a copy of POldComponent and adds it to PNode->Components.

Return value
Pointer to the new E3dNodeComponent, or NULL in case of an error. See also E3d_NodeComponentAdd

See also
E3d_NodeComponentAdd

E3d_NodesCreateUniqueBranchList

Create a list of branch roots, from a list of Nodes

Syntax
EIndex E3d_NodesCreateUniqueBranchList(E3dNode*** PNodesPtr, const EIndex PNumOfNodes)

Arguments
E3dNode*** PNodesPtr Pointer to the input list / return value const EIndex PNumOfNodes Number of Nodes in the input list
Description
Creates a "pruned" list of branch roots by removing Nodes that also have ancestors in the list.

Return value
The number of root Nodes in the resulting list
© 1992-2017 By Gabor Nagy