00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef _MDLMAXEXPORTER_H__
00012 #define _MDLMAXEXPORTER_H__
00013
00014 #include <windows.h>
00015 #include <commctrl.h>
00016 #include <max.h>
00017 #include <iparamm2.h>
00018
00019
00020 class KMdlLoader;
00021 class KMdlMesh;
00022
00023
00024 class KMdlExporter : public SceneExport
00025 {
00026 protected:
00027 static INT_PTR CALLBACK ExportDlgProc( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );
00028 bool ExportNode( KMdlLoader& Loader, KMdlMesh* pMesh, INode* pNode, bool bSelected, TimeValue Time );
00029 KMdlMesh* ExportBoneObject( KMdlLoader& Loader, INode* pNode, TimeValue Time );
00030 KMdlMesh* ExportTriObject( KMdlLoader& Loader, INode* pNode, TimeValue Time );
00031 bool ExportMaterials( KMdlLoader& Loader, MtlBaseLib* pMtlBaseLib );
00032 Point3 GetVertexNormal(Mesh* mesh, int faceNo, RVertex* rv);
00033 KMdlMesh* ExportHelpers( KMdlLoader& Loader, INode* pNode, TimeValue Time );
00034 void ExportMatrices( KMdlMesh* pMdlMesh, INode* pNode );
00035
00036
00037
00038 TimeValue m_TickStart;
00039 TimeValue m_TickEnd;
00040 TimeValue m_TickStep;
00041
00042 public:
00043 KMdlExporter();
00044 virtual ~KMdlExporter();
00045
00046 virtual int ExtCount() { return 1; }
00047 virtual const TCHAR* Ext( int i ) { return _T("mdl"); }
00048 virtual const TCHAR* LongDesc() { return _T("3D Model for 3Dino Engine"); }
00049 virtual const TCHAR* ShortDesc() { return _T("3Dino Model"); }
00050 virtual const TCHAR* AuthorName() { return _T("Dino Productions"); }
00051 virtual const TCHAR* CopyrightMessage() { return _T("Copyright (c) 2003 Dino Productions");}
00052 virtual unsigned int Version() { return 100; }
00053 virtual const TCHAR* OtherMessage1() { return _T("The Dino Touch"); }
00054 virtual const TCHAR* OtherMessage2() { return _T("Dino Productions Forever"); }
00055 virtual void ShowAbout( HWND hWnd );
00056
00057 virtual int DoExport( const TCHAR *name, ExpInterface *ei, Interface *i, BOOL suppressPrompts=FALSE, DWORD options=0 );
00058 };
00059
00060
00061 class KMdlExporterClassDesc : public ClassDesc2
00062 {
00063 public:
00064 int IsPublic() { return TRUE; }
00065 void* Create( BOOL loading ) { return new KMdlExporter(); }
00066 const TCHAR* ClassName() { return _T("KMdlExporter"); }
00067 SClass_ID SuperClassID() { return SCENE_EXPORT_CLASS_ID; }
00068 Class_ID ClassID() { return Class_ID(0x59747a3a, 0x25e57de0); }
00069 const TCHAR* Category() { return _T(""); }
00070 };
00071
00072 static KMdlExporterClassDesc MdlExporterClassDesc;
00073
00074 #endif _MDLMAXEXPORTER_H__