The Breeze Designer figure plugin allows allows "simple" articulated figures
to be built, and manipulated and animated as a single figure or creature. To get started
import the sample "babe.fig" file as a starting point or build a new figure from scratch
via the tools, plugin menu or via builder menu option. Figures may be animated by adding
the figure object to an existing animation.
As this plugin is still being written so many features are not yet complete. This plugin is distributed as is.
To install this plugin copy it into the Breeze Designer plugin directory and restart the Breeze Designer program. The plugin will add an entry to the tools, plugin menu and to the object builder dialog. This option will allow you to create new figures. Existing figures can be edited by selecting the plugin properties in the property dialog from an existing figure object. Figures can be loaded through the file, import menu.
The figure plugin may import its own figure file format and the BioVision Hierachy file format (BVH). Figure data is not currently saved into the Breeze Designer scene format, so data should be saved seperately from this plugin.
Figures are built from a series of limb segments that are related to one another by relative offset and angle. When a figure is generated, a series of connected elements are generated to represent the figure structure. These elements may be line segments, simple cylinders or ballon shapes. Objects my be attached, or associated, with figure limbs. Attached objects should be sized to fit the limb length. Currently attachments are centered around the mid point of the limb.
LimbType (int) | 0 = Line segments |
1 = Cylinders | |
2 = Ballon shapes |
Figure Data File Format:
The figure data file format is a heirachical data format, similar for the BioVision
format used for describing articulated figures. The format is an ASCII format and
uses a simple list keywords to describe data. The keywords and their meaning are
described below:
Keyword | Description |
---|---|
Name | Specify The figure name. This should be at the begining of the file. |
Hierarchy | Begin figure limb description. No argumnents |
Load | Import the named geometry file. |
Root | Specify the topmost limb. Followed by the limb name. |
Joint | Specify a non-root limb node. |
{ | Begin a limb node. |
} | End a limb node. |
Offset | Specify the node offset relative to the last node. |
Map | Specify the object to associate with the current limb. |
Figure Interface:
The figure plugin includes a programatic interface that allows other plugins to use the basic figure functions. The interface allows the user to create a new figure object or to retrieve the data handle to an existing figure object.
HFIGURE CreateFigure( HCADOBJECT hObject ); Create a new figure object and return the resulting figure class handle. The figure object will not contain any limbs by default. The Breeze Designer object must be a valid polygon object. If the object handle is not valid, or the object is already a figure object this function will return 0. HFIGURE GetFigure( HCADOBJECT hObject ); Get the figure object class from a given object. If the object handle is not a figure object this function will return 0. BOOL AddFigureLimb( HFIGURE pFigure, LPCSTR szLimbName, LPCSTR szInsertAfterLimb ); Add a new limb to the supplied figure class handle after the named limb. If the insert limb name is empty or NULL the limb will be added to the root of the figure. BOOL SetFigureLimbInfo( HFIGURE pFigure, LPCSTR szLimbName, int nFrame, LPPOINT3D pOffset, LPPOINT3D pRotate ); Set or update the limb information for the supplied limb name. If either the offset or rotation point pointer is set to NULL the current value will be preserved. BOOL GetFigureLimbInfo( HFIGURE pFigure, LPCSTR szLimbName, int nFrame, LPPOINT3D pOffset, LPPOINT3D pRotate ); Get the current limb settings for the supplied limb name. BOOL DeleteFigure( HCADOBJECT hObject, HFIGURE pFigure ); Delete the plugin figure data from the supplied object. The object geometry will not be deleted via this function. |
|
For futher information contact Neville Richards Last modified: 19-Sep-1999