[ Maverik Level 1 typedefs ]

#

MAV_composite

## Summary

Default object class ``composite''.

## Syntax

    typedef struct {
      int numobj;
      MAV_object **obj;
      MAV_BB bb;
      int selobj;
      char *filename;
      MAV_matrix matrix;
      void *userdef;
    } MAV_composite;

## Description

A composite object is a number, `numobj`, of objects which are first transformed by a common transformation matrix, `matrix`, before being transformed by their individual transformation matrices. The objects are defined as an array, `obj`, of pointers to Maverik objects. Once defined, the objects comprising the composite objects must remain static, i.e. changing the number of objects in it, or any details of those objects, is forbidden. And since the contents are static, a local coordinate frame bounding box is stored in `bb` for efficiency.

Composite objects are not intended to be defined directly by an application, but rather by functions such as mav_compositeRead, which defines a composite object from a VRML97, Lightwave or AC3D format file.

If a composite object is selected via the usual mechanism then the integer `selobj` holds the array element of the selected sub-object.

Back to the index page.