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]
---
.../files/PxVehicleUtilTelemetry_8h-source.html | 313 +++++++++++++++++++++
1 file changed, 313 insertions(+)
create mode 100644 PhysX_3.4/Documentation/PhysXAPI/files/PxVehicleUtilTelemetry_8h-source.html
(limited to 'PhysX_3.4/Documentation/PhysXAPI/files/PxVehicleUtilTelemetry_8h-source.html')
diff --git a/PhysX_3.4/Documentation/PhysXAPI/files/PxVehicleUtilTelemetry_8h-source.html b/PhysX_3.4/Documentation/PhysXAPI/files/PxVehicleUtilTelemetry_8h-source.html
new file mode 100644
index 00000000..77405932
--- /dev/null
+++ b/PhysX_3.4/Documentation/PhysXAPI/files/PxVehicleUtilTelemetry_8h-source.html
@@ -0,0 +1,313 @@
+
+
+ PxVehicleUtilTelemetry.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 #ifndef PX_VEHICLE_UTILSTELEMETRY_H +00031 #define PX_VEHICLE_UTILSTELEMETRY_H +00032 +00036 #include "vehicle/PxVehicleSDK.h" +00037 #include "foundation/PxSimpleTypes.h" +00038 #include "foundation/PxVec3.h" +00039 +00040 #if !PX_DOXYGEN +00041 namespace physx +00042 { +00043 #endif +00044 +00045 #if PX_DEBUG_VEHICLE_ON +00046 +00047 class PxVehicleGraphDesc +00048 { +00049 +00050 friend class PxVehicleGraph; +00051 +00052 PxVehicleGraphDesc(); +00053 +00058 PxReal mPosX; +00059 +00064 PxReal mPosY; +00065 +00070 PxReal mSizeX; +00071 +00076 PxReal mSizeY; +00077 +00081 PxVec3 mBackgroundColor; +00082 +00086 PxReal mAlpha; +00087 +00088 private: +00089 +00090 bool isValid() const; +00091 }; +00092 +00093 struct PxVehicleGraphChannelDesc +00094 { +00095 public: +00096 +00097 friend class PxVehicleGraph; +00098 +00099 PxVehicleGraphChannelDesc(); +00100 +00104 PxReal mMinY; +00105 +00109 PxReal mMaxY; +00110 +00115 PxReal mMidY; +00116 +00120 PxVec3 mColorLow; +00121 +00125 PxVec3 mColorHigh; +00126 +00130 char* mTitle; +00131 +00132 private: +00133 +00134 bool isValid() const; +00135 }; +00136 +00137 struct PxVehicleWheelGraphChannel +00138 { +00139 enum Enum +00140 { +00141 eJOUNCE=0, +00142 eSUSPFORCE, +00143 eTIRELOAD, +00144 eNORMALIZED_TIRELOAD, +00145 eWHEEL_OMEGA, +00146 eTIRE_FRICTION, +00147 eTIRE_LONG_SLIP, +00148 eNORM_TIRE_LONG_FORCE, +00149 eTIRE_LAT_SLIP, +00150 eNORM_TIRE_LAT_FORCE, +00151 eNORM_TIRE_ALIGNING_MOMENT, +00152 eMAX_NB_WHEEL_CHANNELS +00153 }; +00154 }; +00155 +00156 struct PxVehicleDriveGraphChannel +00157 { +00158 enum Enum +00159 { +00160 eENGINE_REVS=0, +00161 eENGINE_DRIVE_TORQUE, +00162 eCLUTCH_SLIP, +00163 eACCEL_CONTROL, //TANK_ACCEL +00164 eBRAKE_CONTROL, //TANK_BRAKE_LEFT +00165 eHANDBRAKE_CONTROL, //TANK_BRAKE_RIGHT +00166 eSTEER_LEFT_CONTROL, //TANK_THRUST_LEFT +00167 eSTEER_RIGHT_CONTROL, //TANK_THRUST_RIGHT +00168 eGEAR_RATIO, +00169 eMAX_NB_DRIVE_CHANNELS +00170 }; +00171 }; +00172 +00173 struct PxVehicleGraphType +00174 { +00175 enum Enum +00176 { +00177 eWHEEL=0, +00178 eDRIVE +00179 }; +00180 }; +00181 +00182 +00183 class PxVehicleGraph +00184 { +00185 public: +00186 +00187 friend class PxVehicleTelemetryData; +00188 friend class PxVehicleUpdate; +00189 +00190 enum +00191 { +00192 eMAX_NB_SAMPLES=256 +00193 }; +00194 +00195 enum +00196 { +00197 eMAX_NB_TITLE_CHARS=256 +00198 }; +00199 +00200 enum +00201 { +00202 eMAX_NB_CHANNELS=12 +00203 }; +00204 +00208 void setup(const PxVehicleGraphDesc& desc, const PxVehicleGraphType::Enum graphType); +00209 +00213 void clearRecordedChannelData(); +00214 +00218 const PxVec3& getBackgroundColor() const {return mBackgroundColor;} +00219 +00223 PxReal getBackgroundAlpha() const {return mBackgroundAlpha;} +00224 +00233 void getBackgroundCoords(PxReal& xMin, PxReal& yMin, PxReal& xMax, PxReal& yMax) const {xMin = mBackgroundMinX;xMax = mBackgroundMaxX;yMin = mBackgroundMinY;yMax = mBackgroundMaxY;} +00234 +00242 void computeGraphChannel(const PxU32 channel, PxReal* xy, PxVec3* colors, char* title) const; +00243 +00247 PxF32 getLatestValue(const PxU32 channel) const ; +00248 +00249 private: +00250 +00251 //Min and max of each sample. +00252 PxReal mChannelMinY[eMAX_NB_CHANNELS]; +00253 PxReal mChannelMaxY[eMAX_NB_CHANNELS]; +00254 //Discriminate between high and low values with different colors. +00255 PxReal mChannelMidY[eMAX_NB_CHANNELS]; +00256 //Different colors for values than midY and less than midY. +00257 PxVec3 mChannelColorLow[eMAX_NB_CHANNELS]; +00258 PxVec3 mChannelColorHigh[eMAX_NB_CHANNELS]; +00259 //Title of graph +00260 char mChannelTitle[eMAX_NB_CHANNELS][eMAX_NB_TITLE_CHARS]; +00261 //Graph data. +00262 PxReal mChannelSamples[eMAX_NB_CHANNELS][eMAX_NB_SAMPLES]; +00263 +00264 //Background color,alpha,coords +00265 PxVec3 mBackgroundColor; +00266 PxReal mBackgroundAlpha; +00267 PxReal mBackgroundMinX; +00268 PxReal mBackgroundMaxX; +00269 PxReal mBackgroundMinY; +00270 PxReal mBackgroundMaxY; +00271 +00272 PxU32 mSampleTide; +00273 +00274 PxU32 mNbChannels; +00275 +00276 PxU32 mPad[2]; +00277 +00278 +00279 void setup +00280 (const PxF32 graphSizeX, const PxF32 graphSizeY, +00281 const PxF32 engineGraphPosX, const PxF32 engineGraphPosY, +00282 const PxF32* const wheelGraphPosX, const PxF32* const wheelGraphPosY, +00283 const PxVec3& backgroundColor, const PxVec3& lineColorHigh, const PxVec3& lineColorLow); +00284 +00285 void updateTimeSlice(const PxReal* const samples); +00286 +00287 void setChannel(PxVehicleGraphChannelDesc& desc, const PxU32 channel); +00288 +00289 void setupEngineGraph +00290 (const PxF32 sizeX, const PxF32 sizeY, const PxF32 posX, const PxF32 posY, +00291 const PxVec3& backgoundColor, const PxVec3& lineColorHigh, const PxVec3& lineColorLow); +00292 +00293 void setupWheelGraph +00294 (const PxF32 sizeX, const PxF32 sizeY, const PxF32 posX, const PxF32 posY, +00295 const PxVec3& backgoundColor, const PxVec3& lineColorHigh, const PxVec3& lineColorLow); +00296 +00297 PxVehicleGraph(); +00298 ~PxVehicleGraph(); +00299 }; +00300 PX_COMPILE_TIME_ASSERT(PxU32(PxVehicleGraph::eMAX_NB_CHANNELS) >= PxU32(PxVehicleWheelGraphChannel::eMAX_NB_WHEEL_CHANNELS) && PxU32(PxVehicleGraph::eMAX_NB_CHANNELS) >= PxU32(PxVehicleDriveGraphChannel::eMAX_NB_DRIVE_CHANNELS)); +00301 PX_COMPILE_TIME_ASSERT(0==(sizeof(PxVehicleGraph) & 15)); +00302 +00303 class PxVehicleTelemetryData +00304 { +00305 public: +00306 +00307 friend class PxVehicleUpdate; +00308 +00313 static PxVehicleTelemetryData* allocate(const PxU32 nbWheels); +00314 +00319 void free(); +00320 +00324 void setup +00325 (const PxReal graphSizeX, const PxReal graphSizeY, +00326 const PxReal engineGraphPosX, const PxReal engineGraphPosY, +00327 const PxReal* const wheelGraphPosX, const PxReal* const wheelGraphPosY, +00328 const PxVec3& backGroundColor, const PxVec3& lineColorHigh, const PxVec3& lineColorLow); +00329 +00333 void clear(); +00334 +00338 const PxVehicleGraph& getEngineGraph() const {return *mEngineGraph;} +00339 +00343 PxU32 getNbWheelGraphs() const {return mNbActiveWheels;} +00344 +00348 const PxVehicleGraph& getWheelGraph(const PxU32 k) const {return mWheelGraphs[k];} +00349 +00353 const PxVec3* getTireforceAppPoints() const {return mTireforceAppPoints;} +00354 +00358 const PxVec3* getSuspforceAppPoints() const {return mSuspforceAppPoints;} +00359 +00360 private: +00361 +00367 PxVehicleGraph* mEngineGraph; +00368 +00374 PxVehicleGraph* mWheelGraphs; +00375 +00379 PxVec3* mTireforceAppPoints; +00380 +00384 PxVec3* mSuspforceAppPoints; +00385 +00389 PxU32 mNbActiveWheels; +00390 +00391 PxU32 mPad[3]; +00392 +00393 private: +00394 +00395 PxVehicleTelemetryData(){} +00396 ~PxVehicleTelemetryData(){} +00397 }; +00398 +00399 PX_COMPILE_TIME_ASSERT(0==(sizeof(PxVehicleTelemetryData) & 15)); +00400 +00401 #endif //PX_DEBUG_VEHICLE_ON +00402 +00403 //#endif // PX_DEBUG_VEHICLE_ON +00404 +00405 #if !PX_DOXYGEN +00406 } // namespace physx +00407 #endif +00408 +00410 #endif //PX_VEHICLE_UTILSTELEMETRY_H +