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 LayerObjectclass AlienNullObjectData : public NodeDataclass AlienForegroundObjectData : public NodeDataclass AlienBackgroundObjectData : public NodeDataclass AlienFloorObjectData : public NodeDataclass AlienSkyObjectData : public NodeDataclass AlienEnvironmentObjectData : public NodeDataclass AlienFFDObjectData : public PointObjectDataclass AlienPolygonObjectData : public PolygonObjectDataclass AlienCameraObjectData : public CameraObjectDataclass AlienPrimitiveObjectData : public NodeDataclass AlienSplineObject : public SplineObjectclass AlienLightObjectData : public LightObjectDataclass AlienInstanceObjectData : public NodeDataclass AlienXRefObjectData : public NodeDataclass AlienBoolObjectData : public NodeDataclass AlienExtrudeObjectData : public NodeDataclass AlienDeformerObjectData : public NodeDataclass AlienSkyShaderObjectData : public SkyShaderObjectDataclass AlienCAJointObjectData : public JointObjectDataclass AlienCASkinObjectData : public SkinObjectDataclass AlienMaterial : public Materialclass AlienBaseMaterial : public BaseMaterialclass AlienRenderData : public RenderDataIt is recommended to use the provided alien_def.h from commandline example.