27#ifndef SN_CONVX_METADATA_H
28#define SN_CONVX_METADATA_H
30#include "common/PxMetaDataFlags.h"
32#include "SnConvX_Output.h"
33#include "serialization/SnSerialUtils.h"
35namespace physx {
namespace Sn {
39#pragma warning (disable : 4371)
48 memset(
this, 0,
sizeof(*
this));
50 bool isVTablePtr()
const;
105 ConvertCallback mCallback;
107 const char* mClassName;
110 PsArray<PxMetaDataEntry> mBaseClasses;
111 PsArray<PxMetaDataEntry> mFields;
118 void checkAndCompleteClass(
const MetaData& owner,
int& startOffset,
int& nbBytes);
137 inline_ MetaDataType getType()
const {
return mType; }
138 inline_
int getVersion()
const {
return mVersion; }
139 inline_
int getPtrSize()
const {
return mSizeOfPtr; }
140 inline_
int getPlatformTag()
const {
return mPlatformTag; }
141 inline_
int getGaussMapLimit()
const {
return mGaussMapLimit; }
142 inline_
int getNbMetaClasses()
const {
return int(mMetaClasses.size()); }
143 inline_
MetaClass* getMetaClass(
unsigned int i)
const {
return mMetaClasses[i]; }
144 inline_
bool getFlip()
const {
return mFlip; }
146 MetaClass* getMetaClass(
const char* name)
const;
147 MetaClass* getMetaClass(PxConcreteType::Enum concreteType)
const;
148 MetaClass* addNewClass(
const char* name,
int size,
MetaClass* master=NULL, ConvertCallback callback=NULL);
150 bool compare(
const MetaData& candidate)
const;
158 PsArray<MetaClass*> mMetaClasses;
160 char mBinaryVersionGuid[SN_BINARY_VERSION_GUID_NUM_CHARS + 1];
166 PsArray< PxPair<PxConcreteType::Enum, PxU32> > mConcreteTypeTable;
168 inline_
const char* offsetToText(
const char* text)
const
170 const size_t offset = size_t(text);
171 const PxU32 offset32 = PxU32(offset);
173 if(offset32==0xffffffff)
175 return mStringTable + offset32;
180 PxU64 peek(
int size,
const char* buffer,
int flags=0);
Definition PxUserAllocated.h:43
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
Definition SnConvX_MetaData.h:63
int mSize
sizeof(Type)
Definition SnConvX_MetaData.h:67
int mOffsetSize
Offset of dynamic size param, for dynamic arrays.
Definition SnConvX_MetaData.h:69
int mFlags
Field parameters.
Definition SnConvX_MetaData.h:70
int mOffset
Offset from the start of the class (ie from "this", field is located at "this"+Offset)
Definition SnConvX_MetaData.h:66
int mAlignment
Explicit alignment added for DE1340.
Definition SnConvX_MetaData.h:71
PxI32 mType
Field type (bool, byte, quaternion, etc)
Definition SnConvX_MetaData.h:64
int mCount
Number of items of type Type (0 for dynamic sizes)
Definition SnConvX_MetaData.h:68
PxI32 mName
Field name (appears exactly as in the source file)
Definition SnConvX_MetaData.h:65
Definition SnConvX_MetaData.h:75
int mFlags
Field parameters.
Definition SnConvX_MetaData.h:82
int mCount
Number of items of type Type (0 for dynamic sizes)
Definition SnConvX_MetaData.h:80
int mAlignment
Explicit alignment added for DE1340.
Definition SnConvX_MetaData.h:83
int mSize
sizeof(Type)
Definition SnConvX_MetaData.h:79
int mOffsetSize
Offset of dynamic size param, for dynamic arrays.
Definition SnConvX_MetaData.h:81
int mOffset
Offset from the start of the class (ie from "this", field is located at "this"+Offset)
Definition SnConvX_MetaData.h:78
PxI64 mType
Field type (bool, byte, quaternion, etc)
Definition SnConvX_MetaData.h:76
PxI64 mName
Field name (appears exactly as in the source file)
Definition SnConvX_MetaData.h:77
Definition SnConvX_MetaData.h:45
int mAlignment
Explicit alignment added for DE1340.
Definition SnConvX_MetaData.h:59
int mSize
sizeof(Type)
Definition SnConvX_MetaData.h:55
int mOffsetSize
Offset of dynamic size param, for dynamic arrays.
Definition SnConvX_MetaData.h:57
int mOffset
Offset from the start of the class (ie from "this", field is located at "this"+Offset)
Definition SnConvX_MetaData.h:54
int mFlags
Field parameters.
Definition SnConvX_MetaData.h:58
int mCount
Number of items of type Type (0 for dynamic sizes)
Definition SnConvX_MetaData.h:56
const char * mName
Field name (appears exactly as in the source file)
Definition SnConvX_MetaData.h:53
const char * mType
Field type (bool, byte, quaternion, etc)
Definition SnConvX_MetaData.h:52