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/PxMeshScale_8h-source.html | 155 +++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 PhysX_3.4/Documentation/PhysXAPI/files/PxMeshScale_8h-source.html (limited to 'PhysX_3.4/Documentation/PhysXAPI/files/PxMeshScale_8h-source.html') diff --git a/PhysX_3.4/Documentation/PhysXAPI/files/PxMeshScale_8h-source.html b/PhysX_3.4/Documentation/PhysXAPI/files/PxMeshScale_8h-source.html new file mode 100644 index 00000000..fbc1a594 --- /dev/null +++ b/PhysX_3.4/Documentation/PhysXAPI/files/PxMeshScale_8h-source.html @@ -0,0 +1,155 @@ + + + NVIDIA(R) PhysX(R) SDK 3.4 API Reference: PxMeshScale.h Source File + + + + + + + +

PxMeshScale.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_PHYSICS_NX_MESHSCALE
+00032 #define PX_PHYSICS_NX_MESHSCALE
+00033 
+00037 #include "common/PxPhysXCommonConfig.h"
+00038 #include "foundation/PxMat33.h"
+00039 #include "foundation/PxAssert.h"
+00040 
+00043 #define PX_MESH_SCALE_MIN 1e-6f
+00044 
+00047 #define PX_MESH_SCALE_MAX 1e6f
+00048 
+00049 #if !PX_DOXYGEN
+00050 namespace physx
+00051 {
+00052 #endif
+00053 
+00068 class PxMeshScale
+00069 {
+00070 //= ATTENTION! =====================================================================================
+00071 // Changing the data layout of this class breaks the binary serialization format.  See comments for 
+00072 // PX_BINARY_SERIAL_VERSION.  If a modification is required, please adjust the getBinaryMetaData 
+00073 // function.  If the modification is made on a custom branch, please change PX_BINARY_SERIAL_VERSION
+00074 // accordingly.
+00075 //==================================================================================================
+00076 public:
+00080     PX_CUDA_CALLABLE PX_FORCE_INLINE PxMeshScale(): scale(1.0f), rotation(PxIdentity) 
+00081     {
+00082     }
+00083 
+00087     explicit PX_CUDA_CALLABLE PX_FORCE_INLINE PxMeshScale(PxReal r): scale(r), rotation(PxIdentity) 
+00088     {
+00089     }
+00090 
+00094     PX_CUDA_CALLABLE PX_FORCE_INLINE PxMeshScale(const PxVec3& s)
+00095     {
+00096         scale = s;
+00097         rotation = PxQuat(PxIdentity);
+00098     }
+00099 
+00103     PX_CUDA_CALLABLE PX_FORCE_INLINE PxMeshScale(const PxVec3& s, const PxQuat& r)
+00104     {
+00105         PX_ASSERT(r.isUnit());
+00106         scale = s;
+00107         rotation = r;
+00108     }
+00109 
+00110 
+00114     PX_CUDA_CALLABLE PX_FORCE_INLINE bool isIdentity()  const
+00115     {
+00116         return (scale.x == 1.0f && scale.y == 1.0f && scale.z == 1.0f);
+00117     }
+00118 
+00122     PX_CUDA_CALLABLE PX_FORCE_INLINE  PxMeshScale getInverse() const 
+00123     {
+00124         return PxMeshScale(PxVec3(1.0f/scale.x, 1.0f/scale.y, 1.0f/scale.z), rotation);
+00125     }
+00126 
+00130     PX_CUDA_CALLABLE PX_FORCE_INLINE PxMat33 toMat33() const 
+00131     {
+00132         PxMat33 rot(rotation);
+00133         PxMat33 trans = rot.getTranspose();
+00134         trans.column0 *= scale[0];
+00135         trans.column1 *= scale[1];
+00136         trans.column2 *= scale[2];
+00137         return trans * rot;
+00138     }
+00139 
+00143     PX_CUDA_CALLABLE PX_FORCE_INLINE bool hasNegativeDeterminant() const
+00144     {
+00145         return (scale.x * scale.y * scale.z < 0.0f);
+00146     }
+00147 
+00148     PxVec3      transform(const PxVec3& v) const
+00149     {
+00150         return rotation.rotateInv(scale.multiply(rotation.rotate(v)));
+00151     }
+00152 
+00153     bool        isValidForTriangleMesh() const
+00154     {
+00155         PxVec3 absXYZ = scale.abs();
+00156         return (absXYZ.maxElement() <= PX_MESH_SCALE_MAX) && (absXYZ.minElement() >= PX_MESH_SCALE_MIN);
+00157     }
+00158 
+00159     bool        isValidForConvexMesh() const
+00160     {
+00161         return (scale.maxElement() <= PX_MESH_SCALE_MAX) && (scale.minElement() >= PX_MESH_SCALE_MIN);
+00162     }
+00163 
+00164     PxVec3      scale;      
+00165     PxQuat      rotation;   
+00166 
+00167 
+00168 };
+00169 
+00170 #if !PX_DOXYGEN
+00171 } // namespace physx
+00172 #endif
+00173 
+00175 #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