31 #ifndef PX_PHYSICS_NX_SCENE 32 #define PX_PHYSICS_NX_SCENE 86 : dominance0(a), dominance1(b) {}
107 eRIGID_STATIC = (1 << 0),
113 eRIGID_DYNAMIC = (1 << 1)
195 virtual void release() = 0;
250 virtual PxU32 getTimestamp()
const = 0;
282 virtual void removeArticulation(
PxArticulationBase& articulation,
bool wakeOnLostTouch =
true) = 0;
331 virtual void addActors(
PxActor*
const* actors,
PxU32 nbActors) = 0;
369 virtual void removeActor(
PxActor& actor,
bool wakeOnLostTouch =
true) = 0;
386 virtual void removeActors(
PxActor*
const* actors,
PxU32 nbActors,
bool wakeOnLostTouch =
true) = 0;
400 virtual void addAggregate(
PxAggregate& aggregate) = 0;
414 virtual void removeAggregate(
PxAggregate& aggregate,
bool wakeOnLostTouch =
true) = 0;
428 virtual void addCollection(
const PxCollection& collection) = 0;
473 virtual PxActor** getActiveActors(
PxU32& nbActorsOut) = 0;
482 virtual PxU32 getNbArticulations()
const = 0;
503 virtual PxU32 getNbConstraints()
const = 0;
525 virtual PxU32 getNbAggregates()
const = 0;
596 virtual void setDominanceGroupPair(
618 virtual PxCpuDispatcher* getCpuDispatcher()
const = 0;
627 virtual PxGpuDispatcher* getGpuDispatcher()
const = 0;
750 virtual void setFilterShaderData(
const void* data,
PxU32 dataSize) = 0;
761 virtual const void* getFilterShaderData()
const = 0;
770 virtual PxU32 getFilterShaderDataSize()
const = 0;
780 getFilterShader()
const = 0;
790 getFilterCallback()
const = 0;
821 virtual void resetFiltering(
PxActor& actor) = 0;
877 void* scratchMemBlock = 0,
PxU32 scratchMemBlockSize = 0,
bool controlSimulation =
true) = 0;
910 PxU32 scratchMemBlockSize = 0,
bool controlSimulation =
true) = 0;
923 virtual bool checkResults(
bool block =
false) = 0;
932 virtual bool fetchCollision(
bool block =
false) = 0;
955 virtual bool fetchResults(
bool block =
false,
PxU32* errorState = 0) = 0;
973 virtual bool fetchResultsStart(
const PxContactPairHeader*& contactPairs,
PxU32& nbContactPairs,
bool block =
false) = 0;
998 virtual void fetchResultsFinish(
PxU32* errorState = 0) = 0;
1011 virtual void flushSimulation(
bool sendPendingReports =
false) = 0;
1022 virtual void setGravity(
const PxVec3& vec) = 0;
1031 virtual PxVec3 getGravity()
const = 0;
1038 virtual void setBounceThresholdVelocity(
const PxReal t) = 0;
1045 virtual PxReal getBounceThresholdVelocity()
const = 0;
1056 virtual void setCCDMaxPasses(
PxU32 ccdMaxPasses) = 0;
1066 virtual PxU32 getCCDMaxPasses()
const = 0;
1073 virtual PxReal getFrictionOffsetThreshold()
const = 0;
1123 virtual void setVisualizationCullingBox(
const PxBounds3&
box) = 0;
1131 virtual PxBounds3 getVisualizationCullingBox()
const = 0;
1194 virtual void flushQueryUpdates() = 0;
1216 virtual void setDynamicTreeRebuildRateHint(
PxU32 dynamicTreeRebuildRateHint) = 0;
1225 virtual PxU32 getDynamicTreeRebuildRateHint()
const = 0;
1235 virtual void forceDynamicTreeRebuild(
bool rebuildStaticStructure,
bool rebuildDynamicStructure) = 0;
1272 virtual void sceneQueriesUpdate(
physx::PxBaseTask* completionTask = NULL,
bool controlSimulation =
true) = 0;
1285 virtual bool checkQueries(
bool block =
false) = 0;
1296 virtual bool fetchQueries(
bool block =
false) = 0;
1320 virtual bool raycast(
1389 virtual PxU32 getSceneQueryStaticTimestamp()
const = 0;
1417 virtual PxU32 getNbBroadPhaseRegions()
const = 0;
1460 virtual bool removeBroadPhaseRegion(
PxU32 handle) = 0;
1475 virtual PxTaskManager* getTaskManager()
const = 0;
1496 virtual void lockRead(
const char* file=NULL,
PxU32 line=0) = 0;
1503 virtual void unlockRead() = 0;
1530 virtual void lockWrite(
const char* file=NULL,
PxU32 line=0) = 0;
1537 virtual void unlockWrite() = 0;
1553 virtual void setNbContactDataBlocks(
PxU32 numBlocks) = 0;
1565 virtual PxU32 getNbContactDataBlocksUsed()
const = 0;
1576 virtual PxU32 getMaxNbContactDataBlocksUsed()
const = 0;
1584 virtual PxU32 getContactReportStreamBufferSize()
const = 0;
1594 virtual void setSolverBatchSize(
PxU32 solverBatchSize) = 0;
1603 virtual PxU32 getSolverBatchSize()
const = 0;
1615 virtual PxReal getWakeCounterResetValue()
const = 0;
1633 virtual void shiftOrigin(
const PxVec3& shift) = 0;
Definition: GuContactBuffer.h:37
PxU8 dominance1
Definition: PxScene.h:88
Base class of all task types.
Definition: PxTask.h:45
A scene is a collection of bodies and constraints which can interact.
Definition: PxScene.h:169
PxRigidActor * actor
Actor to which the shape belongs.
Definition: PxScene.h:156
Scene query filtering callbacks.
Definition: PxQueryFiltering.h:169
Special client for PxScene. It provides access to the PxPvdSceneFlag. It also provides simple user de...
Definition: PxPvdSceneClient.h:82
Class used to retrieve statistics for a simulation step.
Definition: PxSimulationStatistics.h:51
PxRigidDynamic represents a dynamic rigid simulation object in the physics SDK.
Definition: PxRigidDynamic.h:83
PxU8 PxDominanceGroup
Definition: PxScene.h:69
Expresses the dominance relationship of a contact. For the time being only three settings are permitt...
Definition: PxScene.h:83
Class representing the geometry of a capsule.
Definition: PxCapsuleGeometry.h:54
PxActor is the base class for the main simulation objects in the physics SDK.
Definition: PxActor.h:154
Abstract class for collision shapes.
Definition: PxShape.h:142
Batched queries object. This is used to perform several queries at the same time. ...
Definition: PxBatchQuery.h:57
float PxReal
Definition: PxSimpleTypes.h:78
A class representing the geometry of a sphere.
Definition: PxSphereGeometry.h:49
Scene query filtering data.
Definition: PxQueryFiltering.h:132
Identifies each type of actor for retrieving actors from a scene.
Definition: PxScene.h:99
"Region of interest" for the broad-phase.
Definition: PxBroadPhase.h:141
PxFilterFlags(* PxSimulationFilterShader)(PxFilterObjectAttributes attributes0, PxFilterData filterData0, PxFilterObjectAttributes attributes1, PxFilterData filterData1, PxPairFlags &pairFlags, const void *constantBlock, PxU32 constantBlockSize)
Filter shader to specify handling of collision pairs.
Definition: PxFiltering.h:589
A geometry object.
Definition: PxGeometry.h:75
A precomputed pruning structure to accelerate scene queries against newly added actors.
Definition: PxPruningStructure.h:62
PxU8 dominance0
Definition: PxScene.h:87
PxRigidActor represents a base class shared between dynamic and static rigid bodies in the physics SD...
Definition: PxRigidActor.h:58
An interface class that the user can implement in order to receive simulation events.
Definition: PxSimulationEventCallback.h:793
Enum
Definition: PxSceneDesc.h:70
#define PX_DEPRECATED
Definition: PxPreprocessor.h:437
virtual ~PxScene()
Definition: PxScene.h:180
Descriptor class for PxBatchQuery.
Definition: PxBatchQueryDesc.h:217
single hit cache for scene queries.
Definition: PxScene.h:143
Information & stats structure for a region.
Definition: PxBroadPhase.h:150
PxShape * shape
Shape to test for intersection first.
Definition: PxScene.h:155
PxU8 geometry[sizeof(PxGeometry)]
Definition: PxGeometryHelpers.h:215
Enum
Definition: PxSceneDesc.h:127
void * userData
user can assign this to whatever, usually to create a 1:1 relationship with a user object...
Definition: PxScene.h:1641
PxDominanceGroupPair(PxU8 a, PxU8 b)
Definition: PxScene.h:85
Definition: PxQueryReport.h:81
uint8_t PxU8
Definition: PxSimpleTypes.h:75
Interface for points, lines, triangles, and text buffer.
Definition: PxRenderBuffer.h:131
A plugin class for implementing constraints.
Definition: PxConstraint.h:108
PX_INLINE PxQueryCache(PxShape *s, PxU32 findex)
constructor to set properties
Definition: PxScene.h:153
PxU32 faceIndex
Triangle index to test first - NOT CURRENTLY SUPPORTED.
Definition: PxScene.h:157
Enum
Definition: PxBroadPhase.h:68
PX_INLINE PxQueryCache()
constructor sets to default
Definition: PxScene.h:148
PxU8 PxClientID
An ID to identify different clients for multiclient support.
Definition: PxClient.h:46
Class representing 3D range or axis aligned bounding box.
Definition: PxBounds3.h:58
Enum
Definition: PxSceneDesc.h:101
Filter callback to specify handling of collision pairs.
Definition: PxFiltering.h:617
Enum
Definition: PxScene.h:101
Class used to retrieve limits(e.g. maximum number of bodies) for a scene. The limits are used as a hi...
Definition: PxSceneDesc.h:401
Collection class for serialization.
Definition: PxCollection.h:105
Material class to represent a set of surface properties.
Definition: PxMaterial.h:130
a tree structure of bodies connected by joints that is treated as a unit by the dynamics solver ...
Definition: PxArticulationBase.h:57
Enum
Definition: PxVisualizationParameter.h:64
PxU8 box[sizeof(PxBoxGeometry)]
Definition: PxGeometryHelpers.h:216
PxScene()
Definition: PxScene.h:179
Container for bitfield flag variables associated with a specific enum type.
Definition: PxFlags.h:73
Abstract singleton factory class used for instancing objects in the Physics SDK.
Definition: PxPhysics.h:71
Class to aggregate actors into a single broad-phase entry.
Definition: PxAggregate.h:70
PxFlags< PxActorTypeFlag::Enum, PxU16 > PxActorTypeFlags
Collection of set bits defined in PxActorTypeFlag.
Definition: PxScene.h:122
Caps class for broad phase.
Definition: PxBroadPhase.h:162
uint16_t PxU16
Definition: PxSimpleTypes.h:73
uint32_t PxU32
Definition: Px.h:48
PxRigidStatic represents a static rigid body simulation object in the physics SDK.
Definition: PxRigidStatic.h:59
Broad-phase callback to receive broad-phase related events.
Definition: PxBroadPhase.h:96
Class representing the bounding volume hierarchy structure.
Definition: PxBVHStructure.h:57
#define PX_INLINE
Definition: PxPreprocessor.h:349
Enum
Definition: PxSceneDesc.h:162
Class representing the geometry of a box.
Definition: PxBoxGeometry.h:50
3 Element vector class.
Definition: PxVec3.h:49