fastest 3D software for linux

Linux 3D
interactive ray-tracing
[1 introduction] [2 overview] [3 reference] [4 GUI]

Index

 E3dNode_GetChildIndex
 E3dNodeComponent_ByClass
 E3dNodeComponent_BySuperClass
 E3dNodeComponent_ClassFindByName
 E3dNodeComponent_ClassRegister
 E3dNodeComponent_ClassDeactivate
 E3dNodeComponent_Add
 E3dNodeComponent_AddSingle
 E3dNodeComponent_Remove
 E3dNodeComponents_RemoveByClass
 E3dNodeComponents_RemoveAll
 E3dNodeComponent_AddCopy
 E3dNodes_CreateUniqueBranchList


E3dNode_GetChildIndex

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

Syntax
EIndex E3dNode_GetChildIndex(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.

E3dNodeComponent_ByClass

Find a NodeComponent on a Node by its exact Class

Syntax
E3dNodeComponent* E3dNodeComponent_ByClass(const E3dNode* PNode, const E3dNodeComponentClass* PClass)

Arguments
const E3dNode* PNode Pointer to the Node const E3dNodeComponentClass* PClass Pointer to the class
Description
Finds a NodeComponent on a Node, by its class, if it exists.

Return value
Pointer to the E3dNodeComponent, or NULL if none was found.

See also
E3dNodeComponent_BySuperClass, Return, value, Pointer, to, the, E3dNodeComponent, or, NULL, if, none, was, found.

E3dNodeComponent_BySuperClass

Find Component of a Node by its Class or superclass

Syntax
E3dNodeComponent* E3dNodeComponent_BySuperClass(const E3dNode* PNode, const E3dNodeComponentClass* PClass)

Arguments
const E3dNode* PNode Pointer to the Node const E3dNodeComponentClass* PClass Pointer to the class
Description
Finds a NodeComponent on a Node, by its class, if it exists. Unlike E3dNodeComponent_ByClass, this function also checks for NodeComponent with a superclass of PClass.

Return value
Pointer to the E3dNodeComponent, or NULL if none was found.

See also
E3dNodeComponent_ByClass, Return, value, Pointer, to, the, E3dNodeComponent, or, NULL, if, none, was, found.

E3dNodeComponent_ClassFindByName

Find a NodeComponent class by its name

Syntax
E3dNodeComponentClass* E3dNodeComponent_ClassFindByName(const char* PName)

Arguments
const char* PName Class name
Description
Return the NodeComponent registered by a given name, via E3dNodeComponent_ClassRegister.

Return value
Pointer to the NodeComponent class, or NULL if none was found.

See also
E3dNodeComponent_BySuperClass, Return, value, Pointer, to, the, NodeComponent, class, or, NULL, if, none, was, found.

E3dNodeComponent_ClassRegister

Register a new NodeComponent class

Syntax
E3dNodeComponentClass* E3dNodeComponent_ClassRegister(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 E3dNodeComponent_ClassFindByName, E3dNodeComponent_ClassDeactivate, E3dNodeComponent_ClassesFree

See also
E3dNodeComponent_ClassFindByName, E3dNodeComponent_ClassDeactivate, E3dNodeComponent_ClassesFree

E3dNodeComponent_ClassDeactivate

Deactivate an NodeComponentClass

Syntax
void E3dNodeComponent_ClassDeactivate(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
E3dNodeComponent_ClassRegister, E3dNodeComponent_ClassFindByName, E3dNodeComponent_ClassesFree

E3dNodeComponent_Add

Add a NodeComponent of a given Class to a Node

Syntax
E3dNodeComponent* E3dNodeComponent_Add(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 E3dNodeComponent_AddCopy

See also
E3dNodeComponent_AddCopy

E3dNodeComponent_AddSingle

Add a NodeComponent of a given Class to a Node

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

Arguments
E3dNode* PNode Pointer to the Node E3dNodeComponentClass* PClass Pointer to the NodeComponent class
Description
Similar to E3dNodeComponent_Add, 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 E3dNodeComponent_Add

See also
E3dNodeComponent_Add

E3dNodeComponent_Remove

Remove a Component from a Node

Syntax
int E3dNodeComponent_Remove(E3dNode* PNode, E3dNodeComponent* PInfo)

Arguments
E3dNode* PNode Pointer to the Node E3dNodeComponent* PInfo Pointer to the Component
Description
Finds a NodeComponent on a Node and removes it.

Return value
E_SUCCESS, if successful, otherwise an error code, such as E_NOT_FOUND, or E_NO_DATA

E3dNodeComponents_RemoveByClass

Remove a Component from a Node

Syntax
int E3dNodeComponents_RemoveByClass(E3dNode* PNode, E3dNodeComponentClass* PClass)

Arguments
E3dNode* PNode Pointer to the Node E3dNodeComponentClass* PClass Pointer to the NodeComponent class
Description
Removes all Component of a given class from a Node.

Return value
The number of Components removed, otherwise an error code, such as E_NOT_FOUND, or E_NO_DATA

E3dNodeComponents_RemoveAll

Remove all Component from a Node

Syntax
void E3dNodeComponents_RemoveAll(E3dNode* PNode)

Arguments
E3dNode* PNode Pointer to the Node
Description
Removes al NodeComponent from a Node.

Return value
None.

E3dNodeComponent_AddCopy

Add a copy of a NodeComponent to a Node

Syntax
E3dNodeComponent* E3dNodeComponent_AddCopy(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 E3dNodeComponent_Add

See also
E3dNodeComponent_Add

E3dNodes_CreateUniqueBranchList

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

Syntax
EIndex E3dNodes_CreateUniqueBranchList(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
© 1996-2022 By Gabor Nagy