Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 namespace mudbox {
00016
00018 class MBDLL_DECL FileExtension
00019 {
00020 public:
00021 enum Flags
00022 {
00023 flagNoTextureCoordinates = 1,
00024 flagNoVertexColors = 2,
00025 flagNoVertexNormals = 4
00026 };
00027
00028 private:
00029 QString m_sExtension;
00030 QString m_sDescription;
00031 enum Image::Format m_eImageFormat;
00032 enum Flags m_eFlags;
00033
00034 public:
00035 FileExtension( void ) {};
00036 FileExtension( const QString & sExtension, const QString & sDescription, enum Image::Format eImageFormat = Image::eUnknown );
00037 FileExtension( const QString & sExtension, const QString & sDescription, enum Flags eFlags );
00038 FileExtension( const FileExtension & );
00039 QString Extension( void ) const { return m_sExtension; }
00040 QString Description( void ) const { return m_sDescription; }
00041 enum Image::Format ImageFormat( void ) const { return m_eImageFormat; }
00042 enum Flags Flags( void ) { return m_eFlags; };
00043 };
00044
00058 class MBDLL_DECL Importer : public Node
00059 {
00060 DECLARE_CLASS;
00061
00065 virtual ~Importer();
00066
00071 virtual QString Extension( void ) const;
00072
00077 virtual QString Description( void ) const;
00078
00082 virtual QVector<FileExtension> SupportedExtensions( void ) const;
00083
00085 virtual bool IsSupported( const QString & sExtension ) const;
00086
00092 virtual void Import(
00093 const QString &sFileName,
00094 Scene::LoadData &cData
00095 );
00096
00103 virtual Scene* SceneCreatedByImporter();
00104
00108 void AddMesh( Mesh* pMesh );
00109
00110 protected:
00111
00115 Importer();
00116
00120 aptr<Scene> m_pScene;
00121 };
00122
00133 class MBDLL_DECL Exporter : public Node
00134 {
00135 DECLARE_CLASS;
00136
00141 virtual QString Extension( void ) const;
00142
00147 virtual QString Description( void ) const;
00148
00152 virtual QVector<FileExtension> SupportedExtensions( void ) const;
00153
00155 virtual bool IsSupported( const QString & sExtension ) const;
00156
00161 virtual void Export(
00162 const QString &sFileName,
00163 const QString &sFormat = QString()
00164 );
00165
00167 virtual void SetMeshCount(
00168 unsigned int iMeshCount
00169 );
00170
00175 virtual void SetMesh(
00176 unsigned int iIndex,
00177 const Mesh *pMesh
00178 );
00179 };
00180
00185 class MBDLL_DECL ImageIOHandler : public Node
00186 {
00187 DECLARE_CLASS;
00188
00189 public:
00191 const QString &ImageName( void );
00193 const QString &ImageDescription( void );
00194
00197 virtual bool Import(const QString &sFileName, mudbox::Image *pImage);
00200 virtual bool Export(const QString &sFileName, mudbox::Image *pImage);
00201
00204 const QList<FileExtension> &SupportedExtensions( void );
00206 const QList<mudbox::PixelDescriptor> &SupportedFormats( void );
00207
00208 protected:
00210 QString m_sImageName;
00211
00213 QString m_sImageDescription;
00214
00216 QList<FileExtension> m_aExtensions;
00217
00219 QList<class mudbox::PixelDescriptor> m_aFormats;
00220 };
00221
00226 class MBDLL_DECL PaintLayerImporter : public Node
00227 {
00228 DECLARE_CLASS;
00229
00231 virtual QVector<FileExtension> SupportedExtensions( void ) const;
00232
00234 virtual bool Prepare(
00235 const QString &sFileName,
00236 Mesh *pMesh,
00237 bool bAsMask = false,
00238 bool bSilentMode = false
00239 );
00241 virtual bool Import(
00242 const QString &sFileName,
00243 int iFileTypeIndex,
00244 Mesh *pMesh,
00245 TexturePool *pTarget
00246 );
00247 };
00248
00254 class MBDLL_DECL PaintLayerExporter : public Node
00255 {
00256 DECLARE_CLASS;
00257
00259 virtual QVector<FileExtension> SupportedExtensions( void ) const;
00261 virtual void Export(
00262 const QString &sFileName,
00263 int iFileTypeIndex,
00264 const Mesh *pSourceSurface,
00265 TexturePool *pSource
00266 );
00267 };
00268
00269 };