SoPickedPoint.3coin2

Langue: en

Version: 380614 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

Sommaire

NAME

SoPickedPoint -

The SoPickedPoint class is used for specifying picked points.

It holds miscellaneous information about the picked point, such as position, normal, texture coordinate and material index in the current material. It might also hold detail information (an SoDetail subclass) for every node in the picked path.

SYNOPSIS


#include <Inventor/SoPickedPoint.h>

Public Member Functions


SoPickedPoint (const SoPickedPoint &pp)

SoPickedPoint (const SoPath *const path, SoState *const state, const SbVec3f &objSpacePoint)

~SoPickedPoint ()

SoPickedPoint * copy () const

const SbVec3f & getPoint () const

const SbVec3f & getNormal () const

const SbVec4f & getTextureCoords () const

int getMaterialIndex () const

SoPath * getPath () const

SbBool isOnGeometry () const

const SoDetail * getDetail (const SoNode *const node=NULL) const

const SbMatrix & getObjectToWorld (const SoNode *const node=NULL) const

const SbMatrix & getWorldToObject (const SoNode *const node=NULL) const

const SbMatrix & getObjectToImage (const SoNode *const node=NULL) const

const SbMatrix & getImageToObject (const SoNode *const node=NULL) const

SbVec3f getObjectPoint (const SoNode *const node=NULL) const

SbVec3f getObjectNormal (const SoNode *const node=NULL) const

SbVec4f getObjectTextureCoords (const SoNode *const node=NULL) const

void setObjectNormal (const SbVec3f &normal)

void setObjectTextureCoords (const SbVec4f &texCoords)

void setMaterialIndex (const int index)

void setDetail (SoDetail *detail, SoNode *node)

Detailed Description

The SoPickedPoint class is used for specifying picked points.

It holds miscellaneous information about the picked point, such as position, normal, texture coordinate and material index in the current material. It might also hold detail information (an SoDetail subclass) for every node in the picked path.

See also:

SoRayPickAction

Constructor & Destructor Documentation

SoPickedPoint::SoPickedPoint (const SoPickedPoint & pp)Copy constructor.

References SoDetailList::copy(), SbPList::getLength(), and SoBase::ref().

Referenced by copy().

SoPickedPoint::SoPickedPoint (const SoPath *const pathptr, SoState *const stateptr, const SbVec3f & objSpacePoint)Constructor. Uses the state to convert between world and object space for the data.

References SoPath::copy(), and SoBase::ref().

SoPickedPoint::~SoPickedPoint ()Destructor.

References SoBase::unref().

Member Function Documentation

SoPickedPoint * SoPickedPoint::copy () constReturns a copy of this picked point.

Note that if the Coin library has been built as a DLL under Microsoft Windows and you use this method from application code, you must make sure that both the Coin DLL and the application executable is using the same instance of a C Run-Time (CRT) library. Otherwise, you will get memory heap corruption upon deallocating the returned instances, eventually leading to mysterious crashes.

References SoPickedPoint().

const SbVec3f & SoPickedPoint::getPoint () constReturns the world space point.

Referenced by SoDragger::setStartingPoint().

const SbVec3f & SoPickedPoint::getNormal (void) constReturns the world space normal.

const SbVec4f & SoPickedPoint::getTextureCoords () constReturns the image space texture coordinates.

int SoPickedPoint::getMaterialIndex () constReturns the material index.

SoPath * SoPickedPoint::getPath () constReturns the path to the picked object.

Referenced by SoSelection::handleEvent(), SoLocateHighlight::handleEvent(), SoEventCallback::handleEvent(), SoDragger::handleEvent(), and SoBaseKit::rayPick().

SbBool SoPickedPoint::isOnGeometry () constReturns TRUE if this picked point is on the actual geometry of the picked object, or FALSE if not (it might for instance be on the bounding box if picking was done on bounding boxes).

const SoDetail * SoPickedPoint::getDetail (const SoNode *const node = NULL) constReturns detail for node. If node equals NULL, the detail for the picked object is returned.

References SoPath::findNode().

Referenced by SoBaseKit::rayPick().

const SbMatrix & SoPickedPoint::getObjectToWorld (const SoNode *const node = NULL) constReturns the matrix which converts from object (specified by node) to world space. If node equals NULL, the object space of the picked object will used.

References SoGetMatrixAction::getMatrix().

const SbMatrix & SoPickedPoint::getWorldToObject (const SoNode *const node = NULL) constReturns the matrix which converts from world to object (specified by node) space. If node equals NULL, the object space of the picked object will used.

References SoGetMatrixAction::getInverse().

Referenced by getObjectNormal(), and getObjectPoint().

const SbMatrix & SoPickedPoint::getObjectToImage (const SoNode *const node = NULL) constReturns the matrix which converts from object (specified by node) to image space. If node equals NULL, the object space of the picked object will used.

References SoGetMatrixAction::getTextureMatrix().

const SbMatrix & SoPickedPoint::getImageToObject (const SoNode *const node = NULL) constReturns the matrix which converts from image to object (specified by node) space. If node equals NULL, the object space of the picked object will used.

References SoGetMatrixAction::getTextureInverse().

Referenced by getObjectTextureCoords().

SbVec3f SoPickedPoint::getObjectPoint (const SoNode *const node = NULL) constReturns the object space point, in the object space specified by node. If node equals NULL, the object space of the node where the point was actually picked will be used (this is what one would usually be interested in).

node can be any node in the scenegraph.

References getWorldToObject(), and SbMatrix::multVecMatrix().

Referenced by SoWWWAnchor::handleEvent().

SbVec3f SoPickedPoint::getObjectNormal (const SoNode *const node = NULL) constReturns the object space (specified by node) normal. If node equals NULL, the picked point object space will be used.

References getWorldToObject(), and SbMatrix::multDirMatrix().

SbVec4f SoPickedPoint::getObjectTextureCoords (const SoNode *const node = NULL) constReturns the object space (specified by node) texture coordinates. If node equals NULL, the picked point object space will be used.

References getImageToObject(), and SbMatrix::multVecMatrix().

void SoPickedPoint::setObjectNormal (const SbVec3f & normalref)Sets the picked point objects space normal vector.

Referenced by SoShape::invokeLineSegmentCallbacks(), SoShape::invokePointCallbacks(), SoShape::invokeTriangleCallbacks(), and SoText2::rayPick().

void SoPickedPoint::setObjectTextureCoords (const SbVec4f & texCoordsref)Sets the picked point object space texture coordinates.

Referenced by SoShape::invokeLineSegmentCallbacks(), SoShape::invokePointCallbacks(), and SoShape::invokeTriangleCallbacks().

void SoPickedPoint::setMaterialIndex (const int index)Sets the material index.

Referenced by SoShape::invokeLineSegmentCallbacks(), SoShape::invokePointCallbacks(), SoShape::invokeTriangleCallbacks(), and SoText2::rayPick().

void SoPickedPoint::setDetail (SoDetail * detail, SoNode * node)Sets the detail for node. node must be in the picked path, of course. Set to NULL if you want to remove a detail for a node.

References SoPath::findNode(), and SoDetailList::set().

Referenced by SoShape::invokeLineSegmentCallbacks(), SoShape::invokePointCallbacks(), SoShape::invokeTriangleCallbacks(), and SoText2::rayPick().

Author

Generated automatically by Doxygen for Coin from the source code.