CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
OdGiCollideProc Class Referenceabstract

#include <GiCollideProc.h>

Inheritance diagram for OdGiCollideProc:
OdGiConveyorNode OdRxObject

Public Types

enum  AnalyticPrimitives { kAnalyticNone = 0 , kAnaliticCircles = (1 << 0) , kAnalyticComplexCurves = ( 1 << 1 ) }
 
enum  ProcessingPhase { kPhaseGatherInputData = 0 , kPhaseDetectIntersections }
 

Public Member Functions

 ODRX_DECLARE_MEMBERS (OdGiCollideProc)
 
virtual void set (OdGsCollisionDetectionReactor *pReactor, const OdGsCollisionDetectionContext *pCtx=NULL)=0
 
virtual void setDeviation (const OdGeDoubleArray &deviations)=0
 
virtual void setDeviation (const OdGiDeviation *pDeviation)=0
 
virtual void setDrawContext (OdGiConveyorContext *pDrawCtx)=0
 
virtual void setLinePrimitivesChecking (bool bCheck)=0
 
virtual bool linePrimitivesChecking () const =0
 
virtual void enableAnalyticMode (OdUInt8 options)=0
 
virtual OdUInt8 analitycMode () const =0
 
virtual void setNoFilter (bool bNoFilter)=0
 
virtual bool noFilter () const =0
 
virtual void setProcessingPhase (ProcessingPhase)=0
 
virtual ProcessingPhase processingPhase () const =0
 
virtual const OdGeExtents3dextents () const =0
 
virtual void setInputDrawables (OdGiPathNode const *const *pInputList, OdUInt32 nInputListSize)=0
 
virtual void setCheckWithDrawables (OdGiPathNode const *const *pInputList, OdUInt32 nInputListSize)=0
 
virtual void processTriangles ()=0
 
virtual void setExtentsExtension (double e)=0
 
- Public Member Functions inherited from OdGiConveyorNode
 ODRX_DECLARE_MEMBERS (OdGiConveyorNode)
 
virtual OdGiConveyorInputinput ()=0
 
virtual OdGiConveyorOutputoutput ()=0
 
- Public Member Functions inherited from OdRxObject
 ODRX_HEAP_OPERATORS ()
 
 OdRxObject ()
 
virtual ~OdRxObject ()
 
virtual OdRxObjectqueryX (const OdRxClass *pClass) const
 
virtual OdRxObjectx (const OdRxClass *pClass) const
 
virtual OdRxClassisA () const
 
virtual void addRef ()=0
 
virtual void release ()=0
 
virtual long numRefs () const
 
bool isKindOf (const OdRxClass *pClass) const
 
virtual OdRxObjectPtr clone () const
 
virtual void copyFrom (const OdRxObject *pSource)
 
virtual OdRx::Ordering comparedTo (const OdRxObject *pOther) const
 
virtual bool isEqualTo (const OdRxObject *pOther) const
 

Additional Inherited Members

- Static Public Member Functions inherited from OdRxObject
static OdRxObjectPtr cast (const OdRxObject *pointer)
 
static OdRxClassdesc ()
 
- Protected Member Functions inherited from OdGiConveyorNode
 OdGiConveyorNode ()
 

Detailed Description

<group OdGi_Classes> This class implements conveyor nodes performing collision detection.

Remarks
This conveyor node is used for implementation OdGsView::collide() and does not produce any output.
See also
<link gs_collision_detection, Work with Collision Detection>

Definition at line 48 of file GiCollideProc.h.

Member Enumeration Documentation

◆ AnalyticPrimitives

Additional analytic checking for primitives.

Enumerator
kAnalyticNone 
kAnaliticCircles 
kAnalyticComplexCurves 

Definition at line 100 of file GiCollideProc.h.

◆ ProcessingPhase

Represents processing phase of collision detection.

Enumerator
kPhaseGatherInputData 
kPhaseDetectIntersections 

Definition at line 125 of file GiCollideProc.h.

Member Function Documentation

◆ analitycMode()

virtual OdUInt8 OdGiCollideProc::analitycMode ( ) const
pure virtual

Retrieves options that are used in the analytic mode.

Returns
options that are used in analytic mode. Must be implemented in derived classes.

◆ enableAnalyticMode()

virtual void OdGiCollideProc::enableAnalyticMode ( OdUInt8  options)
pure virtual

Enables analytic mode for specified primitives. Must be implemented in derived classes.

Parameters
options[in] Option for analytic mode.

