There are two parts: root classes and element classes.
The Alien root classes represent the roots in the document where the elements are stored. The memory allocation function Alloc*
() must be overriden.
The following root classes exist:
Root Class | Description |
---|---|
AlienRootObject | Contains scene objects. |
AlienRootLayer | Contains scene layers. |
AlienRootMaterial | Contains scene materials. |
AlienRootRenderData | Contains scene render data. |
The Alien element classes represent the different elements in the document (objects, materials, layers, etc.). Data saving/loading is handled through the overridden classes.
Element building for the external application with the specific data happens in the Execute()
method. If false is returned the load operation will go one level deeper to the next cache. The Execute()
method must always be overridden. See Polygon and Object Caches.
Examples of alien elements:
class AlienLayer : public LayerObject
class AlienNullObjectData : public NodeData
class AlienForegroundObjectData : public NodeData
class AlienBackgroundObjectData : public NodeData
class AlienFloorObjectData : public NodeData
class AlienSkyObjectData : public NodeData
class AlienEnvironmentObjectData : public NodeData
class AlienFFDObjectData : public PointObjectData
class AlienPolygonObjectData : public PolygonObjectData
class AlienCameraObjectData : public CameraObjectData
class AlienPrimitiveObjectData : public NodeData
class AlienSplineObject : public SplineObject
class AlienLightObjectData : public LightObjectData
class AlienInstanceObjectData : public NodeData
class AlienXRefObjectData : public NodeData
class AlienBoolObjectData : public NodeData
class AlienExtrudeObjectData : public NodeData
class AlienDeformerObjectData : public NodeData
class AlienSkyShaderObjectData : public SkyShaderObjectData
class AlienCAJointObjectData : public JointObjectData
class AlienCASkinObjectData : public SkinObjectData
class AlienMaterial : public Material
class AlienBaseMaterial : public BaseMaterial
class AlienRenderData : public RenderData
It is recommended to use the provided alien_def.h from commandline example.