Open CASCADE Technology 7.8.0
Public Member Functions | Static Protected Member Functions | Protected Attributes
RWMesh_MaterialMap Class Referenceabstract

Material manager. Provides an interface for collecting all materials within the document before writing it into file, and for copying associated image files (textures) into sub-folder near by exported model. More...

#include <RWMesh_MaterialMap.hxx>

Inheritance diagram for RWMesh_MaterialMap:
Inheritance graph
[legend]

Public Member Functions

 RWMesh_MaterialMap (const TCollection_AsciiString &theFile)
 Main constructor.
 
virtual ~RWMesh_MaterialMap ()
 Destructor.
 
const XCAFPrs_StyleDefaultStyle () const
 Return default material definition to be used for nodes with only color defined.
 
void SetDefaultStyle (const XCAFPrs_Style &theStyle)
 Set default material definition to be used for nodes with only color defined.
 
TCollection_AsciiString FindMaterial (const XCAFPrs_Style &theStyle) const
 Find already registered material.
 
virtual TCollection_AsciiString AddMaterial (const XCAFPrs_Style &theStyle)
 Register material and return its name identifier.
 
virtual bool CreateTextureFolder ()
 Create texture folder "modelName/textures"; for example: MODEL: Path/ModelName.gltf IMAGES: Path/ModelName/textures/ Warning! Output folder is NOT cleared.
 
virtual bool CopyTexture (TCollection_AsciiString &theResTexture, const Handle< Image_Texture > &theTexture, const TCollection_AsciiString &theKey)
 Copy and rename texture file to the new location.
 
virtual void DefineMaterial (const XCAFPrs_Style &theStyle, const TCollection_AsciiString &theKey, const TCollection_AsciiString &theName)=0
 Virtual method actually defining the material (e.g. export to the file).
 
bool IsFailed () const
 Return failed flag.
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor.
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing.
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter.
 
