PhysX SDK 3.2 API Reference: PxVehicleShaders.h Source File

PhysX SDK 3.2 API

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