aboutsummaryrefslogtreecommitdiff
path: root/PhysX_3.4/Source/PhysXCharacterKinematic/src/CctCapsuleController.h
diff options
context:
space:
mode:
authorgit perforce import user <a@b>2016-10-25 12:29:14 -0600
committerSheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees>2016-10-25 18:56:37 -0500
commit3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch)
treefa6485c169e50d7415a651bf838f5bcd0fd3bfbd /PhysX_3.4/Source/PhysXCharacterKinematic/src/CctCapsuleController.h
downloadphysx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.tar.xz
physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.zip
Initial commit:
PhysX 3.4.0 Update @ 21294896 APEX 1.4.0 Update @ 21275617 [CL 21300167]
Diffstat (limited to 'PhysX_3.4/Source/PhysXCharacterKinematic/src/CctCapsuleController.h')
-rw-r--r--PhysX_3.4/Source/PhysXCharacterKinematic/src/CctCapsuleController.h111
1 files changed, 111 insertions, 0 deletions
diff --git a/PhysX_3.4/Source/PhysXCharacterKinematic/src/CctCapsuleController.h b/PhysX_3.4/Source/PhysXCharacterKinematic/src/CctCapsuleController.h
new file mode 100644
index 00000000..784db5a1
--- /dev/null
+++ b/PhysX_3.4/Source/PhysXCharacterKinematic/src/CctCapsuleController.h
@@ -0,0 +1,111 @@
+// This code contains NVIDIA Confidential Information and is disclosed to you
+// under a form of NVIDIA software license agreement provided separately to you.
+//
+// Notice
+// NVIDIA Corporation and its licensors retain all intellectual property and
+// proprietary rights in and to this software and related documentation and
+// any modifications thereto. Any use, reproduction, disclosure, or
+// distribution of this software and related documentation without an express
+// license agreement from NVIDIA Corporation is strictly prohibited.
+//
+// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+//
+// Information and code furnished is believed to be accurate and reliable.
+// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+// information or for any infringement of patents or other rights of third parties that may
+// result from its use. No license is granted by implication or otherwise under any patent
+// or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+// This code supersedes and replaces all information previously supplied.
+// NVIDIA Corporation products are not authorized for use as critical
+// components in life support devices or systems without express written approval of
+// NVIDIA Corporation.
+//
+// Copyright (c) 2008-2016 NVIDIA Corporation. All rights reserved.
+// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
+// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
+
+#ifndef CCT_CAPSULE_CONTROLLER
+#define CCT_CAPSULE_CONTROLLER
+
+/* Exclude from documentation */
+/** \cond */
+
+#include "CctController.h"
+#include "PxCapsuleController.h"
+
+namespace physx
+{
+
+class PxPhysics;
+
+namespace Cct
+{
+
+ class CapsuleController : public PxCapsuleController, public Controller
+ {
+ public:
+ CapsuleController(const PxControllerDesc& desc, PxPhysics& sdk, PxScene* scene);
+ virtual ~CapsuleController();
+
+ // Controller
+ virtual PxF32 getHalfHeightInternal() const { return mRadius+mHeight*0.5f; }
+ virtual bool getWorldBox(PxExtendedBounds3& box) const;
+ virtual PxController* getPxController() { return this; }
+ //~Controller
+
+ // PxController
+ virtual PxControllerShapeType::Enum getType() const { return mType; }
+ virtual void release() { releaseInternal(); }
+ virtual PxControllerCollisionFlags move(const PxVec3& disp, PxF32 minDist, PxF32 elapsedTime, const PxControllerFilters& filters, const PxObstacleContext* obstacles);
+ virtual bool setPosition(const PxExtendedVec3& position) { return setPos(position); }
+ virtual const PxExtendedVec3& getPosition() const { return mPosition; }
+ virtual bool setFootPosition(const PxExtendedVec3& position);
+ virtual PxExtendedVec3 getFootPosition() const;
+ virtual PxRigidDynamic* getActor() const { return mKineActor; }
+ virtual void setStepOffset(const float offset) { if(offset>0.0f)
+ mUserParams.mStepOffset = offset; }
+ virtual PxF32 getStepOffset() const { return mUserParams.mStepOffset; }
+ virtual void setNonWalkableMode(PxControllerNonWalkableMode::Enum flag) { mUserParams.mNonWalkableMode = flag; }
+ virtual PxControllerNonWalkableMode::Enum getNonWalkableMode() const { return mUserParams.mNonWalkableMode; }
+ virtual PxF32 getContactOffset() const { return mUserParams.mContactOffset; }
+ virtual void setContactOffset(PxF32 offset) { if(offset>0.0f)
+ mUserParams.mContactOffset = offset;}
+ virtual PxVec3 getUpDirection() const { return mUserParams.mUpDirection; }
+ virtual void setUpDirection(const PxVec3& up) { setUpDirectionInternal(up); }
+ virtual PxF32 getSlopeLimit() const { return mUserParams.mSlopeLimit; }
+ virtual void setSlopeLimit(PxF32 slopeLimit) { if(slopeLimit>0.0f)
+ mUserParams.mSlopeLimit = slopeLimit;}
+ virtual void invalidateCache();
+ virtual PxScene* getScene() { return mScene; }
+ virtual void* getUserData() const { return mUserData; }
+ virtual void setUserData(void* userData) { mUserData = userData; }
+ virtual void getState(PxControllerState& state) const { return getInternalState(state); }
+ virtual void getStats(PxControllerStats& stats) const { return getInternalStats(stats); }
+ virtual void resize(PxReal height);
+ //~PxController
+
+ // PxCapsuleController
+ virtual PxF32 getRadius() const { return mRadius; }
+ virtual PxF32 getHeight() const { return mHeight; }
+ virtual PxCapsuleClimbingMode::Enum getClimbingMode() const;
+ virtual bool setRadius(PxF32 radius);
+ virtual bool setHeight(PxF32 height);
+ virtual bool setClimbingMode(PxCapsuleClimbingMode::Enum);
+ //~ PxCapsuleController
+
+ void getCapsule(PxExtendedCapsule& capsule) const;
+
+ PxF32 mRadius;
+ PxF32 mHeight;
+ PxCapsuleClimbingMode::Enum mClimbingMode;
+ };
+
+} // namespace Cct
+
+}
+
+/** \endcond */
+#endif