CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
GiCollideProc.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23
24#ifndef __ODGICOLLIDEPROC__
25#define __ODGICOLLIDEPROC__
26
27#include "Gi/GiConveyorNode.h"
28#include "Gs/Gs.h"
29#include "Ge/GeDoubleArray.h"
30#include "Ge/GePoint2dArray.h"
31
32class OdGiDeviation;
34
35#include "TD_PackPush.h"
36
49{
50public:
52
53
60 virtual void set( OdGsCollisionDetectionReactor* pReactor, const OdGsCollisionDetectionContext* pCtx = NULL ) = 0;
61
67 virtual void setDeviation(const OdGeDoubleArray& deviations) = 0;
68
74 virtual void setDeviation(const OdGiDeviation* pDeviation) = 0;
75
81 virtual void setDrawContext(OdGiConveyorContext* pDrawCtx) = 0;
82
88 virtual void setLinePrimitivesChecking( bool bCheck ) = 0;
89
96 virtual bool linePrimitivesChecking() const = 0;
97
101 {
102 kAnalyticNone = 0, //Disabled
103 kAnaliticCircles = (1 << 0), //For circles
104 kAnalyticComplexCurves = ( 1 << 1 ) // For complex curves
105 };
106
112 virtual void enableAnalyticMode( OdUInt8 options ) = 0;
113
120 virtual OdUInt8 analitycMode() const = 0;
121
126 {
127 kPhaseGatherInputData = 0, //During the OdGiCollideProc::kPhaseGatherInputData processing phase, if OdGiPathNode of the currently processing entity is not listed in pInputList, the entity is skipped.
128 kPhaseDetectIntersections //During the OdGiCollideProc::kPhaseDetectIntersections processing phase, if OdGiPathNode of the currently processing entity is listed in pInputList, the entity is skipped to avoid detecting collisions between the same entity
129 };
130
136 virtual void setNoFilter( bool bNoFilter ) = 0;
137
144 virtual bool noFilter() const = 0;
145
152
159 virtual ProcessingPhase processingPhase() const = 0;
160
167 virtual const OdGeExtents3d& extents() const = 0;
168
175 virtual void setInputDrawables( OdGiPathNode const*const* pInputList, OdUInt32 nInputListSize ) = 0;
176
183 virtual void setCheckWithDrawables( OdGiPathNode const*const* pInputList, OdUInt32 nInputListSize ) = 0;
184
188 virtual void processTriangles() = 0;
194 virtual void setExtentsExtension( double e ) = 0;
195};
196
201
202#include "TD_PackPop.h"
203
204#endif //#ifndef __ODGICOLLIDEPROC__
OdSmartPtr< OdGiCollideProc > OdGiCollideProcPtr
#define ODGI_EXPORT
Definition: GiExport.h:35
unsigned int OdUInt32
unsigned char OdUInt8
virtual void processTriangles()=0
virtual bool noFilter() const =0
virtual void setProcessingPhase(ProcessingPhase)=0
virtual void setLinePrimitivesChecking(bool bCheck)=0
virtual void setDeviation(const OdGeDoubleArray &deviations)=0
virtual void setInputDrawables(OdGiPathNode const *const *pInputList, OdUInt32 nInputListSize)=0
virtual void enableAnalyticMode(OdUInt8 options)=0
virtual OdUInt8 analitycMode() const =0
virtual ProcessingPhase processingPhase() const =0
ODRX_DECLARE_MEMBERS(OdGiCollideProc)
virtual void setDeviation(const OdGiDeviation *pDeviation)=0
virtual void setExtentsExtension(double e)=0
virtual void setDrawContext(OdGiConveyorContext *pDrawCtx)=0
virtual void set(OdGsCollisionDetectionReactor *pReactor, const OdGsCollisionDetectionContext *pCtx=NULL)=0
virtual void setNoFilter(bool bNoFilter)=0
virtual const OdGeExtents3d & extents() const =0
virtual void setCheckWithDrawables(OdGiPathNode const *const *pInputList, OdUInt32 nInputListSize)=0
virtual bool linePrimitivesChecking() const =0