The DAG node class for lights.
#include <AlLightNode.h>
class AlLightNode: public AlDagNode
virtual ~AlLightNode();
virtual AlObject * copyWrapper() const;
statusCode deleteObject();
AlObjectType type() const;
AlLight* light() const;
AlLight* light(AlTM&) const;
virtual boolean isInstanceable();
boolean isLookAtNode() const;
boolean isUpNode() const;
boolean isPositionNode() const;
This class is a DAG node class used specifically for lights. Each AlLight object has three light nodes for position, ’look at’ and ’up’ points. (For more information on how AlLights and AlLightNodes work together, see the class description for the AlLight object.)
To create a light node, the user must create a specific type of light, which creates the necessary light nodes. These light nodes are grouped and inserted into the universe’s DAG. The user cannot directly instantiate a light node.
To figure out whether or not a light node represents a position, a ’look at’ or an ’up’ point, the user can use:
1) the isPositionNode(), isLookAtNode(), isUpNode() methods, or
2) the type() method of the attached AlLight object.
A light node can be deleted in two ways. When a light node is deleted, its associated light (and other light nodes) are deleted. Alternatively, when a light is deleted, its light nodes are also deleted.
statusCode AlLightNode::deleteObject()
Deletes all objects associated with this light node. It deletes the attached light object, which in turn deletes the other attached light DAG nodes. A light can be deleted in two ways. If AlLight::deleteObject() is called, it deletes the associated AlLightNodes. If AlLightNode::deleteObject() is called, it deletes the associated AlLight.