In CHAI3D nodes or objects (cGenericObject) are the fundamental building blocks for all content, with the world object acting as the root node for a tree of node objects. The scene and its descendants determine which content is drawn and how it is rendered.
Each node's position is specified in the coordinate system defined by its parent. A node also applies other properties to its content and the content of its descendants. For example, when a node is rotated, all of its descendants are rotated also. You can build complex models using a tree of nodes and then rotate, translate and scale entire models by adjusting the topmost node's properties.
The cGenericObject class does not draw anything, but it applies its properties to its descendants. Each kind of drawable content is represented by a distinct subclass. Some other node subclasses do not draw content of their own, but modify the behavior of their descendants. For example, you can use a cVoxelObject object to display volumetric imaging data.
In the following example we create a world and a insert four objects, which include a camera, a light source, a sphere, and a cylinder.