PxVehicleShaders.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-2012 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 #ifndef PX_VEHICLE_SHADERS_H 00031 #define PX_VEHICLE_SHADERS_H 00032 00036 #include "vehicle/PxVehicleSDK.h" 00037 00038 #ifndef PX_DOXYGEN 00039 namespace physx 00040 { 00041 #endif 00042 00065 typedef void (*PxVehicleComputeTireForce) 00066 (const void* shaderData, 00067 const PxF32 tireFriction, 00068 const PxF32 longSlip, const PxF32 latSlip, const PxF32 camber, 00069 const PxF32 wheelOmega, const PxF32 wheelRadius, const PxF32 recipWheelRadius, 00070 const PxF32 restTireLoad, const PxF32 normalisedTireLoad, const PxF32 tireLoad, 00071 const PxF32 gravity, const PxF32 recipGravity, 00072 PxF32& wheelTorque, PxF32& tireLongForceMag, PxF32& tireLatForceMag, PxF32& tireAlignMoment); 00073 00078 void PxVehicleComputeTireForceDefault 00079 (const void* shaderData, 00080 const PxF32 tireFriction, 00081 const PxF32 longSlip, const PxF32 latSlip, const PxF32 camber, 00082 const PxF32 wheelOmega, const PxF32 wheelRadius, const PxF32 recipWheelRadius, 00083 const PxF32 restTireLoad, const PxF32 normalisedTireLoad, const PxF32 tireLoad, 00084 const PxF32 gravity, const PxF32 recipGravity, 00085 PxF32& wheelTorque, PxF32& tireLongForceMag, PxF32& tireLatForceMag, PxF32& tireAlignMoment); 00086 00090 class PxVehicleTireForceCalculator 00091 { 00092 public: 00093 00094 PxVehicleTireForceCalculator() 00095 : mShader(PxVehicleComputeTireForceDefault) 00096 { 00097 } 00098 00104 const void** mShaderData; 00105 00111 PxVehicleComputeTireForce mShader; 00112 00113 #ifndef PX_X64 00114 PxU32 mPad[2]; 00115 #endif 00116 }; 00117 00118 PX_COMPILE_TIME_ASSERT(0==(sizeof(PxVehicleTireForceCalculator) & 15)); 00119 00120 #ifndef PX_DOXYGEN 00121 } // namespace physx 00122 #endif 00123 00125 #endif //PX_VEHICLE_SHADERS_H
Copyright © 2008-2012 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com