File indexing completed on 2026-09-27 09:18:53
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef _RWMesh_MaterialMap_HeaderFile
0015 #define _RWMesh_MaterialMap_HeaderFile
0016
0017 #include <NCollection_DoubleMap.hxx>
0018 #include <NCollection_Map.hxx>
0019 #include <XCAFPrs_Style.hxx>
0020
0021
0022
0023
0024 class RWMesh_MaterialMap : public Standard_Transient
0025 {
0026 DEFINE_STANDARD_RTTIEXT(RWMesh_MaterialMap, Standard_Transient)
0027 public:
0028
0029 Standard_EXPORT RWMesh_MaterialMap(const TCollection_AsciiString& theFile);
0030
0031
0032 Standard_EXPORT ~RWMesh_MaterialMap() override;
0033
0034
0035 const XCAFPrs_Style& DefaultStyle() const { return myDefaultStyle; }
0036
0037
0038 void SetDefaultStyle(const XCAFPrs_Style& theStyle) { myDefaultStyle = theStyle; }
0039
0040
0041 TCollection_AsciiString FindMaterial(const XCAFPrs_Style& theStyle) const
0042 {
0043 if (myStyles.IsBound1(theStyle))
0044 {
0045 return myStyles.Find1(theStyle);
0046 }
0047 return TCollection_AsciiString();
0048 }
0049
0050
0051 Standard_EXPORT virtual TCollection_AsciiString AddMaterial(const XCAFPrs_Style& theStyle);
0052
0053
0054
0055
0056
0057 Standard_EXPORT virtual bool CreateTextureFolder();
0058
0059
0060
0061
0062
0063 Standard_EXPORT virtual bool CopyTexture(TCollection_AsciiString& theResTexture,
0064 const occ::handle<Image_Texture>& theTexture,
0065 const TCollection_AsciiString& theKey);
0066
0067
0068 virtual void DefineMaterial(const XCAFPrs_Style& theStyle,
0069 const TCollection_AsciiString& theKey,
0070 const TCollection_AsciiString& theName) = 0;
0071
0072
0073 bool IsFailed() const { return myIsFailed; }
0074
0075 protected:
0076
0077 Standard_EXPORT static bool copyFileTo(const TCollection_AsciiString& theFileSrc,
0078 const TCollection_AsciiString& theFileDst);
0079
0080 protected:
0081 TCollection_AsciiString myFolder;
0082 TCollection_AsciiString myTexFolder;
0083 TCollection_AsciiString myTexFolderShort;
0084 TCollection_AsciiString myFileName;
0085 TCollection_AsciiString myShortFileNameBase;
0086 TCollection_AsciiString myKeyPrefix;
0087 NCollection_DoubleMap<XCAFPrs_Style, TCollection_AsciiString>
0088 myStyles;
0089 NCollection_Map<occ::handle<Image_Texture>> myImageFailMap;
0090
0091 XCAFPrs_Style myDefaultStyle;
0092
0093 int myNbMaterials;
0094 bool myIsFailed;
0095 bool myMatNameAsKey;
0096 };
0097
0098 #endif