sogetmatrixaction(3)
NAME
SoGetMatrixAction
SYNOPSIS
#include <Inventor/actions/SoGetMatrixAction.h> Inherits SoAction.
Detailed Description
- The SoGetMatrixAction class is an action for accumulating
- the
transformation matrix of a subgraph. - This action makes it easy to calculate and convert to and
- from the
global coordinate system of your scene and local coordi - nates of parts
in a hierarchical model. - As opposed to most other action types, the
SoGetMatrixAction
- traverse children of the node it is applied to -- just the
- node itself.
When applied to paths, it stops at the last node and does - not continue
further with the children of the tail node. - Typical usage when querying for world space position, ori
- entation
and/or scaling would be as follows:
// First get hold of an SoPath through the scenegraph- down to the
// node ('mynode') you want to query about its current - world space
// transformation(s). - SoSearchAction * searchaction = new SoSearchAction;
searchaction->setNode(mynode);
searchaction->apply(myscenegraphroot); - SoPath * path = searchaction->getPath();
assert(path != NULL); - // Then apply the SoGetMatrixAction to get the full
- transformation
// matrix from world space. - const SbViewportRegion vpr = myviewer->getViewportRe
- gion();
SoGetMatrixAction * getmatrixaction = new SoGetMatrixAc - tion(vpr);
getmatrixaction->apply(path); - SbMatrix transformation = getmatrixaction->getMatrix();
- // And if you want to access the individual transforma
- tion
// components of the matrix: - SbVec3f translation;
SbRotation rotation;
SbVec3f scalevector;
SbRotation scaleorientation; - transformation.getTransform(translation, rotation,
- scalevector, scaleorientation);
- Public Member Functions
- virtual SoType getTypeId (void) const
SoGetMatrixAction (const SbViewportRegion ®ion) virtual ~SoGetMatrixAction ()
void setViewportRegion (const SbViewportRegion ®ion) const SbViewportRegion & getViewportRegion (void) const SbMatrix & getMatrix (void)
SbMatrix & getInverse (void)
SbMatrix & getTextureMatrix (void) SbMatrix & getTextureInverse (void) - Static Public Member Functions
- static SoType getClassTypeId (void) static void addMethod (const SoType type, SoActionMethod
- method)
static void enableElement (const SoType type, const int - stackindex)
static void initClass (void) - Protected Member Functions
- virtual const SoEnabledElementsList & getEnabledElements
- (void) const
virtual void beginTraversal (SoNode *node) - Static Protected Member Functions
- static SoEnabledElementsList * getClassEnabledElements
- (void)
static SoActionMethodList * getClassActionMethods (void)
Constructor & Destructor Documentation
- SoGetMatrixAction::SoGetMatrixAction (const SbViewportRegion &
- region)
- Constructor.
- The region viewport specification is not used by this ac
- tion, and is
passed along in case it is needed by any nodes. - SoGetMatrixAction::~SoGetMatrixAction () [virtual]
- Destructor.
Member Function Documentation
- SoType SoGetMatrixAction::getTypeId (void) const [virtual]
- Returns the type identification of an action derived from
- a class
inheriting SoAction. This is used for run-time type check - ing and
'downward' casting. - Usage example:
void bar(SoAction * action)
{if (action->getTypeId() == SoGLRenderAction::getClassTypeId()) {// safe downward cast, know the type
SoGLRenderAction * glrender = (SoGLRenderAction*)action;}
return; // ignore if not renderaction} - For application programmers wanting to extend the library
- with new
actions: this method needs to be overridden in all sub - classes. This is
typically done as part of setting up the full type system - for extension
classes, which is usually accomplished by using the pre - defined macros
available through Inventor/nodes/SoSubAction.h: SO_AC - TION_SOURCE,
SO_ACTION_INIT_CLASS and SO_ACTION_CONSTRUCTOR. - For more information on writing Coin extensions, see the
SoAction
documentation.
- Returns the actual type id of an object derived from a
- class inheriting
SoAction. Needs to be overridden in all subclasses. - Implements SoAction.
- SoType SoGetMatrixAction::getClassTypeId (void) [static]
- Returns the run-time type object associated with instances
- of this
class. - Reimplemented from SoAction.
- Referenced by SoNode::getMatrixS().
- void SoGetMatrixAction::addMethod (const SoType type,
SoActionMethod
- method) [static]
This API member is considered internal to the library, as - it is not
likely to be of interest to the application programmer. - void SoGetMatrixAction::enableElement (const SoType type,
- const int
- stackindex) [static]
This API member is considered internal to the library, as - it is not
likely to be of interest to the application programmer. - const SoEnabledElementsList &
SoGetMatrixAction::getEnabledElements (void)
- const [protected, virtual]
Returns a list of the elements used by action instances of
- this class
upon traversal operations. - Reimplemented from SoAction.
- SoEnabledElementsList *
SoGetMatrixAction::getClassEnabledElements (void)
- [static, protected]
This API member is considered internal to the library, as - it is not
likely to be of interest to the application programmer. - This method not available in the original OIV API, see
SoSubAction.h
for explanation.
- Reimplemented from SoAction.
- SoActionMethodList * SoGetMatrixAction::getClassActionMethods
- (void)
- [static, protected]
This API member is considered internal to the library, as - it is not
likely to be of interest to the application programmer. - This method not available in the original OIV API, see
SoSubAction.h
for explanation.
- Reimplemented from SoAction.
- void SoGetMatrixAction::initClass (void) [static]
- Initializes the run-time type system for this class, and
- sets up the
enabled elements and action method list. - Reimplemented from SoAction.
- Referenced by SoAction::initClasses().
- void SoGetMatrixAction::setViewportRegion (const
SbViewportRegion & region)
Set the viewport region.
- See also:
- SoGetMatrixAction::SoGetMatrixAction()
- const SbViewportRegion & SoGetMatrixAction::getViewportRegion
- (void) const
- Returns the viewport region for the action instance.
- SbMatrix & SoGetMatrixAction::getMatrix (void)
- Returns the accumulated transformation matrix.
- Note: don't modify the returned matrix. This should only
- be done if you
are implementing your own transformation type node exten - sions. This
advice is also valid for the other matrix access methods - documented
below. - Referenced by SoTranslation::callback(), SoResetTrans
- form::callback(),
SoMatrixTransform::callback(), SoVRMLTransform::com - bineLeft(),
SoTransform::combineLeft(), SoUnits::getMatrix(),
SoSurroundScale::getMatrix(), and SoPickedPoint::getOb - jectToWorld().
- SbMatrix & SoGetMatrixAction::getInverse (void)
- Returns the inverse of the accumulated transformation ma
- trix.
- Referenced by SoResetTransform::callback(),
SoSurroundScale::getBoundingBox(), SoUnits::getMatrix(),
SoSurroundScale::getMatrix(), and SoPickedPoint::getWorld - ToObject().
- SbMatrix & SoGetMatrixAction::getTextureMatrix (void)
- Returns the accumulated texture matrix.
- Referenced by SoTexture2Transform::callback(),
SoPickedPoint::getObjectToImage(), and
SoVRMLTextureTransform::GLRender(). - SbMatrix & SoGetMatrixAction::getTextureInverse (void)
- Returns the inverse of the accumulated texture matrix.
- Referenced by SoTexture2Transform::callback(),
SoPickedPoint::getImageToObject(), and
SoVRMLTextureTransform::GLRender(). - void SoGetMatrixAction::beginTraversal (SoNode * node)
- [protected, virtual]
- This virtual method is called from SoAction::apply(), and
- is the entry
point for the actual scenegraph traversal. - It can be overridden to initialize the action at traversal
- start, for
specific initializations in the action subclasses inherit - ing SoAction.
- Default method just calls traverse(), which any overridden
implementation of the method must do too (or call
SoAction::beginTraversal()) to trigger the scenegraph - traversal.
- Reimplemented from SoAction.
- References SbMatrix::makeIdentity(), SoAction::state,
SoAction::traversalMethods, and SoAction::traverse().
Author
- Generated automatically by Doxygen for Coin from the
- source code.
- Version 2.5.0 28 Jun 2008 SoGet