00001 /********************************************************************** 00002 *< 00003 FILE: impexp.h 00004 00005 DESCRIPTION: Includes for importing and exporting geometry files 00006 00007 CREATED BY: Tom Hudson 00008 00009 HISTORY: Created 26 December 1994 00010 00011 *> Copyright (c) 1994, All Rights Reserved. 00012 **********************************************************************/ 00013 00014 00015 #pragma once 00016 00017 #include <WTypes.h> 00018 #include "maxheap.h" 00019 #include "buildver.h" 00020 #include "strbasic.h" 00021 00022 // forward declarations 00023 class ImpInterface; 00024 class ExpInterface; 00025 class Interface; 00026 00027 // Returned by DoImport, DoExport 00028 #define IMPEXP_FAIL 0 00029 #define IMPEXP_SUCCESS 1 00030 #define IMPEXP_CANCEL 2 00031 00032 // SceneImport::ZoomExtents return values 00033 #define ZOOMEXT_NOT_IMPLEMENTED -1 // The default (uses Preferences value) 00034 #define ZOOMEXT_YES TRUE // Zoom extents after import 00035 #define ZOOMEXT_NO FALSE // No zoom extents 00036 00037 // The scene import/export classes. Right now, these are very similar, but this may change as things develop 00038 00044 class SceneImport : public MaxHeapOperators 00045 { 00046 public: 00048 SceneImport() {}; 00050 virtual ~SceneImport() {}; 00051 00053 virtual int ExtCount() = 0; 00054 00059 virtual const MCHAR * Ext(int n) = 0; // Extension #n (i.e. "3DS") 00062 virtual const MCHAR * LongDesc() = 0; // Long ASCII description (i.e. "Autodesk 3D Studio File") 00065 virtual const MCHAR * ShortDesc() = 0; // Short ASCII description (i.e. "3D Studio") 00067 virtual const MCHAR * AuthorName() = 0; // ASCII Author name 00068 00070 virtual const MCHAR * CopyrightMessage() = 0; // ASCII Copyright message 00072 virtual const MCHAR * OtherMessage1() = 0; // Other message #1 00074 virtual const MCHAR * OtherMessage2() = 0; // Other message #2 00077 virtual unsigned int Version() = 0; // Version number * 100 (i.e. v3.01 = 301) 00078 00083 virtual void ShowAbout(HWND hWnd) = 0; // Show DLL's "About..." box 00084 00105 virtual int DoImport(const MCHAR *name,ImpInterface *ii,Interface *i, BOOL suppressPrompts=FALSE) = 0; // Import file 00106 00123 virtual int ZoomExtents() { return ZOOMEXT_NOT_IMPLEMENTED; } // Override this for zoom extents control 00124 }; 00125 00126 // SceneExport::DoExport options flags: 00127 #define SCENE_EXPORT_SELECTED (1<<0) 00128 00134 class SceneExport : public MaxHeapOperators 00135 { 00136 public: 00138 SceneExport() {}; 00140 virtual ~SceneExport() {}; 00142 virtual int ExtCount() = 0; 00143 00148 virtual const MCHAR * Ext(int n) = 0; // Extension #n (i.e. "3DS") 00151 virtual const MCHAR * LongDesc() = 0; // Long ASCII description (i.e. "Autodesk 3D Studio File") 00152 00155 virtual const MCHAR * ShortDesc() = 0; // Short ASCII description (i.e. "3D Studio") 00156 00158 virtual const MCHAR * AuthorName() = 0; // ASCII Author name 00160 virtual const MCHAR * CopyrightMessage() = 0; // ASCII Copyright message 00162 virtual const MCHAR * OtherMessage1() = 0; // Other message #1 00163 00165 virtual const MCHAR * OtherMessage2() = 0; // Other message #2 00168 virtual unsigned int Version() = 0; // Version number * 100 (i.e. v3.01 = 301) 00173 virtual void ShowAbout(HWND hWnd) = 0; // Show DLL's "About..." box 00174 00202 virtual int DoExport(const MCHAR *name,ExpInterface *ei,Interface *i, BOOL suppressPrompts=FALSE, DWORD options=0) = 0; // Export file 00203 00224 virtual BOOL SupportsOptions(int ext, DWORD options) { UNUSED_PARAM(ext); UNUSED_PARAM(options); return FALSE;} 00225 }; 00226 00227