Skip to: site menu | section menu | main content

Breeze Designer

3D Modeler and Design
Currently viewing: Breeze Designer »Welcome

Breeze Designer Figure Plugin

Copyright (C) 1999 Neville Richards. All rights reserved.

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.

Babe

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.

Additional Notes:

The following are know issues with the figure plugin:
  • Save function does not preserve unused node types.
  • Delete known to cause intermit. crash.
  • Macro & animation interface incomplete.
  • Plugin settings not written to Breeze Designer scene file.
  • Group node attachments not currently supported
  • Program interface still under development
  • No offset available for attached objects

Requirements:

History:

19-Sep-1999 First public release Ver 0.3 (alpha)

Development Notes:

Properties supported:

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:

KeywordDescription
NameSpecify The figure name. This should be at the begining of the file.
HierarchyBegin figure limb description. No argumnents
LoadImport the named geometry file.
RootSpecify the topmost limb. Followed by the limb name.
JointSpecify a non-root limb node.
{Begin a limb node.
}End a limb node.
OffsetSpecify the node offset relative to the last node.
MapSpecify 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.

Other API will be added to this plugin as development processes. If you are interested in programming this plugin please contact me via email on the address below.

Back to top