0029303: Data Exchange - add RWObj_CafWriter tool for wavefront OBJ file
[occt.git] / src / RWObj / RWObj_ObjMaterialMap.hxx
1 // Copyright (c) 2015-2021 OPEN CASCADE SAS
2 //
3 // This file is part of Open CASCADE Technology software library.
4 //
5 // This library is free software; you can redistribute it and/or modify it under
6 // the terms of the GNU Lesser General Public License version 2.1 as published
7 // by the Free Software Foundation, with special exception defined in the file
8 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9 // distribution for complete text of the license and disclaimer of any warranty.
10 //
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
13
14 #ifndef _RWObj_ObjMaterialMap_HeaderFiler
15 #define _RWObj_ObjMaterialMap_HeaderFiler
16
17 #include <RWMesh_MaterialMap.hxx>
18
19 //! Material MTL file writer for OBJ export.
20 class RWObj_ObjMaterialMap : public RWMesh_MaterialMap
21 {
22   DEFINE_STANDARD_RTTIEXT(RWObj_ObjMaterialMap, RWMesh_MaterialMap)
23 public:
24
25   //! Main constructor.
26   Standard_EXPORT RWObj_ObjMaterialMap (const TCollection_AsciiString& theFile);
27
28   //! Destructor, will emit error message if file was not closed.
29   Standard_EXPORT virtual ~RWObj_ObjMaterialMap();
30
31   //! Add material
32   Standard_EXPORT virtual TCollection_AsciiString AddMaterial (const XCAFPrs_Style& theStyle) Standard_OVERRIDE;
33
34   //! Virtual method actually defining the material (e.g. export to the file).
35   Standard_EXPORT virtual void DefineMaterial (const XCAFPrs_Style& theStyle,
36                                                const TCollection_AsciiString& theKey,
37                                                const TCollection_AsciiString& theName) Standard_OVERRIDE;
38
39 private:
40
41   FILE* myFile;
42   NCollection_DataMap<Handle(Image_Texture), TCollection_AsciiString, Image_Texture> myImageMap;
43
44 };
45
46 #endif // _RWObj_ObjMaterialMap_HeaderFiler