Open CASCADE Technology
6.9.0
|
BVHTreeSelector class provides a possibility to store parameters of view volume, such as its vertices and equations, and contains methods detecting if given AABB overlaps view volume. More...
#include <OpenGl_BVHTreeSelector.hxx>
Public Member Functions | |
OpenGl_BVHTreeSelector () | |
Creates an empty selector object with parallel projection type by default. More... | |
void | SetViewVolume (const Handle< Graphic3d_Camera > &theCamera) |
Retrieves view volume's planes equations and its vertices from projection and modelview matrices. More... | |
Standard_Boolean | Intersect (const OpenGl_Vec4 &theMinPt, const OpenGl_Vec4 &theMaxPt) const |
Detects if AABB overlaps view volume using separating axis theorem (SAT). More... | |
void | CacheClipPtsProjections () |
Caches view volume's vertices projections along its normals and AABBs dimensions. Must be called at the beginning of each BVH tree traverse loop. More... | |
const Standard_Size | ProjectionState () |
Returnes the state of projection matrix previously saved in selector. More... | |
Standard_Size & | ChangeProjectionState () |
Returnes the link for changing the state of projection matrix. More... | |
const Standard_Size | ModelViewState () |
Returnes the state of model view matrix previously saved in selector. More... | |
Standard_Size & | ChangeModelViewState () |
Returnes the link for changing the state of model view matrix. More... | |
Protected Types | |
enum | { Plane_Top, Plane_Bottom, Plane_Left, Plane_Right, Plane_Near, Plane_Far, PlanesNB } |
Enumerates planes of view volume. More... | |
enum | { ClipVert_LeftTopNear, ClipVert_LeftBottomNear, ClipVert_RightTopNear, ClipVert_RightBottomNear, ClipVert_LeftTopFar, ClipVert_LeftBottomFar, ClipVert_RightTopFar, ClipVert_RightBottomFar, ClipVerticesNB } |
Enumerates vertices of view volume. More... | |
Protected Member Functions | |
Standard_ShortReal | SignedPlanePointDistance (const OpenGl_Vec4 &theNormal, const OpenGl_Vec4 &thePnt) |
Calculates signed distance from plane to point. More... | |
Protected Attributes | |
OpenGl_Vec4 | myClipPlanes [PlanesNB] |
Plane equations. More... | |
OpenGl_Vec4 | myClipVerts [ClipVerticesNB] |
Vertices. More... | |
Standard_ShortReal | myMaxClipProjectionPts [PlanesNB] |
Max view volume's vertices projections onto its normals. More... | |
Standard_ShortReal | myMinClipProjectionPts [PlanesNB] |
Min view volume's vertices projections onto its normals. More... | |
Standard_ShortReal | myMaxOrthoProjectionPts [3] |
Max view volume's vertices projections onto normalized dimensions of AABB. More... | |
Standard_ShortReal | myMinOrthoProjectionPts [3] |
Min view volume's vertices projections onto normalized dimensions of AABB. More... | |
Standard_Boolean | myIsProjectionParallel |
Standard_Size | myProjectionState |
Standard_Size | myModelViewState |
Caches the state of projection matrix to prevent unnecessary updates. More... | |
BVHTreeSelector class provides a possibility to store parameters of view volume, such as its vertices and equations, and contains methods detecting if given AABB overlaps view volume.
|
protected |
|
protected |
OpenGl_BVHTreeSelector::OpenGl_BVHTreeSelector | ( | ) |
Creates an empty selector object with parallel projection type by default.
void OpenGl_BVHTreeSelector::CacheClipPtsProjections | ( | ) |
Caches view volume's vertices projections along its normals and AABBs dimensions. Must be called at the beginning of each BVH tree traverse loop.
|
inline |
Returnes the link for changing the state of model view matrix.
|
inline |
Returnes the link for changing the state of projection matrix.
Standard_Boolean OpenGl_BVHTreeSelector::Intersect | ( | const OpenGl_Vec4 & | theMinPt, |
const OpenGl_Vec4 & | theMaxPt | ||
) | const |
Detects if AABB overlaps view volume using separating axis theorem (SAT).
theMinPt | [in] maximum point of AABB. |
theMaxPt | [in] minimum point of AABB. |
|
inline |
Returnes the state of model view matrix previously saved in selector.
|
inline |
Returnes the state of projection matrix previously saved in selector.
void OpenGl_BVHTreeSelector::SetViewVolume | ( | const Handle< Graphic3d_Camera > & | theCamera | ) |
Retrieves view volume's planes equations and its vertices from projection and modelview matrices.
|
protected |
Calculates signed distance from plane to point.
theNormal | [in] the plane's normal. |
thePnt | [in] |
|
protected |
Plane equations.
|
protected |
Vertices.
|
protected |
|
protected |
Max view volume's vertices projections onto its normals.
|
protected |
Max view volume's vertices projections onto normalized dimensions of AABB.
|
protected |
Min view volume's vertices projections onto its normals.
|
protected |
Min view volume's vertices projections onto normalized dimensions of AABB.
|
protected |
Caches the state of projection matrix to prevent unnecessary updates.
|
protected |