Open Inventor Reference
|
Abstract base class for all profile nodes. More...
#include <Inventor/nodes/SoProfile.h>
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 () |
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.
Definition at line 106 of file SoProfile.h.
enum SoProfile::Profile |
Definition at line 111 of file SoProfile.h.
SoProfile::SoProfile | ( | ) | [protected] |
virtual SoProfile::~SoProfile | ( | ) | [protected, virtual] |
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.
Definition at line 121 of file SoProfile.h.
Definition at line 125 of file SoProfile.h.