importexport.h

Go to the documentation of this file.
00001 
00002 
00003 //**************************************************************************/
00004 
00005 // Copyright (c) 2008 Autodesk, Inc.
00006 
00007 // All rights reserved.
00008 
00009 //
00010 
00011 // Use of this software is subject to the terms of the Autodesk license
00012 
00013 // agreement provided at the time of installation or download, or which
00014 
00015 // otherwise accompanies this software in either electronic or hard copy form.
00016 
00017 //
00018 
00019 //**************************************************************************/
00020 
00021 // DESCRIPTION:
00022 
00023 // CREATED: October 2008
00024 
00025 //**************************************************************************/
00026 
00027 
00028 
00029 namespace mudbox {
00030 
00031 
00032 
00034 
00035 class MBDLL_DECL FileExtension
00036 
00037 {
00038 
00039 public:
00040 
00041     enum Flags
00042 
00043     {
00044 
00045         flagNoTextureCoordinates = 1,   
00046 
00047         flagNoVertexColors = 2,         
00048 
00049         flagNoVertexNormals = 4         
00050 
00051     };
00052 
00053 
00054 
00055 private:
00056 
00057     QString m_sExtension;
00058 
00059     QString m_sDescription;
00060 
00061     enum Image::Format m_eImageFormat;
00062 
00063     enum Flags m_eFlags;
00064 
00065 
00066 
00067 public:
00068 
00069     FileExtension( void ) {};
00070 
00071     FileExtension( const QString & sExtension, const QString & sDescription, enum Image::Format eImageFormat = Image::eUnknown );
00072 
00073     FileExtension( const QString & sExtension, const QString & sDescription, enum Flags eFlags );
00074 
00075     FileExtension( const FileExtension & );
00076 
00077     QString Extension( void ) const { return m_sExtension; }
00078 
00079     QString Description( void ) const { return m_sDescription; }
00080 
00081     enum Image::Format ImageFormat( void ) const { return m_eImageFormat; }
00082 
00083     enum Flags Flags( void ) { return m_eFlags; };
00084 
00085 };
00086 
00087 
00088 
00090 
00092 
00094 
00096 
00098 
00100 
00102 
00104 
00106 
00108 
00110 
00112 
00114 
00115 class MBDLL_DECL Importer : public Node
00116 
00117 {
00118 
00119     DECLARE_CLASS;
00120 
00121 
00122 
00124 
00126 
00128 
00129     virtual ~Importer();
00130 
00131 
00132 
00134 
00136 
00138 
00140 
00141     virtual QString Extension( void ) const;
00142 
00143     
00144 
00146 
00148 
00150 
00152 
00153     virtual QString Description( void ) const;
00154 
00155 
00156 
00158 
00160 
00162 
00163     virtual QVector<FileExtension> SupportedExtensions( void ) const;
00164 
00165 
00166 
00168 
00169     virtual bool IsSupported( const QString & sExtension ) const;
00170 
00171     
00172 
00174 
00176 
00178 
00180 
00182 
00183     virtual void Import(
00184 
00185         const QString &sFileName,       
00186 
00187         Scene::LoadData &cData          
00188 
00189         );
00190 
00191 
00192 
00194 
00196 
00198 
00200 
00202 
00204 
00205     virtual Scene* SceneCreatedByImporter();
00206 
00207 
00208 
00210 
00212 
00214 
00215     void AddMesh( Mesh* pMesh );
00216 
00217 
00218 
00219 protected:
00220 
00221 
00222 
00224 
00226 
00228 
00229     Importer();
00230 
00231 
00232 
00234 
00236 
00238 
00239     aptr<Scene> m_pScene;
00240 
00241 };
00242 
00243 
00244 
00246 
00248 
00250 
00252 
00254 
00256 
00258 
00260 
00262 
00264 
00265 class MBDLL_DECL Exporter : public Node
00266 
00267 {
00268 
00269     DECLARE_CLASS;
00270 
00271 
00272 
00274 
00276 
00278 
00280 
00281     virtual QString Extension( void ) const;
00282 
00283 
00284 
00286 
00288 
00290 
00292 
00293     virtual QString Description( void ) const;
00294 
00295 
00296 
00298 
00300 
00302 
00303     virtual QVector<FileExtension> SupportedExtensions( void ) const;
00304 
00305     
00306 
00308 
00309     virtual bool IsSupported( const QString & sExtension ) const;
00310 
00311 
00312 
00314 
00316 
00318 
00320 
00321     virtual void Export(
00322 
00323         const QString &sFileName,           
00324 
00325         const QString &sFormat = QString()  
00326 
00327         );
00328 
00329 
00330 
00332 
00333     virtual void SetMeshCount(
00334 
00335         unsigned int iMeshCount     
00336 
00337         );
00338 
00339         
00340 
00342 
00344 
00346 
00348 
00349     virtual void SetMesh(
00350 
00351         unsigned int iIndex,    
00352 
00353         const Mesh *pMesh       
00354 
00355         );
00356 
00357 };
00358 
00359 
00360 
00362 
00364 
00366 
00368 
00369 class MBDLL_DECL PaintLayerImporter : public Node
00370 
00371 {
00372 
00373     DECLARE_CLASS;
00374 
00375 
00376 
00378 
00379     virtual QVector<FileExtension> SupportedExtensions( void );
00380 
00382 
00383     virtual void Import( 
00384 
00385         const QString &sFileName,   
00386 
00387         int iFileTypeIndex,             
00388 
00389         Mesh *pMesh,                    
00390 
00391         TexturePool *pTarget            
00392 
00393         );
00394 
00395 };
00396 
00397 
00398 
00400 
00402 
00404 
00406 
00408 
00409 class MBDLL_DECL PaintLayerExporter : public Node
00410 
00411 {
00412 
00413     DECLARE_CLASS;
00414 
00415 
00416 
00418 
00419     virtual QVector<FileExtension> SupportedExtensions( void );
00420 
00422 
00423     virtual void Export( 
00424 
00425         const QString &sFileName,       
00426 
00427         int iFileTypeIndex,                 
00428 
00429         const Mesh *pSourceSurface, 
00430 
00431         TexturePool *pSource                
00432 
00433         );
00434 
00435 };
00436 
00437 
00438 
00439 }; // end of namespace mudbox
00440