'\"! tbl | mmdoc '\"macro stdmacro .ie n \{\ . ds Cr \fB . ds Cb \fB .\} .el \{\ . ds Cr \f7 . ds Cb \f8 .\} .TH SoPickedPoint(3IV) .SH NAME SoPickedPoint \(em represents point on surface of picked object .SH INHERITS FROM SoPickedPoint .SH SYNOPSIS .ps -1 \*(Cr#include .sp .in 1i \f1Methods from class SoPickedPoint: .in 0.5i .sp .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbSoPickedPoint\*(Cr(const SoPickedPoint &pp) .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cb~SoPickedPoint\*(Cr() .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbVec3f & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetPoint\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbVec3f & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetNormal\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbVec4f & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetTextureCoords\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crint .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetMaterialIndex\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoPath * .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetPath\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisOnGeometry\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SoDetail * .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetDetail\*(Cr(const SoNode *node = NULL) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbMatrix .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetObjectToWorld\*(Cr(const SoNode *node = NULL) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbMatrix .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetWorldToObject\*(Cr(const SoNode *node = NULL) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbMatrix .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetObjectToImage\*(Cr(const SoNode *node = NULL) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbMatrix .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetImageToObject\*(Cr(const SoNode *node = NULL) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbVec3f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetObjectPoint\*(Cr(const SoNode *node = NULL) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbVec3f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetObjectNormal\*(Cr(const SoNode *node = NULL) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbVec4f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetObjectTextureCoords\*(Cr(const SoNode *node=NULL) const .sp .SH DESCRIPTION An \*(CbSoPickedPoint\f1 represents a point on the surface of an object that was picked by applying an \*(CbSoRayPickAction\f1 to a scene. It contains a path to the picked shape, the point of intersection, the surface normal and texture coordinates \&at that point, and other information. .sp Each node in the picked path may have a corresponding instance of a detail subclass. These detail instances are stored in the \*(CbSoPickedPoint\f1. .SH METHODS .ta 20m .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbSoPickedPoint\*(Cr(const SoPickedPoint &pp) .br .in 1i \f1Copy constructor. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Cr .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(Cb~SoPickedPoint\*(Cr() .br .in 1i \f1Destructor. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbVec3f & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetPoint\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbVec3f & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetNormal\*(Cr() const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbVec4f & .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetTextureCoords\*(Cr() const .br .in 1i \f1These return the intersection point and surface normal in world space, and the texture coordinates in image space. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crint .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetMaterialIndex\*(Cr() const .br .in 1i \f1Returns the index into the current set of materials of the material active at the intersection point. Note that if the materials are interpolated between vertices, the index will correspond to the material \&at one of the vertices. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSoPath * .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetPath\*(Cr() const .br .in 1i \f1Returns the path to the object that was intersected. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(CrSbBool .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbisOnGeometry\*(Cr() const .br .in 1i \f1Returns whether the intersection is actually on the geometry of the character that was hit, as opposed to being on the bounding box. The pick style (see \*(CbSoPickStyle\f1) affects this decision. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SoDetail * .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetDetail\*(Cr(const SoNode *node = NULL) const .br .in 1i \f1Returns the detail that corresponds to the given node in the path returned by \*(CbgetPath()\f1. If the node pointer is NULL (the default), the detail corresponding to the tail of the (full) path is returned. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbMatrix .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetObjectToWorld\*(Cr(const SoNode *node = NULL) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbMatrix .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetWorldToObject\*(Cr(const SoNode *node = NULL) const .br .in 1i \f1These return the transformation matrices between world space and the object space corresponding to the given node in the path. If the node pointer is NULL (the default), the matrix corresponding to the \&tail of the (full) path is returned. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbMatrix .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetObjectToImage\*(Cr(const SoNode *node = NULL) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbMatrix .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetImageToObject\*(Cr(const SoNode *node = NULL) const .br .in 1i \f1These return the texture transformation matrices between image space and the object space corresponding to the given node in the path. If the node pointer is NULL (the default), the matrix corresponding \&to the tail of the (full) path is returned. .sp .in 0.5i .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbVec3f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetObjectPoint\*(Cr(const SoNode *node = NULL) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbVec3f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetObjectNormal\*(Cr(const SoNode *node = NULL) const .br .in 1i+20n .ti 0.5i .ta 20m .ds Pt \*(Crconst SbVec4f .ie \w'\*(Pt'>=20n \{\ .ne 3 \*(Pt .ti 0.5i \c\ \} .el\{\ .ne 2 \*(Pt \c\ \} \*(CbgetObjectTextureCoords\*(Cr(const SoNode *node=NULL) const .br .in 1i \f1These return the intersection point, surface normal, and texture coordinates in the object space corresponding to the given node in the path. If the node pointer is NULL (the default), the information \&corresponding to the tail of the (full) path is returned. .sp .in 0.5i .SH SEE ALSO \*(CbSoRayPickAction, SoPickStyle, SoDetail, SoPath