C4 Engine
C4 Engine API Documentation

class Node

Defined in:  C4Node.h
Every node that belongs to a scene graph is a subclass of the Node class.

class Node : public NodeTree, public Transformable, public LinkTarget<Node>, public Packable, public Configurable, public Creatable<Node>

Member Functions
Node::GetNodeType Returns the type of a node.
Node::GetNodeFlags Returns the node flags.
Node::SetNodeFlags Sets the node flags.
Node::GetPerspectiveExclusionMask Returns the perspective exclusion mask.
Node::SetPerspectiveExclusionMask Sets the perspective exclusion mask.
Node::GetWorld Returns the world to which a node belongs.
Node::GetOwningZone Returns the most immediate zone containing a node.
Node::AppendNewSubnode Adds a newly created subnode to a node.
Node::EnableNode Enables a node tree.
Node::DisableNode Disables a node tree.
Node::GetObject Returns a node's object.
Node::SetObject Sets a node's object.
Node::GetController Returns a node's controller.
Node::SetController Sets a node's controller.
Node::GetNodeTransform Returns a node's local transform.
Node::SetNodeTransform Sets a node's local transform.
Node::SetNodeMatrix3D Sets the upper-left 3 × 3 portion of a node's local transform.
Node::GetNodePosition Returns a node's local position.
Node::SetNodePosition Sets a node's local position.
Node::StopMotion Resets the motion information stored for a node so that motion blur is correctly stopped.
Node::InvalidateNode Invalidates the world transform and dependent information.
Node::UpdateNode Updates the world transform and dependent information.
Node::GetBoundingSphere Returns a node's world-space bounding sphere.
Node::NodeVisible Determines whether a node is visible within a given region.
Node::SetVisibilityCallback Sets the function that handles visibility testing for a node.
Node::SetOcclusionCallback Sets the function that handles occlusion testing for a node.
Node::CalculateBoundingBox Calculates the bounding box for a node.
Node::GetHub Returns the hub attached to a node.
Node::AddConnector Adds a node connection.
Node::RemoveConnector Removes a node connector.
Node::GetConnectedNode Returns the connected node with a particular key.
Node::SetConnectedNode Sets the connected node with a particular key.
Node::GetProperty Returns the property of a given type that is attached to a node.
Node::GetFirstProperty Returns the first property directly attached to a node.
Node::AddProperty Attaches a property to a node.
Node::GetPropertyObject Returns the property object attached to a node.
Node::SetPropertyObject Attaches a property object to a node.
Node::GetSharedProperty Returns the shared property of a given type that is stored in a node's property object.
Node::GetNodeName Returns the name of a node.
Node::SetNodeName Sets the name of a node.
Node::CloneNode Clones a node hierarchy.
Node::PreprocessNode Performs any preprocessing that a node needs to do before being used in a world.
Node::NeutralizeNode Returns a node to the state it was in before being preprocessed.

Node(NodeType type = kNodeGeneric);

The Node class provides the base functionality for all members of the scene graph representing a world. Most nodes are represented by subclasses of the Node class such as Geometry or Light. When the Node class itself appears in a world, it simply acts as a generic grouping mechanism and has the kNodeGeneric type.
Base Classes
Tree<Node> Nodes are organized in a tree hierarchy. (The NodeTree class is an intermediate class used internally.)
Transformable Holds the object-to-world transform for a node.
LinkTarget<Node> Nodes support smart linking with the Link class.
Packable Nodes can be packed for storage in resources.
Configurable Nodes can define configurable parameters that are exposed as user interface widgets in the World Editor.
Creatable<Object> New node subclasses may be defined by an application, and a creator function can be installed using the Creatable class.
See Also