Interface to Alias NURBS surface geometry.
#include <AlShell.h>
class AlShell : public AlObject
AlShell();
virtual ~AlShell();
virtual AlObject* copyWrapper() const;
virtual AlObjectType type() const;
AlShellNode* shellNode() const;
statusCode create( AlTrimRegion*, boolean );
statusCode addToShell( AlTrimRegion*, boolean );
boolean isInShell( AlTrimRegion* );
AlTrimRegion* firstTrimRegion() const;
AlGroupNode* unstitchShell( void );
AlShader* firstShader() const;
AlShader* nextShader( const AlShader* ) const;
statusCode nextShaderD( AlShader* ) const;
statusCode assignShader( AlShader* );
statusCode layerShader( AlShader* );
statusCode renderInfo( AlRenderInfo& ) const;
statusCode setRenderInfo( const AlRenderInfo& ) const;
boolean isDisplayModeSet( AlDisplayModeType ) const;
statusCode setDisplayMode( AlDisplayModeType, boolean );
statusCode area( double &, boolean = TRUE, double tolerance=0.001 );
statusCode circumference( double &, boolean = TRUE, double tolerance=0.001 );
A shell is a collection of surfaces that behaves as a single object. Each surface can have its own set of trim curves. A cube with six square sides is a shell. The cube can be assigned a single shader and rendering formation. The cube is made of a collection of 6 spline surfaces.
The AlTrimRegions are inaccurately named. They actually represent the surfaces in the shell.
statusCode AlShell::create( AlTrimRegion * region, boolean shrink_surface )
Creates a shell by transforming the given trim region. A new shell is created in Alias, which matches the trim region. A DagNode is also constructed above the shell.
statusCode AlShell::addToShell( AlTrimRegion * region, boolean shrink_surface )
Adds trim region to the shell. Note that only adjacent surfaces can be added to a shell. This may require that the user try this method for all of the remaining shells to see if it fails for each one.
AlShader* AlShell::nextShader( const AlShader* last_shader ) const
statusCode AlShell::nextShaderD( AlShader* last_shader ) const
boolean AlShell::isDisplayModeSet( AlDisplayModeType mode ) const
statusCode AlShell::setDisplayMode( AlDisplayModeType mode, boolean on_or_off )
For the given display mode, if the flag is TRUE then the display mode for the surface is set, otherwise it is unset.
The only valid AlDisplayModeTypes for an AlSurface are
kDisplayGeomHull
kDisplayGeomEditPoints
kDisplayGeomKeyPoints
kDisplayGeomCVs
statusCode AlShell::area( double& area, boolean worldCoordinates, double tolerance )
statusCode AlShell::circumference( double& circ, boolean worldCoordinates, double tolerance )