00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef NV_PARAMETERIZED_H
00029 #define NV_PARAMETERIZED_H
00030
00048 #include "foundation/PxVec2.h"
00049 #include "foundation/PxVec3.h"
00050 #include "foundation/PxVec4.h"
00051 #include "foundation/PxQuat.h"
00052 #include "foundation/PxBounds3.h"
00053 #include "foundation/PxMat44.h"
00054 #include <stdio.h>
00055 #include <stdarg.h>
00056 #include <new>
00057
00058 PX_PUSH_PACK_DEFAULT
00059
00061 namespace NvParameterized
00062 {
00063
00064 class Interface;
00065 class Traits;
00066
00070 enum ErrorType
00071 {
00072 ERROR_NONE = 0,
00073 ERROR_TYPE_NOT_SUPPORTED,
00074 ERROR_INDEX_OUT_OF_RANGE,
00075 ERROR_INVALID_PARAMETER_NAME,
00076 ERROR_INVALID_PARAMETER_HANDLE,
00077 ERROR_CAST_FAILED,
00078 ERROR_INVALID_ENUM_VAL,
00079 ERROR_SYNTAX_ERROR_IN_NAME,
00080 ERROR_IS_LEAF_NODE,
00081 ERROR_RESULT_BUFFER_OVERFLOW,
00082 ERROR_NAME_DOES_NOT_MATCH_DEFINITION,
00083 ERROR_NOT_AN_ARRAY,
00084 ERROR_ARRAY_SIZE_IS_FIXED,
00085 ERROR_ARRAY_RESIZING_IS_NOT_SUPPORTED,
00086 ERROR_ARRAY_IS_TOO_SMALL,
00087 ERROR_INVALID_ARRAY_DIMENSION,
00088 ERROR_INVALID_ARRAY_SIZE,
00089 ERROR_PARAMETER_HANDLE_DOES_NOT_MATCH_CLASS,
00090 ERROR_MEMORY_ALLOCATION_FAILURE,
00091 ERROR_INVALID_REFERENCE_INCLUDE_HINT,
00092 ERROR_INVALID_REFERENCE_VALUE,
00093 ERROR_PARAMETER_HANDLE_NOT_INITIALIZED,
00094 ERROR_PARAMETER_DEFINITIONS_DO_NOT_MATCH,
00095 ERROR_HANDLE_MISSING_INTERFACE_POINTER,
00096 ERROR_HANDLE_INVALID_INTERFACE_POINTER,
00097 ERROR_INVALID_CALL_ON_NAMED_REFERENCE,
00098 ERROR_NOT_IMPLEMENTED,
00099 ERROR_OBJECT_CONSTRUCTION_FAILED,
00100 ERROR_MODIFY_CONST_HANDLE
00101 };
00102
00107 enum DataType
00108 {
00109 TYPE_UNDEFINED = 0,
00110
00115 TYPE_ARRAY = 1,
00116
00117 TYPE_STRUCT = 2,
00118
00119 TYPE_BOOL = 3,
00124 TYPE_STRING = 4,
00125
00130 TYPE_ENUM = 5,
00131
00143 TYPE_REF = 6,
00144
00145 TYPE_I8 = 7,
00146 TYPE_I16 = 8,
00147 TYPE_I32 = 9,
00148 TYPE_I64 = 10,
00149
00150 TYPE_U8 = 11,
00151 TYPE_U16 = 12,
00152 TYPE_U32 = 13,
00153 TYPE_U64 = 14,
00154
00155 TYPE_F32 = 15,
00156 TYPE_F64 = 16,
00157
00158 TYPE_VEC2 = 17,
00159 TYPE_VEC3 = 18,
00160 TYPE_VEC4 = 19,
00161 TYPE_QUAT = 20,
00162 TYPE_MAT33 = 21,
00163 TYPE_BOUNDS3 = 23,
00164 TYPE_MAT44 = 24,
00165
00166 TYPE_POINTER = 25,
00167
00168 TYPE_TRANSFORM = 26,
00169
00170 TYPE_MAT34 = 27,
00171
00172 TYPE_LAST
00173 };
00174
00180 class Hint
00181 {
00182 public:
00183
00187 virtual ~Hint() {}
00191 virtual const char * name(void) const = 0;
00192
00196 virtual DataType type(void) const = 0;
00197
00202 virtual uint64_t asUInt(void) const = 0;
00203
00208 virtual double asFloat(void) const = 0;
00209
00214 virtual const char * asString(void) const = 0;
00215
00219 virtual bool setAsUInt(uint64_t v) = 0;
00220
00221 private:
00222 };
00223
00227 class Definition
00228 {
00229 public:
00230
00234 virtual ~Definition() {}
00235
00239 virtual void destroy() = 0;
00240
00244 virtual int32_t numHints(void) const = 0;
00245
00250 virtual const Hint * hint(int32_t index) const = 0;
00251
00256 virtual const Hint * hint(const char *name) const = 0;
00257
00262 virtual void setHints(const Hint **hints, int32_t n) = 0;
00263
00268 virtual void addHint(Hint *hint) = 0;
00269
00274 virtual const Definition * parent(void) const = 0;
00275
00279 virtual const Definition * root(void) const = 0;
00280
00284 virtual const char * name(void) const = 0;
00285
00291 virtual const char * longName(void) const = 0;
00292
00297 virtual const char * structName(void) const = 0;
00298
00302 virtual DataType type(void) const = 0;
00303
00307 virtual const char* typeString() const = 0;
00308
00314 virtual int32_t numRefVariants(void) const = 0;
00315
00320 virtual int32_t refVariantValIndex( const char * ref_val ) const = 0;
00321
00325 virtual const char * refVariantVal(int32_t index) const = 0;
00326
00330 virtual int32_t numEnumVals(void) const = 0;
00331
00336 virtual int32_t enumValIndex( const char * enum_val ) const = 0;
00337
00342 virtual const char * enumVal(int32_t index) const = 0;
00343
00348 virtual void setEnumVals(const char **enum_vals, int32_t n) = 0;
00349
00354 virtual void addEnumVal(const char *enum_val) = 0;
00355
00359 virtual uint32_t alignment(void) const = 0;
00360
00364 virtual uint32_t padding(void) const = 0;
00365
00369 virtual int32_t arrayDimension(void) const = 0;
00370
00375 virtual int32_t arraySize(int32_t dimension = 0) const = 0;
00376
00380 virtual bool arraySizeIsFixed(void) const = 0;
00381
00386 virtual bool setArraySize(int32_t size) = 0;
00387
00391 virtual bool isLeaf(void) const = 0;
00392
00396 virtual bool isIncludedRef(void) const = 0;
00397
00401 virtual int32_t numChildren(void) const = 0;
00402
00406 virtual const Definition *child(int32_t index) const = 0;
00407
00412 virtual const Definition *child(const char *name, int32_t &index) const = 0;
00413
00418 virtual void setChildren(Definition **children, int32_t n) = 0;
00419
00424 virtual void addChild(Definition *child) = 0;
00425
00429 virtual void setDynamicHandleIndicesMap(const uint8_t *indices, uint32_t numIndices) = 0;
00430
00434 virtual const uint8_t * getDynamicHandleIndicesMap(uint32_t &outNumIndices) const = 0;
00435
00441 virtual bool isSimpleType(bool simpleStructs = true, bool simpleStrings = true) const = 0;
00442 };
00443
00447 class Handle
00448 {
00449 public:
00450
00451 enum { MAX_DEPTH = 16 };
00452
00456 PX_INLINE Handle(::NvParameterized::Interface *iface);
00457
00461 PX_INLINE Handle(::NvParameterized::Interface &iface);
00462
00467 PX_INLINE Handle(const ::NvParameterized::Interface &iface);
00468
00472 PX_INLINE Handle(const Handle ¶m_handle);
00473
00477 PX_INLINE Handle(::NvParameterized::Interface &instance, const char *longName);
00478
00483 PX_INLINE Handle(const ::NvParameterized::Interface &instance, const char *longName);
00484
00488 PX_INLINE const Definition *parameterDefinition(void) const { return(mParameterDefinition); }
00489
00493 PX_INLINE int32_t numIndexes(void) const { return(mNumIndexes); }
00494
00498 PX_INLINE int32_t index(int32_t i) const { return(mIndexList[i]); }
00499
00503 PX_INLINE int32_t popIndex(int32_t levels = 1);
00504
00508 PX_INLINE ErrorType set(const ::NvParameterized::Interface *instance, const Definition *root, const char *child_long_name);
00509
00513 PX_INLINE ErrorType set(const ::NvParameterized::Interface *instance, const char *child_long_name);
00514
00522 PX_INLINE ErrorType getParameter(const char *longName);
00523
00530 PX_INLINE ErrorType set(int32_t child_index);
00531
00537 PX_INLINE ErrorType getChildHandle(const ::NvParameterized::Interface *instance, const char *child_long_name, Handle &outHandle);
00538
00543 PX_INLINE ErrorType getChildHandle(int32_t index, Handle &outHandle);
00544
00549 PX_INLINE bool getLongName(char *str, uint32_t max_str_len) const;
00550
00554 PX_INLINE void reset();
00555
00559 PX_INLINE bool isConst(void) const { return(mIsConst); }
00560
00564 PX_INLINE bool isValid(void) const { return(mIsValid); }
00565
00569 PX_INLINE operator bool() const { return(isValid()); }
00570
00574 PX_INLINE const void *userData(void) const { return(mUserData); }
00575
00579 PX_INLINE void *userData(void) { return(mUserData); }
00580
00584 PX_INLINE void setUserData(void *user_data) { mUserData = user_data; }
00585
00590 PX_INLINE ::NvParameterized::Interface * getInterface(void) const { return mIsConst ? 0 : mInterface; }
00591
00595 PX_INLINE const ::NvParameterized::Interface * getConstInterface(void) const { return mInterface; }
00596
00600 PX_INLINE void setInterface(::NvParameterized::Interface *iface) { mIsConst = false; mInterface = iface; }
00601
00605 PX_INLINE void setInterface(const ::NvParameterized::Interface *iface) { mIsConst = true; mInterface = (::NvParameterized::Interface *)iface; }
00606
00617 PX_INLINE ErrorType initParamRef(const char *chosenRefStr = 0, bool doDestroyOld = false);
00618
00626 PX_INLINE ErrorType valueToStr(char *buf, uint32_t bufSize, const char *&ret);
00627
00633 PX_INLINE ErrorType strToValue(const char *str, const char **endptr);
00634
00638 ErrorType resizeArray(int32_t new_size);
00639
00643 PX_INLINE ErrorType getArraySize(int32_t &size, int32_t dimension = 0) const;
00644
00648 PX_INLINE ErrorType swapArrayElements(uint32_t firstElement, uint32_t secondElement);
00649
00650
00651
00652
00656 PX_INLINE ErrorType getParamBool(bool &val) const ;
00657
00661 PX_INLINE ErrorType setParamBool(bool val) ;
00662
00666 PX_INLINE ErrorType getParamBoolArray(bool *array, int32_t n, int32_t offset = 0) const ;
00667
00671 PX_INLINE ErrorType setParamBoolArray(const bool *array, int32_t n, int32_t offset = 0) ;
00672
00676 PX_INLINE ErrorType getParamString(const char *&val) const ;
00677
00681 PX_INLINE ErrorType setParamString(const char *val) ;
00682
00686 PX_INLINE ErrorType getParamStringArray(char **array, int32_t n, int32_t offset = 0) const ;
00687
00691 PX_INLINE ErrorType setParamStringArray(const char **array, int32_t n, int32_t offset = 0) ;
00692
00696 PX_INLINE ErrorType getParamEnum(const char *&val) const ;
00697
00701 PX_INLINE ErrorType setParamEnum(const char *val) ;
00702
00706 PX_INLINE ErrorType getParamEnumArray(char **array, int32_t n, int32_t offset = 0) const ;
00707
00711 PX_INLINE ErrorType setParamEnumArray(const char **array, int32_t n, int32_t offset = 0) ;
00712
00716 PX_INLINE ErrorType getParamRef(::NvParameterized::Interface *&val) const ;
00717
00721 PX_INLINE ErrorType getParamRefArray(::NvParameterized::Interface **array, int32_t n, int32_t offset = 0) const ;
00722
00726 PX_INLINE ErrorType setParamRef(::NvParameterized::Interface * val, bool doDestroyOld = false) ;
00727
00731 PX_INLINE ErrorType setParamRefArray(::NvParameterized::Interface **array, int32_t n, int32_t offset = 0, bool doDestroyOld = false) ;
00732
00736 PX_INLINE ErrorType getParamI8(int8_t &val) const ;
00737
00741 PX_INLINE ErrorType setParamI8(int8_t val) ;
00742
00746 PX_INLINE ErrorType getParamI8Array(int8_t *array, int32_t n, int32_t offset = 0) const ;
00747
00751 PX_INLINE ErrorType setParamI8Array(const int8_t *val, int32_t n, int32_t offset = 0) ;
00752
00756 PX_INLINE ErrorType getParamI16(int16_t &val) const ;
00757
00761 PX_INLINE ErrorType setParamI16(int16_t val) ;
00762
00766 PX_INLINE ErrorType getParamI16Array(int16_t *array, int32_t n, int32_t offset = 0) const ;
00767
00771 PX_INLINE ErrorType setParamI16Array(const int16_t *val, int32_t n, int32_t offset = 0) ;
00772
00776 PX_INLINE ErrorType getParamI32(int32_t &val) const ;
00777
00781 PX_INLINE ErrorType setParamI32(int32_t val) ;
00782
00786 PX_INLINE ErrorType getParamI32Array(int32_t *array, int32_t n, int32_t offset = 0) const ;
00787
00791 PX_INLINE ErrorType setParamI32Array(const int32_t *val, int32_t n, int32_t offset = 0) ;
00792
00796 PX_INLINE ErrorType getParamI64(int64_t &val) const ;
00797
00801 PX_INLINE ErrorType setParamI64(int64_t val) ;
00802
00806 PX_INLINE ErrorType getParamI64Array(int64_t *array, int32_t n, int32_t offset = 0) const ;
00807
00811 PX_INLINE ErrorType setParamI64Array(const int64_t *val, int32_t n, int32_t offset = 0) ;
00812
00816 PX_INLINE ErrorType getParamU8(uint8_t &val) const ;
00817
00821 PX_INLINE ErrorType setParamU8(uint8_t val) ;
00822
00826 PX_INLINE ErrorType getParamU8Array(uint8_t *array, int32_t n, int32_t offset = 0) const ;
00827
00831 PX_INLINE ErrorType setParamU8Array(const uint8_t *val, int32_t n, int32_t offset = 0) ;
00832
00836 PX_INLINE ErrorType getParamU16(uint16_t &val) const ;
00837
00841 PX_INLINE ErrorType setParamU16(uint16_t val) ;
00842
00846 PX_INLINE ErrorType getParamU16Array(uint16_t *array, int32_t n, int32_t offset = 0) const ;
00847
00851 PX_INLINE ErrorType setParamU16Array(const uint16_t *array, int32_t n, int32_t offset = 0) ;
00852
00856 PX_INLINE ErrorType getParamU32(uint32_t &val) const ;
00857
00861 PX_INLINE ErrorType setParamU32(uint32_t val) ;
00862
00866 PX_INLINE ErrorType getParamU32Array(uint32_t *array, int32_t n, int32_t offset = 0) const ;
00867
00871 PX_INLINE ErrorType setParamU32Array(const uint32_t *array, int32_t n, int32_t offset = 0) ;
00872
00876 PX_INLINE ErrorType getParamU64(uint64_t &val) const ;
00877
00881 PX_INLINE ErrorType setParamU64(uint64_t val) ;
00882
00886 PX_INLINE ErrorType getParamU64Array(uint64_t *array, int32_t n, int32_t offset = 0) const ;
00887
00891 PX_INLINE ErrorType setParamU64Array(const uint64_t *array, int32_t n, int32_t offset = 0) ;
00892
00896 PX_INLINE ErrorType getParamF32(float &val) const ;
00897
00901 PX_INLINE ErrorType setParamF32(float val) ;
00902
00906 PX_INLINE ErrorType getParamF32Array(float *array, int32_t n, int32_t offset = 0) const ;
00907
00911 PX_INLINE ErrorType setParamF32Array(const float *array, int32_t n, int32_t offset = 0) ;
00912
00916 PX_INLINE ErrorType getParamF64(double &val) const ;
00917
00921 PX_INLINE ErrorType setParamF64(double val) ;
00922
00926 PX_INLINE ErrorType getParamF64Array(double *array, int32_t n, int32_t offset = 0) const ;
00927
00931 PX_INLINE ErrorType setParamF64Array(const double *array, int32_t n, int32_t offset = 0) ;
00932
00936 PX_INLINE ErrorType setParamVec2(const physx::PxVec2 &val) ;
00937
00941 PX_INLINE ErrorType getParamVec2(physx::PxVec2 &val) const ;
00942
00946 PX_INLINE ErrorType getParamVec2Array(physx::PxVec2 *array, int32_t n, int32_t offset = 0) const ;
00947
00951 PX_INLINE ErrorType setParamVec2Array(const physx::PxVec2 *array, int32_t n, int32_t offset = 0) ;
00952
00956 PX_INLINE ErrorType setParamVec3(const physx::PxVec3 &val) ;
00957
00961 PX_INLINE ErrorType getParamVec3(physx::PxVec3 &val) const ;
00962
00966 PX_INLINE ErrorType getParamVec3Array(physx::PxVec3 *array, int32_t n, int32_t offset = 0) const ;
00967
00971 PX_INLINE ErrorType setParamVec3Array(const physx::PxVec3 *array, int32_t n, int32_t offset = 0) ;
00972
00976 PX_INLINE ErrorType setParamVec4(const physx::PxVec4 &val) ;
00977
00981 PX_INLINE ErrorType getParamVec4(physx::PxVec4 &val) const ;
00982
00986 PX_INLINE ErrorType getParamVec4Array(physx::PxVec4 *array, int32_t n, int32_t offset = 0) const ;
00987
00991 PX_INLINE ErrorType setParamVec4Array(const physx::PxVec4 *array, int32_t n, int32_t offset = 0) ;
00992
00996 PX_INLINE ErrorType setParamQuat(const physx::PxQuat &val) ;
00997
01001 PX_INLINE ErrorType getParamQuat(physx::PxQuat &val) const ;
01002
01006 PX_INLINE ErrorType getParamQuatArray(physx::PxQuat *array, int32_t n, int32_t offset = 0) const ;
01007
01011 PX_INLINE ErrorType setParamQuatArray(const physx::PxQuat *array, int32_t n, int32_t offset = 0) ;
01012
01016 PX_INLINE ErrorType setParamMat33(const physx::PxMat33 &val) ;
01017
01021 PX_INLINE ErrorType getParamMat33(physx::PxMat33 &val) const ;
01022
01026 PX_INLINE ErrorType getParamMat33Array(physx::PxMat33 *array, int32_t n, int32_t offset = 0) const ;
01027
01031 PX_INLINE ErrorType setParamMat33Array(const physx::PxMat33 *array, int32_t n, int32_t offset = 0) ;
01032
01036 PX_INLINE ErrorType setParamMat44(const physx::PxMat44 &val) ;
01037
01041 PX_INLINE ErrorType getParamMat44(physx::PxMat44 &val) const ;
01042
01046 PX_INLINE ErrorType getParamMat44Array(physx::PxMat44 *array, int32_t n, int32_t offset = 0) const ;
01047
01051 PX_INLINE ErrorType setParamMat44Array(const physx::PxMat44 *array, int32_t n, int32_t offset = 0) ;
01052
01056 PX_INLINE ErrorType setParamMat34Legacy(const float (&val)[12]) ;
01057
01061 PX_INLINE ErrorType getParamMat34Legacy(float (&val)[12]) const ;
01062
01066 PX_INLINE ErrorType getParamMat34LegacyArray(float* array, int32_t n, int32_t offset = 0) const ;
01067
01071 PX_INLINE ErrorType setParamMat34LegacyArray(const float *array, int32_t n, int32_t offset = 0) ;
01072
01076 PX_INLINE ErrorType setParamBounds3(const physx::PxBounds3 &val) ;
01077
01081 PX_INLINE ErrorType getParamBounds3(physx::PxBounds3 &val) const ;
01082
01086 PX_INLINE ErrorType getParamBounds3Array(physx::PxBounds3 *array, int32_t n, int32_t offset = 0) const ;
01087
01091 PX_INLINE ErrorType setParamBounds3Array(const physx::PxBounds3 *array, int32_t n, int32_t offset = 0) ;
01092
01096 PX_INLINE ErrorType setParamTransform(const physx::PxTransform &val) ;
01097
01101 PX_INLINE ErrorType getParamTransform(physx::PxTransform &val) const ;
01102
01106 PX_INLINE ErrorType getParamTransformArray(physx::PxTransform *array, int32_t n, int32_t offset = 0) const ;
01107
01111 PX_INLINE ErrorType setParamTransformArray(const physx::PxTransform *array, int32_t n, int32_t offset = 0) ;
01112
01113
01115 template <typename T> PX_INLINE ErrorType setParam(const T &val);
01116
01118 template <typename T> PX_INLINE ErrorType getParam(T &val) const;
01119
01121 template <typename T> PX_INLINE ErrorType getParamArray(T *array, int32_t n, int32_t offset = 0) const;
01122
01124 template <typename T> PX_INLINE ErrorType setParamArray(const T *array, int32_t n, int32_t offset = 0);
01125
01126 private:
01127
01128 PX_INLINE void pushIndex(int32_t index);
01129
01130 bool mIsValid, mIsConst;
01131 int32_t mNumIndexes;
01132 int32_t mIndexList[MAX_DEPTH];
01133 const Definition *mParameterDefinition;
01134 void *mUserData;
01135 ::NvParameterized::Interface *mInterface;
01136 };
01137
01139 class SerializationCallback
01140 {
01141 public:
01142 virtual ~SerializationCallback() {}
01144 virtual void preSerialize(void* userData = NULL) = 0;
01145 };
01146
01147
01151 class Interface
01152 {
01153 friend class Handle;
01154 public:
01155
01159 virtual ~Interface() {}
01160
01164 virtual void destroy() = 0;
01165
01169 virtual void initDefaults(void) = 0;
01170
01174 virtual void initRandom(void) = 0;
01175
01179 virtual const char * className(void) const = 0;
01180
01187 virtual void setClassName(const char *name) = 0;
01188
01193 virtual const char * name(void) const = 0;
01194
01199 virtual void setName(const char *name) = 0;
01200
01204 virtual uint32_t version(void) const = 0;
01205
01209 virtual uint16_t getMajorVersion(void) const = 0;
01210
01214 virtual uint16_t getMinorVersion(void) const = 0;
01215
01221 virtual const uint32_t * checksum(uint32_t &bits) const = 0;
01222
01226 virtual int32_t numParameters(void) = 0;
01227
01231 virtual const Definition *parameterDefinition(int32_t index) = 0;
01232
01236 virtual const Definition *rootParameterDefinition(void) = 0;
01237
01241 virtual const Definition *rootParameterDefinition(void) const = 0;
01242
01250 virtual ErrorType getParameterHandle(const char *longName, Handle &handle) const = 0;
01251
01259 virtual ErrorType getParameterHandle(const char *longName, Handle &handle) = 0;
01260
01262 virtual void setSerializationCallback(SerializationCallback *cb, void *userData = NULL) = 0;
01263
01265 virtual ErrorType callPreSerializeCallback() const = 0;
01266
01267
01276 virtual bool equals(const ::NvParameterized::Interface &obj, Handle* handlesOfInequality = NULL, uint32_t numHandlesOfInequality = 0, bool doCompareNotSerialized = true) const = 0;
01277
01284 virtual bool areParamsOK(Handle *invalidHandles = NULL, uint32_t numInvalidHandles = 0) = 0;
01285
01290 virtual ErrorType copy(const ::NvParameterized::Interface &src) = 0;
01291
01296 virtual ErrorType clone(Interface *&nullDestObject) const = 0;
01297
01302 virtual bool checkAlignments() const = 0;
01303
01304 protected:
01310 virtual ErrorType initParamRef(const Handle &handle, const char *chosenRefStr = 0, bool doDestroyOld = false) = 0;
01311
01312
01313
01314
01318 virtual ErrorType getParamBool(const Handle &handle, bool &val) const = 0;
01319
01323 virtual ErrorType setParamBool(const Handle &handle, bool val) = 0;
01324
01328 virtual ErrorType getParamBoolArray(const Handle &handle, bool *array, int32_t n, int32_t offset = 0) const = 0;
01329
01333 virtual ErrorType setParamBoolArray(const Handle &handle, const bool *array, int32_t n, int32_t offset = 0) = 0;
01334
01338 virtual ErrorType getParamString(const Handle &handle, const char *&val) const = 0;
01339
01343 virtual ErrorType setParamString(const Handle &handle, const char *val) = 0;
01344
01348 virtual ErrorType getParamStringArray(const Handle &handle, char **array, int32_t n, int32_t offset = 0) const = 0;
01349
01353 virtual ErrorType setParamStringArray(const Handle &handle, const char **array, int32_t n, int32_t offset = 0) = 0;
01354
01358 virtual ErrorType getParamEnum(const Handle &handle, const char *&val) const = 0;
01359
01363 virtual ErrorType setParamEnum(const Handle &handle, const char *val) = 0;
01364
01368 virtual ErrorType getParamEnumArray(const Handle &handle, char **array, int32_t n, int32_t offset = 0) const = 0;
01369
01373 virtual ErrorType setParamEnumArray(const Handle &handle, const char **array, int32_t n, int32_t offset = 0) = 0;
01374
01378 virtual ErrorType getParamRef(const Handle &handle, ::NvParameterized::Interface *&val) const = 0;
01379
01383 virtual ErrorType getParamRefArray(const Handle &handle, ::NvParameterized::Interface **array, int32_t n, int32_t offset = 0) const = 0;
01384
01388 virtual ErrorType setParamRef(const Handle &handle, ::NvParameterized::Interface * val, bool doDestroyOld = false) = 0;
01389
01393 virtual ErrorType setParamRefArray(const Handle &handle, ::NvParameterized::Interface **array, int32_t n, int32_t offset = 0, bool doDestroyOld = false) = 0;
01394
01398 virtual ErrorType getParamI8(const Handle &handle, int8_t &val) const = 0;
01399
01403 virtual ErrorType setParamI8(const Handle &handle, int8_t val) = 0;
01404
01408 virtual ErrorType getParamI8Array(const Handle &handle, int8_t *array, int32_t n, int32_t offset = 0) const = 0;
01409
01413 virtual ErrorType setParamI8Array(const Handle &handle, const int8_t *val, int32_t n, int32_t offset = 0) = 0;
01414
01418 virtual ErrorType getParamI16(const Handle &handle, int16_t &val) const = 0;
01419
01423 virtual ErrorType setParamI16(const Handle &handle, int16_t val) = 0;
01424
01428 virtual ErrorType getParamI16Array(const Handle &handle, int16_t *array, int32_t n, int32_t offset = 0) const = 0;
01429
01433 virtual ErrorType setParamI16Array(const Handle &handle, const int16_t *val, int32_t n, int32_t offset = 0) = 0;
01434
01438 virtual ErrorType getParamI32(const Handle &handle, int32_t &val) const = 0;
01439
01443 virtual ErrorType setParamI32(const Handle &handle, int32_t val) = 0;
01444
01448 virtual ErrorType getParamI32Array(const Handle &handle, int32_t *array, int32_t n, int32_t offset = 0) const = 0;
01449
01453 virtual ErrorType setParamI32Array(const Handle &handle, const int32_t *val, int32_t n, int32_t offset = 0) = 0;
01454
01458 virtual ErrorType getParamI64(const Handle &handle, int64_t &val) const = 0;
01459
01463 virtual ErrorType setParamI64(const Handle &handle, int64_t val) = 0;
01464
01468 virtual ErrorType getParamI64Array(const Handle &handle, int64_t *array, int32_t n, int32_t offset = 0) const = 0;
01469
01473 virtual ErrorType setParamI64Array(const Handle &handle, const int64_t *val, int32_t n, int32_t offset = 0) = 0;
01474
01478 virtual ErrorType getParamU8(const Handle &handle, uint8_t &val) const = 0;
01479
01483 virtual ErrorType setParamU8(const Handle &handle, uint8_t val) = 0;
01484
01488 virtual ErrorType getParamU8Array(const Handle &handle, uint8_t *array, int32_t n, int32_t offset = 0) const = 0;
01489
01493 virtual ErrorType setParamU8Array(const Handle &handle, const uint8_t *val, int32_t n, int32_t offset = 0) = 0;
01494
01498 virtual ErrorType getParamU16(const Handle &handle, uint16_t &val) const = 0;
01499
01503 virtual ErrorType setParamU16(const Handle &handle, uint16_t val) = 0;
01504
01508 virtual ErrorType getParamU16Array(const Handle &handle, uint16_t *array, int32_t n, int32_t offset = 0) const = 0;
01509
01513 virtual ErrorType setParamU16Array(const Handle &handle, const uint16_t *array, int32_t n, int32_t offset = 0) = 0;
01514
01518 virtual ErrorType getParamU32(const Handle &handle, uint32_t &val) const = 0;
01519
01523 virtual ErrorType setParamU32(const Handle &handle, uint32_t val) = 0;
01524
01528 virtual ErrorType getParamU32Array(const Handle &handle, uint32_t *array, int32_t n, int32_t offset = 0) const = 0;
01529
01533 virtual ErrorType setParamU32Array(const Handle &handle, const uint32_t *array, int32_t n, int32_t offset = 0) = 0;
01534
01538 virtual ErrorType getParamU64(const Handle &handle, uint64_t &val) const = 0;
01539
01543 virtual ErrorType setParamU64(const Handle &handle, uint64_t val) = 0;
01544
01548 virtual ErrorType getParamU64Array(const Handle &handle, uint64_t *array, int32_t n, int32_t offset = 0) const = 0;
01549
01553 virtual ErrorType setParamU64Array(const Handle &handle, const uint64_t *array, int32_t n, int32_t offset = 0) = 0;
01554
01558 virtual ErrorType getParamF32(const Handle &handle, float &val) const = 0;
01559
01563 virtual ErrorType setParamF32(const Handle &handle, float val) = 0;
01564
01568 virtual ErrorType getParamF32Array(const Handle &handle, float *array, int32_t n, int32_t offset = 0) const = 0;
01569
01573 virtual ErrorType setParamF32Array(const Handle &handle, const float *array, int32_t n, int32_t offset = 0) = 0;
01574
01578 virtual ErrorType getParamF64(const Handle &handle, double &val) const = 0;
01579
01583 virtual ErrorType setParamF64(const Handle &handle, double val) = 0;
01584
01588 virtual ErrorType getParamF64Array(const Handle &handle, double *array, int32_t n, int32_t offset = 0) const = 0;
01589
01593 virtual ErrorType setParamF64Array(const Handle &handle, const double *array, int32_t n, int32_t offset = 0) = 0;
01594
01598 virtual ErrorType setParamVec2(const Handle &handle, const physx::PxVec2 &val) = 0;
01599
01603 virtual ErrorType getParamVec2(const Handle &handle, physx::PxVec2 &val) const = 0;
01604
01608 virtual ErrorType getParamVec2Array(const Handle &handle, physx::PxVec2 *array, int32_t n, int32_t offset = 0) const = 0;
01609
01613 virtual ErrorType setParamVec2Array(const Handle &handle, const physx::PxVec2 *array, int32_t n, int32_t offset = 0) = 0;
01614
01618 virtual ErrorType setParamVec3(const Handle &handle, const physx::PxVec3 &val) = 0;
01619
01623 virtual ErrorType getParamVec3(const Handle &handle, physx::PxVec3 &val) const = 0;
01624
01628 virtual ErrorType getParamVec3Array(const Handle &handle, physx::PxVec3 *array, int32_t n, int32_t offset = 0) const = 0;
01629
01633 virtual ErrorType setParamVec3Array(const Handle &handle, const physx::PxVec3 *array, int32_t n, int32_t offset = 0) = 0;
01634
01638 virtual ErrorType setParamVec4(const Handle &handle, const physx::PxVec4 &val) = 0;
01639
01643 virtual ErrorType getParamVec4(const Handle &handle, physx::PxVec4 &val) const = 0;
01644
01648 virtual ErrorType getParamVec4Array(const Handle &handle, physx::PxVec4 *array, int32_t n, int32_t offset = 0) const = 0;
01649
01653 virtual ErrorType setParamVec4Array(const Handle &handle, const physx::PxVec4 *array, int32_t n, int32_t offset = 0) = 0;
01654
01658 virtual ErrorType setParamQuat(const Handle &handle, const physx::PxQuat &val) = 0;
01659
01663 virtual ErrorType getParamQuat(const Handle &handle, physx::PxQuat &val) const = 0;
01664
01668 virtual ErrorType getParamQuatArray(const Handle &handle, physx::PxQuat *array, int32_t n, int32_t offset = 0) const = 0;
01669
01673 virtual ErrorType setParamQuatArray(const Handle &handle, const physx::PxQuat *array, int32_t n, int32_t offset = 0) = 0;
01674
01678 virtual ErrorType setParamMat33(const Handle &handle, const physx::PxMat33 &val) = 0;
01679
01683 virtual ErrorType getParamMat33(const Handle &handle, physx::PxMat33 &val) const = 0;
01684
01688 virtual ErrorType getParamMat33Array(const Handle &handle, physx::PxMat33 *array, int32_t n, int32_t offset = 0) const = 0;
01689
01693 virtual ErrorType setParamMat33Array(const Handle &handle, const physx::PxMat33 *array, int32_t n, int32_t offset = 0) = 0;
01694
01698 virtual ErrorType setParamMat44(const Handle &handle, const physx::PxMat44 &val) = 0;
01699
01703 virtual ErrorType getParamMat44(const Handle &handle, physx::PxMat44 &val) const = 0;
01704
01708 virtual ErrorType getParamMat44Array(const Handle &handle, physx::PxMat44 *array, int32_t n, int32_t offset = 0) const = 0;
01709
01713 virtual ErrorType setParamMat44Array(const Handle &handle, const physx::PxMat44 *array, int32_t n, int32_t offset = 0) = 0;
01714
01718 virtual ErrorType setParamMat34Legacy(const Handle &handle, const float (&val)[12]) = 0;
01719
01723 virtual ErrorType getParamMat34Legacy(const Handle &handle, float (&val)[12]) const = 0;
01724
01728 virtual ErrorType getParamMat34LegacyArray(const Handle &handle, float *array, int32_t n, int32_t offset = 0) const = 0;
01729
01733 virtual ErrorType setParamMat34LegacyArray(const Handle &handle, const float *array, int32_t n, int32_t offset = 0) = 0;
01734
01738 virtual ErrorType setParamBounds3(const Handle &handle, const physx::PxBounds3 &val) = 0;
01739
01743 virtual ErrorType getParamBounds3(const Handle &handle, physx::PxBounds3 &val) const = 0;
01744
01748 virtual ErrorType getParamBounds3Array(const Handle &handle, physx::PxBounds3 *array, int32_t n, int32_t offset = 0) const = 0;
01749
01753 virtual ErrorType setParamTransform(const Handle &handle, const physx::PxTransform &val) = 0;
01754
01758 virtual ErrorType getParamTransform(const Handle &handle, physx::PxTransform &val) const = 0;
01759
01763 virtual ErrorType getParamTransformArray(const Handle &handle, physx::PxTransform *array, int32_t n, int32_t offset = 0) const = 0;
01764
01768 virtual ErrorType setParamTransformArray(const Handle &handle, const physx::PxTransform *array, int32_t n, int32_t offset = 0) = 0;
01769
01773 virtual ErrorType setParamBounds3Array(const Handle &handle, const physx::PxBounds3 *array, int32_t n, int32_t offset = 0) = 0;
01774
01779 virtual ErrorType valueToStr(const Handle &handle, char *buf, uint32_t bufSize, const char *&ret) = 0;
01780
01785 virtual ErrorType strToValue(Handle &handle,const char *str, const char **endptr) = 0;
01786
01791 virtual ErrorType resizeArray(const Handle &array_handle, int32_t new_size) = 0;
01792
01797 virtual ErrorType getArraySize(const Handle &array_handle, int32_t &size, int32_t dimension = 0) const = 0;
01798
01803 virtual ErrorType swapArrayElements(const Handle &array_handle, uint32_t firstElement, uint32_t secondElement) = 0;
01804 };
01805
01806 }
01807
01808 #include "NvParameterized.inl"
01809
01810 PX_POP_PACK
01811
01812 #endif // NV_PARAMETERIZED_H