Package com.openinventor.inventor
Class SoPickedPoint
- java.lang.Object
-
- com.openinventor.inventor.Inventor
-
- com.openinventor.inventor.SoPickedPoint
-
public class SoPickedPoint extends Inventor
Represents point on surface of picked object. AnSoPickedPoint
represents a point on the surface of an object that was picked by applying anSoRayPickAction
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. Note that it is not always necessary to explicitly apply anSoRayPickAction
to the scene. The getPickedPoint method may also be called on anSoHandleEventAction
or anSoEventCallback
node.Each node in the picked path may have a corresponding instance of an
SoDetail
subclass. These detail instances are stored in theSoPickedPoint
.- See Also:
SoRayPickAction
,SoPickStyle
,SoDetail
,SoPath
,SoEventCallback
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.openinventor.inventor.Inventor
Inventor.ConstructorCommand
-
-
Field Summary
-
Fields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle
-
-
Constructor Summary
Constructors Constructor Description SoPickedPoint()
Default constructor.SoPickedPoint(SoPickedPoint pp)
Copy constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SoPickedPoint
copy()
SoDetail
getDetail()
Calls getDetail((com.openinventor.inventor.nodes.SoNode)null).SoDetail
getDetail(SoNode node)
Returns the detail that corresponds to the specified node in the path returned bygetPath()
.SbMatrix
getImageToObject()
Calls getImageToObject((com.openinventor.inventor.nodes.SoNode)null).SbMatrix
getImageToObject(SoNode node)
Returns the texture transformation matrix between image space and the object space corresponding to the given node in the path.int
getMaterialIndex()
Returns the index into the current set of materials of the material active at the intersection point.SbVec3f
getNormal()
Returns the surface normal in world space.SbVec3f
getObjectNormal()
Calls getObjectNormal((com.openinventor.inventor.nodes.SoNode)null).SbVec3f
getObjectNormal(SoNode node)
Returns the surface normal in the object space corresponding to the given node in the path.SbVec3f
getObjectPoint()
Calls getObjectPoint((com.openinventor.inventor.nodes.SoNode)null).SbVec3f
getObjectPoint(SoNode node)
Returns the intersection point in the object space corresponding to the given node in the path.SbVec4f
getObjectTextureCoords()
Calls getObjectTextureCoords((com.openinventor.inventor.nodes.SoNode)null).SbVec4f
getObjectTextureCoords(SoNode node)
Returns the texture coordinates in the object space corresponding to the given node in the path.SbMatrix
getObjectToImage()
Calls getObjectToImage((com.openinventor.inventor.nodes.SoNode)null).SbMatrix
getObjectToImage(SoNode node)
Returns the texture transformation matrix between the object space and image space corresponding to the given node in the path.SbMatrix
getObjectToWorld()
Calls getObjectToWorld((com.openinventor.inventor.nodes.SoNode)null).SbMatrix
getObjectToWorld(SoNode node)
Returns the transformation matrix between the object space and world space corresponding to the given node in the path.SoPath
getPath()
Returns the path to the object that was intersected.SbVec3f
getPoint()
Returns the intersection point in world space.SbVec4f
getTextureCoords()
Returns the texture coordinates in image space.SbMatrix
getWorldToObject()
Calls getWorldToObject((com.openinventor.inventor.nodes.SoNode)null).SbMatrix
getWorldToObject(SoNode node)
Returns the transformation matrix between world space and the object space corresponding to the given node in the path.boolean
isOnGeometry()
Returns whether the intersection is actually on the geometry of the character that was hit, as opposed to being on the bounding box.void
setDetail(SoDetail detail, SoNode node)
void
setMaterialIndex(int index)
void
setObjectNormal(SbVec3f normal)
void
setObjectTextureCoords(SbVec4f texCoords)
-
Methods inherited from class com.openinventor.inventor.Inventor
dispose, getNativeResourceHandle
-
-
-
-
Constructor Detail
-
SoPickedPoint
public SoPickedPoint()
Default constructor.
-
SoPickedPoint
public SoPickedPoint(SoPickedPoint pp)
Copy constructor.
-
-
Method Detail
-
getObjectToWorld
public SbMatrix getObjectToWorld()
Calls getObjectToWorld((com.openinventor.inventor.nodes.SoNode)null).
-
getWorldToObject
public SbMatrix getWorldToObject()
Calls getWorldToObject((com.openinventor.inventor.nodes.SoNode)null).
-
getDetail
public SoDetail getDetail()
Calls getDetail((com.openinventor.inventor.nodes.SoNode)null).
-
getObjectTextureCoords
public SbVec4f getObjectTextureCoords()
Calls getObjectTextureCoords((com.openinventor.inventor.nodes.SoNode)null).
-
getObjectNormal
public SbVec3f getObjectNormal()
Calls getObjectNormal((com.openinventor.inventor.nodes.SoNode)null).
-
getObjectPoint
public SbVec3f getObjectPoint()
Calls getObjectPoint((com.openinventor.inventor.nodes.SoNode)null).
-
getObjectToImage
public SbMatrix getObjectToImage()
Calls getObjectToImage((com.openinventor.inventor.nodes.SoNode)null).
-
getImageToObject
public SbMatrix getImageToObject()
Calls getImageToObject((com.openinventor.inventor.nodes.SoNode)null).
-
getTextureCoords
public SbVec4f getTextureCoords()
Returns the texture coordinates in image space. NOTE: By default theSoRayPickAction
does not compute texture coordinates and this method returns 0,0,0,0. To enable texture coordinate computation call the enableTexCoordsGeneration() method on the pick action object or set the environment variable OIV_PICK_GENERATE_ALL_PROPERTIES to true.
-
getNormal
public SbVec3f getNormal()
Returns the surface normal in world space. NOTE: It is possible to disable computation of normal vectors by calling the enableNormalsGeneration() method onSoRayPickAction
. If normal vectors are disabled, this method returns 0,0,0.
-
copy
public SoPickedPoint copy()
-
getPoint
public SbVec3f getPoint()
Returns the intersection point in world space.
-
getWorldToObject
public SbMatrix getWorldToObject(SoNode node)
Returns the transformation matrix between world space and the object space corresponding to the given node in the path. If the node is NULL, the matrix corresponding to the tail of the (full) path is returned.
-
setObjectNormal
public void setObjectNormal(SbVec3f normal)
-
getObjectToWorld
public SbMatrix getObjectToWorld(SoNode node)
Returns the transformation matrix between the object space and world space corresponding to the given node in the path. If the node is NULL, the matrix corresponding to the tail of the (full) path is returned.
-
getObjectTextureCoords
public SbVec4f getObjectTextureCoords(SoNode node)
Returns the texture coordinates in the object space corresponding to the given node in the path. If the node is NULL, the information corresponding to the tail of the (full) path is returned.
-
getImageToObject
public SbMatrix getImageToObject(SoNode node)
Returns the texture transformation matrix between image space and the object space corresponding to the given node in the path. If the node is NULL, the matrix corresponding to the tail of the (full) path is returned.
-
getObjectNormal
public SbVec3f getObjectNormal(SoNode node)
Returns the surface normal in the object space corresponding to the given node in the path. If the node is NULL, the information corresponding to the tail of the (full) path is returned.
-
getObjectToImage
public SbMatrix getObjectToImage(SoNode node)
Returns the texture transformation matrix between the object space and image space corresponding to the given node in the path. If the node is NULL, the matrix corresponding to the tail of the (full) path is returned.
-
setObjectTextureCoords
public void setObjectTextureCoords(SbVec4f texCoords)
-
getPath
public SoPath getPath()
Returns the path to the object that was intersected.
-
getObjectPoint
public SbVec3f getObjectPoint(SoNode node)
Returns the intersection point in the object space corresponding to the given node in the path. If the node is NULL, the information corresponding to the tail of the (full) path is returned.
-
getMaterialIndex
public int getMaterialIndex()
Returns 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.
-
getDetail
public SoDetail getDetail(SoNode node)
Returns the detail that corresponds to the specified node in the path returned bygetPath()
. If the node is null, the detail corresponding to the tail of the pick path is returned.Caution: If there is no detail class associated with the node, null is returned.
-
setMaterialIndex
public void setMaterialIndex(int index)
-
isOnGeometry
public boolean isOnGeometry()
Returns 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 (seeSoPickStyle
) affects this decision.
-
-