From 3dfe2108cfab31ba3ee5527e217d0d8e99a51162 Mon Sep 17 00:00:00 2001 From: git perforce import user Date: Tue, 25 Oct 2016 12:29:14 -0600 Subject: Initial commit: PhysX 3.4.0 Update @ 21294896 APEX 1.4.0 Update @ 21275617 [CL 21300167] --- .../PhysXAPI/files/PxJointLimit_8h-source.html | 280 +++++++++++++++++++++ 1 file changed, 280 insertions(+) create mode 100644 PhysX_3.4/Documentation/PhysXAPI/files/PxJointLimit_8h-source.html (limited to 'PhysX_3.4/Documentation/PhysXAPI/files/PxJointLimit_8h-source.html') diff --git a/PhysX_3.4/Documentation/PhysXAPI/files/PxJointLimit_8h-source.html b/PhysX_3.4/Documentation/PhysXAPI/files/PxJointLimit_8h-source.html new file mode 100644 index 00000000..2ed397ab --- /dev/null +++ b/PhysX_3.4/Documentation/PhysXAPI/files/PxJointLimit_8h-source.html @@ -0,0 +1,280 @@ + + + NVIDIA(R) PhysX(R) SDK 3.4 API Reference: PxJointLimit.h Source File + + + + + + + +

