26 #include "pandatoolbase.h" 29 #include "maxEggLoader.h" 31 #include "maxImportRes.h" 35 #include "notifyCategoryProxy.h" 47 const TCHAR * Ext(
int n);
48 const TCHAR * LongDesc();
49 const TCHAR * ShortDesc();
50 const TCHAR * AuthorName();
51 const TCHAR * CopyrightMessage();
52 const TCHAR * OtherMessage1();
53 const TCHAR * OtherMessage2();
54 unsigned int Version();
55 void ShowAbout(HWND hWnd);
56 int DoImport(
const TCHAR *name,ImpInterface *ei,Interface *i, BOOL suppressPrompts);
61 static BOOL _importmodel;
62 static BOOL _importanim;
65 BOOL MaxEggImporter::_merge = TRUE;
66 BOOL MaxEggImporter::_importmodel = TRUE;
67 BOOL MaxEggImporter::_importanim = FALSE;
69 MaxEggImporter::MaxEggImporter()
73 MaxEggImporter::~MaxEggImporter()
77 int MaxEggImporter::ExtCount()
83 const TCHAR * MaxEggImporter::Ext(
int n)
87 case 0:
return _T(
"egg");
88 default:
return _T(
"");
92 const TCHAR * MaxEggImporter::LongDesc()
94 return _T(
"Panda3D Egg Importer");
97 const TCHAR * MaxEggImporter::ShortDesc()
99 return _T(
"Panda3D Egg");
102 const TCHAR * MaxEggImporter::AuthorName()
104 return _T(
"Joshua Yelon");
107 const TCHAR * MaxEggImporter::CopyrightMessage()
109 return _T(
"Copyight (c) 2005 Josh Yelon");
112 const TCHAR * MaxEggImporter::OtherMessage1()
117 const TCHAR * MaxEggImporter::OtherMessage2()
122 unsigned int MaxEggImporter::Version()
127 static INT_PTR CALLBACK AboutBoxDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
131 CenterWindow(hWnd, GetParent(hWnd));
134 switch (LOWORD(wParam)) {
146 void MaxEggImporter::ShowAbout(HWND hWnd)
148 DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX),
149 hWnd, AboutBoxDlgProc, 0);
153 static INT_PTR CALLBACK ImportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
159 SetWindowLongPtr(hWnd, GWLP_USERDATA, lParam);
160 CenterWindow(hWnd, GetParent(hWnd));
161 CheckDlgButton(hWnd, IDC_MERGE, imp->_merge);
162 CheckDlgButton(hWnd, IDC_IMPORTMODEL, imp->_importmodel);
163 CheckDlgButton(hWnd, IDC_IMPORTANIM, imp->_importanim);
166 switch (LOWORD(wParam)) {
168 imp->_merge = IsDlgButtonChecked(hWnd, IDC_MERGE);
169 imp->_importmodel = IsDlgButtonChecked(hWnd, IDC_IMPORTMODEL);
170 imp->_importanim = IsDlgButtonChecked(hWnd, IDC_IMPORTANIM);
185 DoImport(
const TCHAR *name, ImpInterface *ii, Interface *i, BOOL suppressPrompts) {
187 if (!DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_IMPORT_DLG),
188 i->GetMAXHWnd(), ImportDlgProc, (LPARAM)
this)) {
192 std::ostringstream log;
198 wcstombs(sname, name, 2047);
199 bool ok = MaxLoadEggFile(sname, _merge ?
true:
false, _importmodel ?
true:
false, _importanim ?
true:
false);
201 bool ok = MaxLoadEggFile(name, _merge ?
true:
false, _importmodel ?
true:
false, _importanim ?
true:
false);
204 string txt = log.str();
206 MessageBoxA(NULL, txt.c_str(),
"Panda3D Importer", MB_OK);
208 MessageBoxA(NULL,
"Import Failed, unknown reason\n",
"Panda3D Importer", MB_OK);
227 BOOL WINAPI DllMain(HINSTANCE hinstDLL,ULONG fdwReason,LPVOID lpvReserved) {
228 static int controlsInit = FALSE;
229 hInstance = hinstDLL;
236 #if MAX_VERSION_MAJOR < 14 237 InitCustomControls(hInstance);
239 InitCommonControls();
245 #define PANDAEGGIMP_CLASS_ID1 0x377193ab 246 #define PANDAEGGIMP_CLASS_ID2 0x897afe12 250 int IsPublic() {
return 1;}
252 const TCHAR *ClassName() {
return _T(
"MaxEggImporter");}
253 SClass_ID SuperClassID() {
return SCENE_IMPORT_CLASS_ID;}
254 Class_ID ClassID() {
return Class_ID(PANDAEGGIMP_CLASS_ID1,PANDAEGGIMP_CLASS_ID2);}
255 const TCHAR *Category() {
return _T(
"Chrutilities");}
260 __declspec( dllexport )
const TCHAR* LibDescription()
262 return _T(
"Panda3D Egg Importer");
265 __declspec( dllexport )
int LibNumberClasses()
270 __declspec( dllexport ) ClassDesc* LibClassDesc(
int i)
273 case 0:
return &MaxEggImporterDesc;
278 __declspec( dllexport ) ULONG LibVersion()
280 return VERSION_3DSMAX;
static Notify * ptr()
Returns the pointer to the global Notify object.
void set_ostream_ptr(ostream *ostream_ptr, bool delete_later)
Changes the ostream that all subsequent Notify messages will be written to.