CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
OdSi::Volume Class Reference

#include <SiVolume.h>

Inheritance diagram for OdSi::Volume:
OdSiShape

Classes

class  PlaneImpl
 

Public Member Functions

 Volume ()
 
 Volume (const Volume &source)
 
 Volume (const OdGePoint3d &origin, const OdGeVector3d &zAxis, const OdGeVector3d &yAxis, const OdGeVector3d &xAxis, double xFov, double yFov, bool xFovAsAspect=false, bool yFovAsAspect=false, bool bNearPlane=false, double fNearPlane=0.01, bool bFarPlane=false, double fFarPlane=1.0)
 
virtual bool contains (const OdGeExtents3d &extents, bool planar=false, const OdGeTol &tol=OdGeContext::gTol) const
 
virtual bool intersects (const OdGeExtents3d &extents, bool planar=false, const OdGeTol &tol=OdGeContext::gTol) const
 
virtual OdSiShapeclone () const
 
virtual void transform (const OdGeMatrix3d &mtx)
 
- Public Member Functions inherited from OdSiShape
virtual ~OdSiShape ()
 

Static Public Member Functions

static double fovToPlane (double fov, double len)
 
static double fovFromPlane (double plane, double len)
 
static Volume buildPyramidInEyeCS (const OdGeExtents2d &baseProjecton, double viewDistance, bool bNearPnane=true, double dNearPlane=0., bool bFarPlane=false, double dFarPlane=0.)
 
- Static Public Member Functions inherited from OdSiShape
static bool isOverallSpace (const OdSiShape *ptr)
 
static bool isNoSpace (const OdSiShape *ptr)
 

Static Protected Member Functions

static bool planeFromTri (const OdGePoint3d &A, const OdGePoint3d &B, const OdGePoint3d &C, PlaneImpl &pl)
 
static bool aabbInsidePlane (const OdGePoint3d &min, const OdGePoint3d &max, const PlaneImpl &plane, const OdGeTol &tol)
 

Protected Attributes

OdUInt32 m_nPlanes
 
PlaneImpl m_plane [6]
 
bool m_planeValid [6] = {}
 

Additional Inherited Members

- Static Public Attributes inherited from OdSiShape
static ODSI_API_STATIC const OdSiShapekOverallSpace
 
static ODSI_API_STATIC const OdSiShapekNoSpace
 

Detailed Description

This class represents volumetric spatial index query shape. It is used with perspective mode projections.

<group OdGi_Classes>

Definition at line 40 of file SiVolume.h.

Constructor & Destructor Documentation

◆ Volume() [1/3]

OdSi::Volume::Volume ( )
inline

Definition at line 81 of file SiVolume.h.

◆ Volume() [2/3]

OdSi::Volume::Volume ( const Volume & source)
inline

Definition at line 82 of file SiVolume.h.

◆ Volume() [3/3]

OdSi::Volume::Volume ( const OdGePoint3d & origin,
const OdGeVector3d & zAxis,
const OdGeVector3d & yAxis,
const OdGeVector3d & xAxis,
double xFov,
double yFov,
bool xFovAsAspect = false,
bool yFovAsAspect = false,
bool bNearPlane = false,
double fNearPlane = 0.01,
bool bFarPlane = false,
double fFarPlane = 1.0 )
inline

Definition at line 201 of file SiVolume.h.

Member Function Documentation

◆ aabbInsidePlane()

static bool OdSi::Volume::aabbInsidePlane ( const OdGePoint3d & min,
const OdGePoint3d & max,
const PlaneImpl & plane,
const OdGeTol & tol )
inlinestaticprotected

Definition at line 188 of file SiVolume.h.

◆ buildPyramidInEyeCS()

static Volume OdSi::Volume::buildPyramidInEyeCS ( const OdGeExtents2d & baseProjecton,
double viewDistance,
bool bNearPnane = true,
double dNearPlane = 0.,
bool bFarPlane = false,
double dFarPlane = 0. )
inlinestatic

This method builds Volume as pyramid extents for perspective view in Eye Coordinate System.

Parameters
baseProjecton[in] Projection of pyramid base on view target plane.
viewDistance[in] Distance between veiw position and target
bNearPlane[in] Flag that indicates whether near plane clipping should be involved.
dNearPlane[in] Distance from target point to the near clipping plane.
bFarPlane[in] Flag that indicates whether far plane clipping should be involved.
dFerPlane[in] Distance from target point to the far clipping plane.
Remarks
This method assumes that we have perspective view and works in Eye CS. So, view target is (0,0,0), view direction is -1. * OdGeVector3d::kZAxis and viewDistance is a focal length. Result Volume has top point at view's position.

Definition at line 137 of file SiVolume.h.

◆ clone()

virtual OdSiShape * OdSi::Volume::clone ( ) const
inlinevirtual

Reimplemented from OdSiShape.

Definition at line 101 of file SiVolume.h.

◆ contains()

bool OdSi::Volume::contains ( const OdGeExtents3d & extents,
bool planar = false,
const OdGeTol & tol = OdGeContext::gTol ) const
inlinevirtual

Returns true if and only if this Shape object contains the specified extents.

Parameters
extents[in] Any 3D extents box.
planar[in] If and only if true, a planar computation is made.

Implements OdSiShape.

Definition at line 253 of file SiVolume.h.

◆ fovFromPlane()

static double OdSi::Volume::fovFromPlane ( double plane,
double len )
inlinestatic

Definition at line 120 of file SiVolume.h.

◆ fovToPlane()

static double OdSi::Volume::fovToPlane ( double fov,
double len )
inlinestatic

Definition at line 116 of file SiVolume.h.

◆ intersects()

bool OdSi::Volume::intersects ( const OdGeExtents3d & extents,
bool planar = false,
const OdGeTol & tol = OdGeContext::gTol ) const
inlinevirtual

Returns true if and only if this Shape object intersects the specified extents.

Parameters
extents[in] Any 3D extents box.
planar[in] If and only if true, a planar computation is made.

Implements OdSiShape.

Definition at line 275 of file SiVolume.h.

◆ planeFromTri()

static bool OdSi::Volume::planeFromTri ( const OdGePoint3d & A,
const OdGePoint3d & B,
const OdGePoint3d & C,
PlaneImpl & pl )
inlinestaticprotected

Definition at line 172 of file SiVolume.h.

◆ transform()

virtual void OdSi::Volume::transform ( const OdGeMatrix3d & mtx)
inlinevirtual

Reimplemented from OdSiShape.

Definition at line 106 of file SiVolume.h.

Member Data Documentation

◆ m_nPlanes

OdUInt32 OdSi::Volume::m_nPlanes
protected

Definition at line 76 of file SiVolume.h.

◆ m_plane

PlaneImpl OdSi::Volume::m_plane[6]
protected

Definition at line 78 of file SiVolume.h.

◆ m_planeValid

bool OdSi::Volume::m_planeValid[6] = {}
protected

Definition at line 79 of file SiVolume.h.


The documentation for this class was generated from the following file: