MAV_composite(3)

NAME
MAV_composite - Default object class ``composite''.

LEVEL
Maverik Level 1

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 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.