◆ extents()

virtual const OdGeExtents3d & OdGiCollideProc::extents ( ) const
pure virtual

Retrieves the extents of triangles that were collected during the OdGiCollideProc::kPhaseGatherInputData processing phase.

Returns
geometrical extents of the collected triangles.

◆ linePrimitivesChecking()

virtual bool OdGiCollideProc::linePrimitivesChecking ( ) const
pure virtual

Checks whether line primitives should be checked. If line primitives checking is disabled, only triangles will be checked.

Returns
true if line primitives checking is enabled, false otherwise which means that only triangles are checked.

◆ noFilter()

virtual bool OdGiCollideProc::noFilter ( ) const
pure virtual

Checks whether entity filtering is disabled.

Returns
true if entity filtering is disabled, false otherwise.

◆ ODRX_DECLARE_MEMBERS()

OdGiCollideProc::ODRX_DECLARE_MEMBERS ( OdGiCollideProc  )

◆ processingPhase()

virtual ProcessingPhase OdGiCollideProc::processingPhase ( ) const
pure virtual

Retrieves the current processing phase.

Returns
current processing phase represented by the ProcessingPhase enumeration values.

◆ processTriangles()

virtual void OdGiCollideProc::processTriangles ( )
pure virtual

Performs processing triangles that were gathered during conveyor node processing phases.

◆ set()

virtual void OdGiCollideProc::set ( OdGsCollisionDetectionReactor pReactor,
const OdGsCollisionDetectionContext pCtx = NULL 
)
pure virtual

Associates this object with the collision detection reactor and collision detection context.

Parameters
pReactor[in] Pointer to a custom object that detects collisions.
pCtx[in] Pointer to the collision detection context.

◆ setCheckWithDrawables()

virtual void OdGiCollideProc::setCheckWithDrawables ( OdGiPathNode const *const *  pInputList,
OdUInt32  nInputListSize 
)
pure virtual

Specifies an additional list of OdGiPathNode that is used in entity filtering during the OdGiCollideProc::kPhaseDetectIntersections processing phase;

Parameters
pInputList[in] Pointer to a pointer to an input list of drawables.
nInputListSize[in] Number of drawables in a list.

◆ setDeviation() [1/2]

virtual void OdGiCollideProc::setDeviation ( const OdGeDoubleArray deviations)
pure virtual

Sets max deviation for curve tessellation.

Parameters
deviations[in] Array with deviation values.

◆ setDeviation() [2/2]

virtual void OdGiCollideProc::setDeviation ( const OdGiDeviation pDeviation)
pure virtual

Sets deviation object to obtain max deviation for curve tessellation.

Parameters
pDeviation[in] Pointer to the deviation object.

◆ setDrawContext()

virtual void OdGiCollideProc::setDrawContext ( OdGiConveyorContext pDrawCtx)
pure virtual

Sets the draw context object (to access to traits, etc).

Parameters
pDrawCtx[in] Pointer to the draw context.

◆ setExtentsExtension()

virtual void OdGiCollideProc::setExtentsExtension ( double  e)
pure virtual

Specifies extents extension.

Parameters
e[in] Extents extension.
Remarks
This method is required for Clearance processing. If not to extend the extents, triangles may be filtered without clearance checking.

◆ setInputDrawables()

virtual void OdGiCollideProc::setInputDrawables ( OdGiPathNode const *const *  pInputList,
OdUInt32  nInputListSize 
)
pure virtual

Specifies a list of OdGiPathNode items that are used in entity filtering.

Parameters
pInputList[in] Pointer to a pointer to an input list of drawables.
nInputListSize[in] Number of drawables in a list.

◆ setLinePrimitivesChecking()

virtual void OdGiCollideProc::setLinePrimitivesChecking ( bool  bCheck)
pure virtual

Specifies whether line primitives should be checked. If line primitives checking is disabled, only triangles will be checked.

Parameters
bCheck[in] Flag that specifies whether line primitives should be checked.

◆ setNoFilter()

virtual void OdGiCollideProc::setNoFilter ( bool  bNoFilter)
pure virtual

Disables entity filtering during.

Parameters
bNoFilter[in] Flag that specifies whether

◆ setProcessingPhase()

virtual void OdGiCollideProc::setProcessingPhase ( ProcessingPhase  )
pure virtual

Specifies the current processing phase that allows conveyor node collecting of triangles to different lists.

Parameters
ProcessingPhase[in] Processing phase.

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