Open Inventor Reference
SoProfile Class Reference

Abstract base class for all profile nodes. More...

#include <Inventor/nodes/SoProfile.h>

Inheritance diagram for SoProfile:
SoNode SoFieldContainer SoBase SoLinearProfile SoNurbsProfile

List of all members.

Public Types

enum  Profile { START_FIRST = SoProfileElement::START_FIRST, START_NEW = SoProfileElement::START_NEW, ADD_TO_CURRENT = SoProfileElement::ADD_TO_CURRENT }

Public Member Functions

virtual void doAction (SoAction *action)
 These action methods are implemented for profiles.
virtual void callback (SoCallbackAction *action)
virtual void GLRender (SoGLRenderAction *action)
 These virtual functions implement all of the actions for nodes, Most of the default implementations do nothing.
virtual void getBoundingBox (SoGetBoundingBoxAction *action)
virtual void pick (SoPickAction *action)
virtual void getTrimCurve (SoState *state, int32_t &numPoints, float *&points, int &floatsPerVec, int32_t &numKnots, float *&knotVector)=0
 Returns a profile as a trim curve.
virtual void getVertices (SoState *state, int32_t &nVertices, SbVec2f *&vertices)=0
 Returns vertices approximating the profile.

Static Public Member Functions

static void initClass ()
 Initializes base node class.

Public Attributes

Fields
SoMFInt32 index
 Indices into profile coordinates.
SoSFEnum linkage
 Specifies connectivity of profile curve with respect to profiles in current list in state.

Protected Member Functions

 SoProfile ()
virtual ~SoProfile ()

Detailed Description

This node is the abstract base class for all profile nodes, which define 2D curves. A profile is not itself geometry, but is used to change or delimit the geometry of something else. For an SoText3 node, the profile determines the cross-section of the side of each text character. For an SoNurbsSurface node, the profile is used to specify trim curves for the surface.

The current profile state can consist of one or more profiles, each of which can be made up of one or more instances of SoProfile subclass nodes. Each profile node specifies (in the index field) a set of indices that refer to the current set of profile coordinates, specified using either an SoProfileCoordinate2 or an SoProfileCoordinate3 node. No profile curve should intersect itself or another profile curve.

Profiles are part of the state, just like all other properties. The state contains a current list of profiles. Depending on the linkage field, a profile can clear the list and begin a new profile, begin a new profile at the end of those already in the list, or append to the last profile in the current list. Note that when appending profile B to the end of profile A, B must begin at the same 2D point at which A ends.

Action Behavior
SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction
Adds profile to current traversal state.
See Also
SoLinearProfile, SoNurbsProfile, SoNurbsSurface, SoProfileCoordinate2, SoProfileCoordinate3, SoText3

Definition at line 106 of file SoProfile.h.


Member Enumeration Documentation

Enumerator:
START_FIRST 
START_NEW 
ADD_TO_CURRENT 

Definition at line 111 of file SoProfile.h.


Constructor & Destructor Documentation

SoProfile::SoProfile ( ) [protected]
virtual SoProfile::~SoProfile ( ) [protected, virtual]

Member Function Documentation

virtual void SoProfile::callback ( SoCallbackAction action) [virtual]

Reimplemented from SoNode.

virtual void SoProfile::doAction ( SoAction action) [virtual]

Each of them just adds the profile to the current state.

Reimplemented from SoNode.

virtual void SoProfile::getBoundingBox ( SoGetBoundingBoxAction action) [virtual]

Reimplemented from SoNode.

virtual void SoProfile::getTrimCurve ( SoState state,
int32_t numPoints,
float *&  points,
int &  floatsPerVec,
int32_t numKnots,
float *&  knotVector 
) [pure virtual]

numKnots is zero if the curve is linear. floatsPerVec will be either 2 or 3 depending on whether the curve is non-rational or rational.

Implemented in SoLinearProfile, and SoNurbsProfile.

virtual void SoProfile::getVertices ( SoState state,
int32_t nVertices,
SbVec2f *&  vertices 
) [pure virtual]

Implemented in SoLinearProfile, and SoNurbsProfile.

virtual void SoProfile::GLRender ( SoGLRenderAction action) [virtual]

Reimplemented from SoNode.

static void SoProfile::initClass ( ) [static]

Reimplemented from SoNode.

Reimplemented in SoLinearProfile, and SoNurbsProfile.

virtual void SoProfile::pick ( SoPickAction action) [virtual]

Reimplemented from SoNode.


Member Data Documentation

Definition at line 121 of file SoProfile.h.

Definition at line 125 of file SoProfile.h.


The documentation for this class was generated from the following file: