Open CASCADE Technology  7.5.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. More...
 
virtual ~RWMesh_MaterialMap ()
 Destructor. More...
 
const XCAFPrs_StyleDefaultStyle () const
 Return default material definition to be used for nodes with only color defined. More...
 
void SetDefaultStyle (const XCAFPrs_Style &theStyle)
 Set default material definition to be used for nodes with only color defined. More...
 
TCollection_AsciiString FindMaterial (const XCAFPrs_Style &theStyle) const
 Find already registered material. More...
 
virtual TCollection_AsciiString AddMaterial (const XCAFPrs_Style &theStyle)
 Register material and return its name identifier. More...
 
virtual bool CreateTextureFolder ()
 Create texture folder "modelName/textures"; for example: MODEL: Path/ModelName.gltf IMAGES: Path/ModelName/textures/ Warning! Output folder is NOT cleared. More...
 
virtual bool CopyTexture (TCollection_AsciiString &theResTexture, const Handle< Image_Texture > &theTexture, const TCollection_AsciiString &theKey)
 Copy and rename texture file to the new location. More...
 
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). More...
 
bool IsFailed () const
 Return failed flag. More...
 

Static Protected Member Functions

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

Protected Attributes

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

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.

◆ 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.

◆ 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 >, 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

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: