31 #ifndef PX_CORE_UTILTY_TYPES_H 32 #define PX_CORE_UTILTY_TYPES_H 58 template<
typename TDataType>
61 PxU32 theStride( stride );
63 theStride =
sizeof( TDataType );
64 PxU32 offset( theStride * idx );
65 return *(
reinterpret_cast<const TDataType*
>(
reinterpret_cast< const PxU8*
>( data ) + offset ));
69 template<
typename TDataType>
89 template<PxU8 TNumBytes>
95 for (
PxU8 idx =0; idx < TNumBytes; ++idx )
120 mNbDataPairs=numDataPairs;
143 mDataPairs[2*mNbDataPairs+0]=x;
144 mDataPairs[2*mNbDataPairs+1]=y;
156 if(1==mNbDataPairs || x<getX(0))
164 for(
PxU32 i=1;i<mNbDataPairs;i++)
171 return (y0+(y1-y0)*(x-x0)/(x1-x0));
179 return getY(mNbDataPairs-1);
186 memset(mDataPairs, 0, NB_ELEMENTS*2*
sizeof(
PxReal));
192 return mDataPairs[2*i];
196 return mDataPairs[2*i+1];
Definition: GuContactBuffer.h:37
PxFixedSizeLookupTable(const PxFixedSizeLookupTable &src)
Definition: PxCoreUtilityTypes.h:123
Definition: PxCoreUtilityTypes.h:70
PxFixedSizeLookupTable(const PxEMPTY)
Definition: PxCoreUtilityTypes.h:115
PxFixedSizeLookupTable(const PxReal *dataPairs, const PxU32 numDataPairs)
Definition: PxCoreUtilityTypes.h:117
PX_INLINE const TDataType & at(PxU32 idx) const
Definition: PxCoreUtilityTypes.h:59
#define PX_FORCE_INLINE
Definition: PxPreprocessor.h:351
float PxReal
Definition: PxSimpleTypes.h:78
PX_FORCE_INLINE void * PxMemCopy(void *dest, const void *src, PxU32 count)
Copies the bytes of one memory block to another. The memory blocks must not overlap.
Definition: PxMemory.h:84
PxTypedStridedData()
Definition: PxCoreUtilityTypes.h:75
PxU32 mNbDataPairs
Definition: PxCoreUtilityTypes.h:200
PxFixedSizeLookupTable()
Definition: PxCoreUtilityTypes.h:110
Definition: PxCoreUtilityTypes.h:100
PxU32 stride
The offset in bytes between consecutive samples in the data.
Definition: PxCoreUtilityTypes.h:53
PX_FORCE_INLINE void addPair(const PxReal x, const PxReal y)
Definition: PxCoreUtilityTypes.h:140
PX_FORCE_INLINE PxReal getX(const PxU32 i) const
Definition: PxCoreUtilityTypes.h:190
uint8_t PxU8
Definition: PxSimpleTypes.h:75
PxPadding()
Definition: PxCoreUtilityTypes.h:93
PxU32 count
Definition: PxCoreUtilityTypes.h:85
const void * data
Definition: PxCoreUtilityTypes.h:54
Definition: PxCoreUtilityTypes.h:46
Definition: PxCoreUtilityTypes.h:90
PxFixedSizeLookupTable & operator=(const PxFixedSizeLookupTable &src)
Definition: PxCoreUtilityTypes.h:133
PxEMPTY
Definition: Px.h:70
PX_FORCE_INLINE PxReal getY(const PxU32 i) const
Definition: PxCoreUtilityTypes.h:194
PxReal mDataPairs[2 *NB_ELEMENTS]
Definition: PxCoreUtilityTypes.h:199
#define PX_ASSERT(exp)
Definition: PxAssert.h:59
~PxFixedSizeLookupTable()
Definition: PxCoreUtilityTypes.h:129
PxBoundedData()
Definition: PxCoreUtilityTypes.h:86
uint32_t PxU32
Definition: Px.h:48
PxStridedData()
Definition: PxCoreUtilityTypes.h:56
PX_FORCE_INLINE PxReal getYVal(const PxReal x) const
Definition: PxCoreUtilityTypes.h:148
#define PX_INLINE
Definition: PxPreprocessor.h:336
Definition: PxCoreUtilityTypes.h:83
void clear()
Definition: PxCoreUtilityTypes.h:184
const TDataType * data
Definition: PxCoreUtilityTypes.h:73
PxU32 getNbDataPairs() const
Definition: PxCoreUtilityTypes.h:182
PxU32 stride
Definition: PxCoreUtilityTypes.h:72