Open Inventor Reference
SoLocalBBoxMatrixElement Class Reference

Element that stores the transformation matrix from object space to some local coordinate space during application of an SoGetBoundingBoxAction. More...

#include <Inventor/elements/SoLocalBBoxMatrixElement.h>

Inheritance diagram for SoLocalBBoxMatrixElement:
SoElement

Public Member Functions

virtual void init (SoState *state)
 Initializes element.
 
virtual void push (SoState *state)
 Overrides push() method to copy values from next instance in the stack.
 
virtual bool matches (const SoElement *elt) const
 Prints error message and returns FALSE (see class header comment)
 
virtual SoElementcopyMatchInfo () const
 Create and return a copy of this element.
 
virtual void print (FILE *fp) const
 Prints element (for debugging)
 
- Public Member Functions inherited from SoElement
virtual void init (SoState *state)
 Initializes element.
 
virtual void push (SoState *state)
 Pushes/pops element.
 
virtual void pop (SoState *state, const SoElement *prevTopElement)
 
virtual void print (FILE *fp) const
 Prints element (for debugging)
 
virtual bool matches (const SoElement *elt) const =0
 Returns TRUE if the element matches another element (of the same class, presumably) with respect to cache validity.
 
virtual SoElementcopyMatchInfo () const =0
 Create a copy that we can put in a cache used list and call matches() on later.
 
SoType getTypeId () const
 Returns type identifier for element instance.
 
int getStackIndex () const
 Returns the stack index for an element instance.
 
void setDepth (int dpth)
 Sets stuff in an element instance.
 
void setNext (SoElement *nxt)
 
void setNextInStack (SoElement *nxt)
 
void setNextFree (SoElement *nxt)
 
int getDepth () const
 Returns stuff from element instance.
 
SoElementgetNext () const
 
virtual ~SoElement ()
 Destructor.
 

Static Public Member Functions

static void makeIdentity (SoState *state)
 Sets the local matrix to the identity matrix.
 
static void set (SoState *state, const SbMatrix &matrix)
 Sets the local matrix to the given matrix.
 
static void mult (SoState *state, const SbMatrix &matrix)
 Multiplies the given matrix into the local matrix.
 
static void translateBy (SoState *state, const SbVec3f &translation)
 Each of these multiplies a matrix that performs the specified transformation into the local matrix.
 
static void rotateBy (SoState *state, const SbRotation &rotation)
 
static void scaleBy (SoState *state, const SbVec3f &scaleFactor)
 
static SbMatrix pushMatrix (SoState *state)
 These methods are used by the TransformSeparator node.
 
static void popMatrix (SoState *state, const SbMatrix &m)
 
static void resetAll (SoState *state)
 Resets all current instances in the state to identity.
 
static const SbMatrixget (SoState *state)
 Returns current matrix from the state.
 
static void initClass ()
 Initializes the SoLocalBBoxMatrixElement class.
 
- Static Public Member Functions inherited from SoElement
static SoType getClassTypeId ()
 Returns type identifier for SoElement class.
 
static void initElements ()
 Initialize ALL Inventor element classes.
 
static void initClass ()
 Initializes the SoElement class.
 
static int getNumStackIndices ()
 Returns the number of stack indices allocated.
 
static SoType getIdFromStackIndex (int stackIndex)
 Returns the id for the element with the given stack index.
 

Protected Member Functions

virtual ~SoLocalBBoxMatrixElement ()
 
- Protected Member Functions inherited from SoElement
 SoElement ()
 Constructor; use typeId.createInstance to create elements.
 
void capture (SoState *state) const
 Does whatever is necessary in state to capture this element for caching purposes.
 
virtual void captureThis (SoState *state) const
 Really captures this element, once it has been determined that a cache is open to capture it.
 
void setTypeId (SoType id)
 Sets typeId in instance.
 
void setStackIndex (int index)
 Sets stackIndex in instance.
 
SoElementgetNextInStack () const
 Returns next instance in specific element stack.
 
SoElementgetNextFree () const
 Returns next free element in a specific element stack.
 

Protected Attributes

SbMatrix localMatrix
 

Additional Inherited Members

- Static Protected Member Functions inherited from SoElement
static SoElementgetElement (SoState *state, int stackIndex)
 Returns an instance of an element from the stack with the given index in the given state.
 
static const SoElementgetConstElement (SoState *state, int stackIndex)
 Returns a read-only pointer to the top instance in the given element stack.
 
static int createStackIndex (SoType id)
 Creates and returns a new stack index.
 
- Static Protected Attributes inherited from SoElement
static int classStackIndex
 Stack index for SoElement class.
 

Detailed Description

This element is needed to allow separators (and other caching nodes) to store cached bounding boxes in their own local space. Shapes that extend the current bounding box computed by the action use this matrix to transform the bounding box into local space. Separators cache this box, then transform it into the next local space up the hierarchy.

Because this element is set to identity by separators before traversing their children, it can never have an affect on any caching separator that it is not under. Therefore, it should never be tested for cache invalidation, so its matches() method prints an error message and returns FALSE. It also means that it does not have to save node id's so there are no nodes passed in to any of the methods.

Definition at line 84 of file SoLocalBBoxMatrixElement.h.

Constructor & Destructor Documentation

◆ ~SoLocalBBoxMatrixElement()

virtual SoLocalBBoxMatrixElement::~SoLocalBBoxMatrixElement ( )
protectedvirtual

Member Function Documentation

◆ copyMatchInfo()

virtual SoElement * SoLocalBBoxMatrixElement::copyMatchInfo ( ) const
virtual

Implements SoElement.

◆ get()

static const SbMatrix & SoLocalBBoxMatrixElement::get ( SoState state)
static

◆ init()

virtual void SoLocalBBoxMatrixElement::init ( SoState state)
virtual

Reimplemented from SoElement.

◆ initClass()

static void SoLocalBBoxMatrixElement::initClass ( )
static

◆ makeIdentity()

static void SoLocalBBoxMatrixElement::makeIdentity ( SoState state)
static

◆ matches()

virtual bool SoLocalBBoxMatrixElement::matches ( const SoElement elt) const
virtual

Implements SoElement.

◆ mult()

static void SoLocalBBoxMatrixElement::mult ( SoState state,
const SbMatrix matrix 
)
static

◆ popMatrix()

static void SoLocalBBoxMatrixElement::popMatrix ( SoState state,
const SbMatrix m 
)
static

◆ print()

virtual void SoLocalBBoxMatrixElement::print ( FILE *  fp) const
virtual

Reimplemented from SoElement.

◆ push()

virtual void SoLocalBBoxMatrixElement::push ( SoState state)
virtual

Reimplemented from SoElement.

◆ pushMatrix()

static SbMatrix SoLocalBBoxMatrixElement::pushMatrix ( SoState state)
static

◆ resetAll()

static void SoLocalBBoxMatrixElement::resetAll ( SoState state)
static

◆ rotateBy()

static void SoLocalBBoxMatrixElement::rotateBy ( SoState state,
const SbRotation rotation 
)
static

◆ scaleBy()

static void SoLocalBBoxMatrixElement::scaleBy ( SoState state,
const SbVec3f scaleFactor 
)
static

◆ set()

static void SoLocalBBoxMatrixElement::set ( SoState state,
const SbMatrix matrix 
)
static

◆ translateBy()

static void SoLocalBBoxMatrixElement::translateBy ( SoState state,
const SbVec3f translation 
)
static

Member Data Documentation

◆ localMatrix

SbMatrix SoLocalBBoxMatrixElement::localMatrix
protected

Definition at line 134 of file SoLocalBBoxMatrixElement.h.


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