virtual ~Standard_Transient ()
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
Standard_Boolean IsKind (const opencascade::handle< Standard_Type > &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_Boolean IsKind (const Standard_CString theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_TransientThis () const
 Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero.
 
Standard_Integer GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object.
 
Standard_Integer DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Static Protected Member Functions

static bool copyFileTo (const TCollection_AsciiString &theFileSrc, const TCollection_AsciiString &theFileDst)
 Copy file to another place.
 

Protected Attributes

TCollection_AsciiString myFolder
 output folder for glTF file
 
TCollection_AsciiString myTexFolder
 output folder for images (full path)
 
TCollection_AsciiString myTexFolderShort
 output folder for images (short path)
 
TCollection_AsciiString myFileName
 output glTF file path
 
TCollection_AsciiString myShortFileNameBase
 output glTF file name without extension
 
TCollection_AsciiString myKeyPrefix
 prefix for generated keys
 
NCollection_DoubleMap< XCAFPrs_Style, TCollection_AsciiStringmyStyles
 map of processed styles
 
NCollection_Map< Handle< Image_Texture > > myImageFailMap
 map of images failed to be copied
 
XCAFPrs_Style myDefaultStyle
 default material definition to be used for nodes with only color defined
 
Standard_Integer myNbMaterials
 number of registered materials
 
Standard_Boolean myIsFailed
 flag indicating failure
 
Standard_Boolean myMatNameAsKey
 flag indicating usage of material name as key
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object.
 
- Static Public Member Functions inherited from Standard_Transient
static constexpr const charget_type_name ()
 Returns a type descriptor about this object.
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class.
 

Detailed Description

Material manager. Provides an interface for collecting all materials within the document before writing it into file, and for copying associated image files (textures) into sub-folder near by exported model.

Constructor & Destructor Documentation

◆ RWMesh_MaterialMap()

RWMesh_MaterialMap::RWMesh_MaterialMap ( const TCollection_AsciiString theFile)

Main constructor.

◆ ~RWMesh_MaterialMap()

virtual RWMesh_MaterialMap::~RWMesh_MaterialMap ( )
virtual

Destructor.

Member Function Documentation

◆ AddMaterial()

virtual TCollection_AsciiString RWMesh_MaterialMap::AddMaterial ( const XCAFPrs_Style theStyle)
virtual

Register material and return its name identifier.

Reimplemented in RWGltf_GltfMaterialMap, and RWObj_ObjMaterialMap.

◆ copyFileTo()

static bool RWMesh_MaterialMap::copyFileTo ( const TCollection_AsciiString theFileSrc,
const TCollection_AsciiString theFileDst 
)
staticprotected

Copy file to another place.

◆ CopyTexture()

virtual bool RWMesh_MaterialMap::CopyTexture ( TCollection_AsciiString theResTexture,
const Handle< Image_Texture > &  theTexture,
const TCollection_AsciiString theKey 
)
virtual

Copy and rename texture file to the new location.

Parameters
theResTexture[out] result texture file path (relative to the model)
theTexture[in] original texture
theKey[in] material key

◆ CreateTextureFolder()

virtual bool RWMesh_MaterialMap::CreateTextureFolder ( )
virtual

Create texture folder "modelName/textures"; for example: MODEL: Path/ModelName.gltf IMAGES: Path/ModelName/textures/ Warning! Output folder is NOT cleared.

◆ DefaultStyle()

const XCAFPrs_Style & RWMesh_MaterialMap::DefaultStyle ( ) const
inline

Return default material definition to be used for nodes with only color defined.

◆ DefineMaterial()

virtual void RWMesh_MaterialMap::DefineMaterial ( const XCAFPrs_Style theStyle,
const TCollection_AsciiString theKey,
const TCollection_AsciiString theName 
)
pure virtual

Virtual method actually defining the material (e.g. export to the file).

Implemented in RWGltf_GltfMaterialMap, and RWObj_ObjMaterialMap.

◆ FindMaterial()

TCollection_AsciiString RWMesh_MaterialMap::FindMaterial ( const XCAFPrs_Style theStyle) const
inline

Find already registered material.

◆ IsFailed()

bool RWMesh_MaterialMap::IsFailed ( ) const
inline

Return failed flag.

◆ SetDefaultStyle()

void RWMesh_MaterialMap::SetDefaultStyle ( const XCAFPrs_Style theStyle)
inline

Set default material definition to be used for nodes with only color defined.

Field Documentation

◆ myDefaultStyle

XCAFPrs_Style RWMesh_MaterialMap::myDefaultStyle
protected

default material definition to be used for nodes with only color defined

◆ myFileName

TCollection_AsciiString RWMesh_MaterialMap::myFileName
protected

output glTF file path

◆ myFolder

TCollection_AsciiString RWMesh_MaterialMap::myFolder
protected

output folder for glTF file

◆ myImageFailMap

NCollection_Map<Handle< Image_Texture > > RWMesh_MaterialMap::myImageFailMap
protected

map of images failed to be copied

◆ myIsFailed

Standard_Boolean RWMesh_MaterialMap::myIsFailed
protected

flag indicating failure

◆ myKeyPrefix

TCollection_AsciiString RWMesh_MaterialMap::myKeyPrefix
protected

prefix for generated keys

◆ myMatNameAsKey

Standard_Boolean RWMesh_MaterialMap::myMatNameAsKey
protected

flag indicating usage of material name as key

◆ myNbMaterials

Standard_Integer RWMesh_MaterialMap::myNbMaterials
protected

number of registered materials

◆ myShortFileNameBase

TCollection_AsciiString RWMesh_MaterialMap::myShortFileNameBase
protected

output glTF file name without extension

◆ myStyles

NCollection_DoubleMap<XCAFPrs_Style, TCollection_AsciiString> RWMesh_MaterialMap::myStyles
protected

map of processed styles

◆ myTexFolder

TCollection_AsciiString RWMesh_MaterialMap::myTexFolder
protected

output folder for images (full path)

◆ myTexFolderShort

TCollection_AsciiString RWMesh_MaterialMap::myTexFolderShort
protected

output folder for images (short path)


The documentation for this class was generated from the following file: