2 #include "ParaXModel/ParaXModel.h" 17 bool m_bHasAnimation:1;
24 #ifdef USE_DIRECTX_RENDERER 25 typedef ID3DXFileSaveObject* LPFileSaveObject;
26 typedef ID3DXFileSaveData* LPFileSaveData;
27 typedef ID3DXFileData* LPFileData;
33 std::vector<byte> m_RawData;
38 unsigned int GetSize() {
return (
unsigned int)m_RawData.size();}
40 const byte*
GetBuffer() {
return &m_RawData.front();}
45 unsigned int AddRawData(
const DWORD * pData,
int nCount){
46 unsigned int nOffset = GetSize();
49 unsigned int nSize = nCount*
sizeof(*pData);
50 m_RawData.resize(nOffset+nSize);
51 memcpy(&m_RawData[nOffset], pData, nSize);
56 unsigned int AddRawData(
const short * pData,
int nCount){
57 unsigned int nOffset = GetSize();
60 unsigned int nSize = nCount*
sizeof(*pData);
61 m_RawData.resize(nOffset+nSize);
62 memcpy(&m_RawData[nOffset], pData, nSize);
68 unsigned int nOffset = GetSize();
71 unsigned int nSize = nCount*
sizeof(*pData);
72 m_RawData.resize(nOffset+nSize);
73 memcpy(&m_RawData[nOffset], pData, nSize);
79 unsigned int nOffset = GetSize();
82 unsigned int nSize = nCount*
sizeof(*pData);
83 m_RawData.resize(nOffset+nSize);
84 memcpy(&m_RawData[nOffset], pData, nSize);
90 unsigned int nOffset = GetSize();
93 unsigned int nSize = nCount*
sizeof(*pData);
94 m_RawData.resize(nOffset+nSize);
95 memcpy(&m_RawData[nOffset], pData, nSize);
101 unsigned int nOffset = GetSize();
104 unsigned int nSize = nCount *
sizeof(*pData);
105 m_RawData.resize(nOffset + nSize);
106 memcpy(&m_RawData[nOffset], pData, nSize);
113 unsigned int nOffset = GetSize();
116 unsigned int nSize = nCount *
sizeof(*pData);
117 m_RawData.resize(nOffset + nSize);
118 memcpy(&m_RawData[nOffset], pData, nSize);
122 unsigned int AddRawData(
const std::string& str) {
123 return AddRawData(str.c_str(), str.size()+1);
126 #ifdef USE_DIRECTX_RENDERER 132 bool m_bHeaderLoaded;
134 ID3DXFileEnumObject *m_pDXEnum;
136 LPFileData m_pParaXBody;
137 LPFileData m_pParaXRawData;
138 LPFileData m_pParaXRef;
139 LPFileData m_pD3DMesh;
140 LPFileData m_pD3DRootFrame;
143 LPD3DXFILE m_pDXFileParser;
149 ParaXParser(
CParaFile& file, LPD3DXFILE pDXFileParser=NULL );
150 ~ParaXParser(){Finalize();};
152 inline LPD3DXFILE GetFileParser() {
return m_pDXFileParser;}
177 inline const byte*
GetRawData(
int nOffset)
const {
return (m_pRaw!=0)?(m_pRaw+nOffset):NULL; };
186 static void ExportParaXMesh(
const string& filePath,
CParaXModel* pMesh);
188 #ifdef USE_DIRECTX_RENDERER 190 void* LoadParaXMesh(
CParaFile &f, ParaXParser& Parser);
201 bool LoadParaX_Header(ParaXParser& Parser);
205 void* LoadParaX_Body(ParaXParser& Parser);
207 void LoadParaX_Finalize(ParaXParser& Parser);
239 bool WriteParaXHeader(
const CParaXModel& xmesh, LPFileSaveObject pFileData);
242 bool WriteXGlobalSequences(
const CParaXModel& xmesh, LPFileSaveData pFileData);
243 bool WriteXVertices(
const CParaXModel& xmesh, LPFileSaveData pFileData);
244 bool WriteXTextures(
const CParaXModel& xmesh, LPFileSaveData pFileData);
245 bool WriteXAttachments(
const CParaXModel& xmesh, LPFileSaveData pFileData);
246 bool WriteXColors(
const CParaXModel& xmesh, LPFileSaveData pFileData);
247 bool WriteXTransparency(
const CParaXModel& xmesh, LPFileSaveData pFileData);
248 bool WriteXViews(
const CParaXModel& xmesh, LPFileSaveData pFileData);
249 bool WriteXIndices0(
const CParaXModel& xmesh, LPFileSaveData pFileData);
250 bool WriteXGeosets(
const CParaXModel& xmesh, LPFileSaveData pFileData);
251 bool WriteXRenderPass(
const CParaXModel& xmesh, LPFileSaveData pFileData);
252 bool WriteXBones(
const CParaXModel& xmesh, LPFileSaveData pFileData);
253 bool WriteXTexAnims(
const CParaXModel& xmesh, LPFileSaveData pFileData);
254 bool WriteXParticleEmitters(
const CParaXModel& xmesh, LPFileSaveData pFileData);
255 bool WriteXRibbonEmitters(
const CParaXModel& xmesh, LPFileSaveData pFileData);
256 bool WriteXCameras(
const CParaXModel& xmesh, LPFileSaveData pFileData);
257 bool WriteXLights(
const CParaXModel& xmesh, LPFileSaveData pFileData);
258 bool WriteXAnimations(
const CParaXModel& xmesh, LPFileSaveData pFileData);
262 bool WriteXRawBytes(
const CParaXModel& xmesh, LPFileSaveObject pFileData);
265 bool ReadParaXHeader(
ParaXHeaderDef& xheader, LPFileData pFileData);
267 bool ReadXGlobalSequences(
CParaXModel& xmesh, LPFileData pFileData);
268 bool ReadXVertices(
CParaXModel& xmesh, LPFileData pFileData);
269 bool ReadXTextures(
CParaXModel& xmesh, LPFileData pFileData);
270 bool ReadXAttachments(
CParaXModel& xmesh, LPFileData pFileData);
271 bool ReadXColors(
CParaXModel& xmesh, LPFileData pFileData);
272 bool ReadXTransparency(
CParaXModel& xmesh, LPFileData pFileData);
273 bool ReadXViews(
CParaXModel& xmesh, LPFileData pFileData);
274 bool ReadXIndices0(
CParaXModel& xmesh, LPFileData pFileData);
275 bool ReadXGeosets(
CParaXModel& xmesh, LPFileData pFileData);
276 bool ReadXRenderPass(
CParaXModel& xmesh, LPFileData pFileData);
277 bool ReadXBones(
CParaXModel& xmesh, LPFileData pFileData);
278 bool ReadXTexAnims(
CParaXModel& xmesh, LPFileData pFileData);
279 bool ReadXParticleEmitters(
CParaXModel& xmesh, LPFileData pFileData);
280 bool ReadXRibbonEmitters(
CParaXModel& xmesh, LPFileData pFileData);
281 bool ReadXCameras(
CParaXModel& xmesh, LPFileData pFileData);
282 bool ReadXLights(
CParaXModel& xmesh, LPFileData pFileData);
283 bool ReadXAnimations(
CParaXModel& xmesh, LPFileData pFileData);
bool m_bBinary
binary or text file
Definition: ParaXSerializer.h:15
4-dimensional homogeneous vector.
Definition: ParaVector4.h:10
different physics engine has different winding order.
Definition: EventBinding.h:32
unsigned int GetSize()
current size
Definition: ParaXSerializer.h:38
Standard 3-dimensional vector.
Definition: ParaVector3.h:16
unsigned int AddRawData(const Vector4 *pData, int nCount)
Definition: ParaXSerializer.h:89
Standard 2-dimensional vector.
Definition: ParaVector2.h:16
Serialize options for input and output.
Definition: ParaXSerializer.h:12
Definition: animated.h:23
this class is used for importing and exporting ParaX model from or to memory files.
Definition: ParaXSerializer.h:161
Class encapsulating a standard 4x4 homogeneous matrix.
Definition: ParaMatrix4.h:23
unsigned int AddRawData(const DWORD *pData, int nCount)
Add specified data to raw data.
Definition: ParaXSerializer.h:45
unsigned int AddRawData(const Matrix4 *pData, int nCount)
Definition: ParaXSerializer.h:100
unsigned int AddRawData(const Vector2 *pData, int nCount)
Definition: ParaXSerializer.h:67
static SerializerOptions g_pDefaultOption
default option
Definition: ParaXSerializer.h:168
it presents a real or virtual file in ParaEngine.
Definition: ParaFile.h:31
unsigned int AddRawData(const char *pData, int nCount)
Definition: ParaXSerializer.h:112
const byte * GetRawData(int nOffset) const
get the raw data pointer at the specified offset.
Definition: ParaXSerializer.h:177
unsigned int AddRawData(const Vector3 *pData, int nCount)
Definition: ParaXSerializer.h:78
Definition: ParaXSerializer.h:29
ParaX model is the model file for character animation, etc in the game world.
Definition: ParaXModel.h:30
const byte * GetBuffer()
get the buffer from the beginning
Definition: ParaXSerializer.h:40
unsigned int AddRawData(const short *pData, int nCount)
Definition: ParaXSerializer.h:56
Definition: modelheaders.h:186