H3D API
2.4.1
|
Used as input to lineIntersect functions. More...
#include <H3D/Node.h>
Classes | |
struct | PointingDeviceResultStruct |
Contains a list of Nodes (X3DPointingDeviceNodes) and a transformation matrix from global space to local space of the nodes. More... | |
Public Member Functions | |
LineIntersectResult (bool _override_no_collision=false, bool _detect_pt_device=false, void *_user_data=0, bool _collide_invisible=false) | |
Constructor. | |
void | pushCurrentPtDevice (PointingDeviceResultStruct &tmp) |
Push struct to current_pt_device stack. | |
void | popCurrentPtDevice () |
Pop struct from current_pt_device stack. | |
void | addPtDevMap () |
Add current pointing device struct to geom_ptd_map. | |
virtual void | clearData () |
Clears data so the struct can be used in a closestPoint function again. | |
bool | hasCurrentPointingDevice () |
Check if there aer any pointing device sensors added. | |
![]() | |
void | addTransform () |
Adds the current transform from local coordinate space to global coordinate space to geometry_transforms. | |
const vector< Matrix4f > & | getGeometryTransforms () |
Get the info in geometry_transforms. | |
const Matrix4f & | getCurrentTransform () |
Get the current matrix that transforms from local coordinate space to global coordinate space. | |
void | pushTransform (const Matrix4f &matrix) |
Push onto stack of current transforms. More... | |
void | popTransform () |
Remove the top on the stack of current transforms. | |
void | transformResult () |
Transforms point and normal in the IntersectionInfo vector from local to global space. | |
void | addResults (IntersectionInfo &temp_result, Node *the_node, bool add_transform=true) |
Convenience function to add results to the struct. | |
Public Attributes | |
bool | detect_pt_device |
Flag used to know if lineintersect should bother with keeping track of X3DPointingDeviceSensorNodes. | |
GeomX3DPtdMap | geom_ptd_map |
Used in order to keep track of DEF/USE feature of X3D. More... | |
![]() | |
vector< Node * > | theNodes |
A vector of pointers to nodes. More... | |
vector< IntersectionInfo > | result |
A vector of HAPI::IntersectionInfo that stores result of intersection such as point and normal. More... | |
void * | user_data |
Optional user_data in case someone want to do add some extra feature to collision functions in one or several custom made nodes. | |
bool | override_no_collision |
Flag used to know if collision function should be called for the children in the Collision Node regardless if it is enabled or not. | |
bool | collide_invisible |
Flag used to know if collision function should be called for the children in a ToogleGroup Node even if graphicsOn is false. More... | |
Protected Attributes | |
stack< PointingDeviceResultStruct > | current_pt_device |
The top of the stack contains the X3DPointingDeviceNodes that is to be considered. | |
![]() | |
vector< Matrix4f > | geometry_transforms |
A vector of matrices from the local coordinate space to global space for each node that the line intersects. | |
stack< Matrix4f > | current_matrix |
The top of the stack is the current matrix that transforms from the local coordinate space where this Node resides in the scenegraph to global space. | |
Used as input to lineIntersect functions.
It is basically like NodeIntersectResult with the additional feature of handling X3DPointingDeviceNode features as per X3D specification.
GeomX3DPtdMap H3D::Node::LineIntersectResult::geom_ptd_map |
Used in order to keep track of DEF/USE feature of X3D.
Maps indexes in theNodes vector to PointingDeviceResultStruct which contains info about the X3DPointingDeviceNodes.
Referenced by H3D::X3DPointingDeviceSensorNode::updateX3DPointingDeviceSensors().