PxJointLimit.h

Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you
+00002 // under a form of NVIDIA software license agreement provided separately to you.
+00003 //
+00004 // Notice
+00005 // NVIDIA Corporation and its licensors retain all intellectual property and
+00006 // proprietary rights in and to this software and related documentation and
+00007 // any modifications thereto. Any use, reproduction, disclosure, or
+00008 // distribution of this software and related documentation without an express
+00009 // license agreement from NVIDIA Corporation is strictly prohibited.
+00010 //
+00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+00015 //
+00016 // Information and code furnished is believed to be accurate and reliable.
+00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+00018 // information or for any infringement of patents or other rights of third parties that may
+00019 // result from its use. No license is granted by implication or otherwise under any patent
+00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+00021 // This code supersedes and replaces all information previously supplied.
+00022 // NVIDIA Corporation products are not authorized for use as critical
+00023 // components in life support devices or systems without express written approval of
+00024 // NVIDIA Corporation.
+00025 //
+00026 // Copyright (c) 2008-2016 NVIDIA Corporation. All rights reserved.
+00027 // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
+00028 // Copyright (c) 2001-2004 NovodeX AG. All rights reserved.  
+00029 
+00030 
+00031 #ifndef PX_EXTENSIONS_JOINT_LIMIT
+00032 #define PX_EXTENSIONS_JOINT_LIMIT
+00033 
+00037 #include "foundation/PxMath.h"
+00038 #include "PxPhysXConfig.h"
+00039 #include "common/PxTolerancesScale.h"
+00040 #include "PxJoint.h"
+00041 
+00042 #if !PX_DOXYGEN
+00043 namespace physx
+00044 {
+00045 #endif
+00046 
+00055 class PxJointLimitParameters
+00056 {
+00057 //= ATTENTION! =====================================================================================
+00058 // Changing the data layout of this class breaks the binary serialization format.  See comments for 
+00059 // PX_BINARY_SERIAL_VERSION.  If a modification is required, please adjust the getBinaryMetaData 
+00060 // function.  If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
+00061 // accordingly.
+00062 //==================================================================================================
+00063 public:
+00083     PxReal restitution;
+00084 
+00085 
+00090     PxReal bounceThreshold;
+00097     PxReal stiffness;
+00098 
+00105     PxReal damping;
+00106 
+00123     PxReal contactDistance;
+00124 
+00125 
+00126 
+00127     PxJointLimitParameters()
+00128     : restitution(0)
+00129     , bounceThreshold(0)
+00130     , stiffness(0)
+00131     , damping(0)
+00132     , contactDistance(0)
+00133     {
+00134     }   
+00135 
+00141     PX_INLINE bool isValid() const
+00142     {
+00143         return  PxIsFinite(restitution) && restitution >= 0 && restitution <= 1 && 
+00144                 PxIsFinite(stiffness) && stiffness >= 0 && 
+00145                 PxIsFinite(damping) && damping >= 0 &&
+00146                 PxIsFinite(bounceThreshold) && bounceThreshold >= 0 &&
+00147                 PxIsFinite(contactDistance) && contactDistance >= 0;
+00148     }
+00149 
+00150     PX_INLINE bool isSoft() const
+00151     {
+00152         return damping>0 || stiffness>0;
+00153     }
+00154 
+00155 protected:
+00156     ~PxJointLimitParameters() {}
+00157 };
+00158 
+00159 
+00163 class PxJointLinearLimit : public PxJointLimitParameters
+00164 {
+00165 //= ATTENTION! =====================================================================================
+00166 // Changing the data layout of this class breaks the binary serialization format.  See comments for 
+00167 // PX_BINARY_SERIAL_VERSION.  If a modification is required, please adjust the getBinaryMetaData 
+00168 // function.  If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
+00169 // accordingly.
+00170 //==================================================================================================
+00171 public:
+00178     PxReal value;
+00179 
+00190     PxJointLinearLimit(const PxTolerancesScale& scale, PxReal extent, PxReal contactDist = -1)
+00191     : value(extent)
+00192     {
+00193         PxJointLimitParameters::contactDistance = contactDist == -1 ? 0.01f*scale.length : contactDist; 
+00194     }
+00195 
+00196 
+00206     PxJointLinearLimit(PxReal extent, const PxSpring& spring)
+00207     : value(extent)
+00208     {
+00209         stiffness = spring.stiffness;
+00210         damping = spring.damping;
+00211     }
+00212 
+00213 
+00214 
+00220     PX_INLINE bool isValid() const
+00221     {
+00222         return PxJointLimitParameters::isValid() &&
+00223                PxIsFinite(value) && 
+00224                value > 0;
+00225     }
+00226 };
+00227 
+00228 
+00233 class PxJointLinearLimitPair : public PxJointLimitParameters
+00234 {
+00235 //= ATTENTION! =====================================================================================
+00236 // Changing the data layout of this class breaks the binary serialization format.  See comments for 
+00237 // PX_BINARY_SERIAL_VERSION.  If a modification is required, please adjust the getBinaryMetaData 
+00238 // function.  If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
+00239 // accordingly.
+00240 //==================================================================================================
+00241 public:
+00250     PxReal upper, lower;
+00251 
+00252 
+00264     PxJointLinearLimitPair(const PxTolerancesScale& scale, PxReal lowerLimit, PxReal upperLimit, PxReal contactDist = -1)
+00265     : upper(upperLimit)
+00266     , lower(lowerLimit)
+00267     {
+00268         PxJointLimitParameters::contactDistance = contactDist == -1 ? PxMin(scale.length * 0.01f, (upperLimit*0.49f-lowerLimit*0.49f)) : contactDist; 
+00269         bounceThreshold = 2*scale.length;
+00270     }
+00271 
+00272 
+00283     PxJointLinearLimitPair(PxReal lowerLimit, PxReal upperLimit, const PxSpring& spring)
+00284     : upper(upperLimit)
+00285     , lower(lowerLimit)
+00286     {
+00287         stiffness = spring.stiffness;
+00288         damping = spring.damping;
+00289     }
+00290 
+00291 
+00297     PX_INLINE bool isValid() const
+00298     {
+00299         return PxJointLimitParameters::isValid() &&
+00300                PxIsFinite(upper) && PxIsFinite(lower) && upper >= lower &&
+00301                PxIsFinite(upper - lower) && 
+00302                PxIsFinite(contactDistance) && contactDistance <= upper - lower;
+00303     }
+00304 };
+00305 
+00306 
+00307 class PxJointAngularLimitPair : public PxJointLimitParameters
+00308 {
+00309 //= ATTENTION! =====================================================================================
+00310 // Changing the data layout of this class breaks the binary serialization format.  See comments for 
+00311 // PX_BINARY_SERIAL_VERSION.  If a modification is required, please adjust the getBinaryMetaData 
+00312 // function.  If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
+00313 // accordingly.
+00314 //==================================================================================================
+00315 public:
+00323     PxReal upper, lower;
+00324 
+00325 
+00338     PxJointAngularLimitPair(PxReal lowerLimit, PxReal upperLimit, PxReal contactDist = -1)
+00339     : upper(upperLimit)
+00340     , lower(lowerLimit)
+00341     {
+00342         PxJointLimitParameters::contactDistance = contactDist ==-1 ? PxMin(0.1f, 0.49f*(upperLimit-lowerLimit)) : contactDist;
+00343         bounceThreshold = 0.5f;
+00344     }
+00345 
+00346 
+00359     PxJointAngularLimitPair(PxReal lowerLimit, PxReal upperLimit, const PxSpring& spring)
+00360     : upper(upperLimit)
+00361     , lower(lowerLimit)
+00362     {
+00363         stiffness = spring.stiffness;
+00364         damping = spring.damping;
+00365     }
+00366 
+00367 
+00373     PX_INLINE bool isValid() const
+00374     {
+00375         return PxJointLimitParameters::isValid() &&
+00376                PxIsFinite(upper) && PxIsFinite(lower) && upper >= lower &&
+00377                PxIsFinite(contactDistance) && contactDistance <= upper - lower;
+00378     }
+00379 };
+00380 
+00381 
+00382 
+00390 class PxJointLimitCone : public PxJointLimitParameters
+00391 {
+00392 //= ATTENTION! =====================================================================================
+00393 // Changing the data layout of this class breaks the binary serialization format.  See comments for 
+00394 // PX_BINARY_SERIAL_VERSION.  If a modification is required, please adjust the getBinaryMetaData 
+00395 // function.  If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
+00396 // accordingly.
+00397 //==================================================================================================
+00398 public:
+00406     PxReal yAngle;
+00407 
+00408 
+00416     PxReal zAngle;
+00417 
+00428     PxJointLimitCone(PxReal yLimitAngle, PxReal zLimitAngle, PxReal contactDist = -1):
+00429       yAngle(yLimitAngle),
+00430       zAngle(zLimitAngle)
+00431       {
+00432             PxJointLimitParameters::contactDistance = contactDist == -1 ? PxMin(0.1f, PxMin(yLimitAngle, zLimitAngle)*0.49f) : contactDist;
+00433             bounceThreshold = 0.5f;
+00434       }
+00435 
+00436 
+00437     
+00448       PxJointLimitCone(PxReal yLimitAngle, PxReal zLimitAngle, const PxSpring& spring):
+00449       yAngle(yLimitAngle),
+00450       zAngle(zLimitAngle)
+00451       {
+00452           stiffness = spring.stiffness;
+00453           damping = spring.damping;
+00454       }
+00455 
+00456 
+00462     PX_INLINE bool isValid() const
+00463     {
+00464         return PxJointLimitParameters::isValid() &&
+00465                PxIsFinite(yAngle) && yAngle>0 && yAngle<PxPi && 
+00466                PxIsFinite(zAngle) && zAngle>0 && zAngle<PxPi;
+00467     }
+00468 };
+00469 
+00470 #if !PX_DOXYGEN
+00471 } // namespace physx
+00472 #endif
+00473 
+00475 #endif
+
+ +

+Copyright © 2008-2016 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com + + -- cgit v1.2.3