Open CASCADE Technology  7.5.0
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
RWGltf_GltfMaterialMap Class Reference

Material manager for exporting into glTF format. More...

#include <RWGltf_GltfMaterialMap.hxx>

Inheritance diagram for RWGltf_GltfMaterialMap:
Inheritance graph
[legend]

Public Member Functions

 RWGltf_GltfMaterialMap (const TCollection_AsciiString &theFile, const Standard_Integer theDefSamplerId)
 Main constructor. More...
 
virtual ~RWGltf_GltfMaterialMap ()
 Destructor. More...
 
void AddImages (RWGltf_GltfOStreamWriter *theWriter, const XCAFPrs_Style &theStyle, Standard_Boolean &theIsStarted)
 Add material images. More...
 
void AddMaterial (RWGltf_GltfOStreamWriter *theWriter, const XCAFPrs_Style &theStyle, Standard_Boolean &theIsStarted)
 Add material. More...
 
void AddTextures (RWGltf_GltfOStreamWriter *theWriter, const XCAFPrs_Style &theStyle, Standard_Boolean &theIsStarted)
 Add material textures. More...
 
Standard_Integer NbImages () const
 Return extent of images map. More...
 
Standard_Integer NbTextures () const
 Return extent of textures map. More...
 
- Public Member Functions inherited from RWMesh_MaterialMap
 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 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...
 
bool IsFailed () const
 Return failed flag. More...
 

Static Public Member Functions

static const Handle< Image_Texture > & baseColorTexture (const Handle< XCAFDoc_VisMaterial > &theMat)
 Return base color texture. More...
 

Protected Member Functions

void addImage (RWGltf_GltfOStreamWriter *theWriter, const Handle< Image_Texture > &theTexture, Standard_Boolean &theIsStarted)
 Add texture image. More...
 
void addTexture (RWGltf_GltfOStreamWriter *theWriter, const Handle< Image_Texture > &theTexture, Standard_Boolean &theIsStarted)
 Add texture. More...
 
virtual TCollection_AsciiString AddMaterial (const XCAFPrs_Style &theStyle) override
 Add material. More...
 
virtual void DefineMaterial (const XCAFPrs_Style &theStyle, const TCollection_AsciiString &theKey, const TCollection_AsciiString &theName) override
 Virtual method actually defining the material (e.g. export to the file). More...
 

Protected Attributes

RWGltf_GltfOStreamWritermyWriter
 
NCollection_DoubleMap< Handle< Image_Texture >, TCollection_AsciiString, Image_Texture, TCollection_AsciiStringmyImageMap
 
NCollection_Map< Handle< Image_Texture >, Image_TexturemyTextureMap
 
Standard_Integer myDefSamplerId
 
Standard_Integer myNbImages
 
- Protected Attributes inherited from RWMesh_MaterialMap
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...
 

Additional Inherited Members

- Static Protected Member Functions inherited from RWMesh_MaterialMap
static bool copyFileTo (const TCollection_AsciiString &theFileSrc, const TCollection_AsciiString &theFileDst)
 Copy file to another place. More...
 

Detailed Description

Material manager for exporting into glTF format.

Constructor & Destructor Documentation

◆ RWGltf_GltfMaterialMap()

RWGltf_GltfMaterialMap::RWGltf_GltfMaterialMap ( const TCollection_AsciiString theFile,
const Standard_Integer  theDefSamplerId 
)

Main constructor.

◆ ~RWGltf_GltfMaterialMap()

virtual RWGltf_GltfMaterialMap::~RWGltf_GltfMaterialMap ( )
virtual

Destructor.

Member Function Documentation

◆ addImage()

void RWGltf_GltfMaterialMap::addImage ( RWGltf_GltfOStreamWriter theWriter,
const Handle< Image_Texture > &  theTexture,
Standard_Boolean theIsStarted 
)
protected

Add texture image.

◆ AddImages()

void RWGltf_GltfMaterialMap::AddImages ( RWGltf_GltfOStreamWriter theWriter,
const XCAFPrs_Style theStyle,
Standard_Boolean theIsStarted 
)

Add material images.

◆ AddMaterial() [1/2]

void RWGltf_GltfMaterialMap::AddMaterial ( RWGltf_GltfOStreamWriter theWriter,
const XCAFPrs_Style theStyle,
Standard_Boolean theIsStarted 
)

Add material.

◆ AddMaterial() [2/2]

virtual TCollection_AsciiString RWGltf_GltfMaterialMap::AddMaterial ( const XCAFPrs_Style theStyle)
overrideprotectedvirtual

Add material.

Reimplemented from RWMesh_MaterialMap.

◆ addTexture()

void RWGltf_GltfMaterialMap::addTexture ( RWGltf_GltfOStreamWriter theWriter,
const Handle< Image_Texture > &  theTexture,
Standard_Boolean theIsStarted 
)
protected

Add texture.

◆ AddTextures()

void RWGltf_GltfMaterialMap::AddTextures ( RWGltf_GltfOStreamWriter theWriter,
const XCAFPrs_Style theStyle,
Standard_Boolean theIsStarted 
)

Add material textures.

◆ baseColorTexture()

static const Handle< Image_Texture >& RWGltf_GltfMaterialMap::baseColorTexture ( const Handle< XCAFDoc_VisMaterial > &  theMat)
static

Return base color texture.

◆ DefineMaterial()

virtual void RWGltf_GltfMaterialMap::DefineMaterial ( const XCAFPrs_Style theStyle,
const TCollection_AsciiString theKey,
const TCollection_AsciiString theName 
)
overrideprotectedvirtual

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

Implements RWMesh_MaterialMap.

◆ NbImages()

Standard_Integer RWGltf_GltfMaterialMap::NbImages ( ) const
inline

Return extent of images map.

◆ NbTextures()

Standard_Integer RWGltf_GltfMaterialMap::NbTextures ( ) const
inline

Return extent of textures map.

Field Documentation

◆ myDefSamplerId

Standard_Integer RWGltf_GltfMaterialMap::myDefSamplerId
protected

◆ myImageMap

◆ myNbImages

Standard_Integer RWGltf_GltfMaterialMap::myNbImages
protected

◆ myTextureMap

NCollection_Map<Handle< Image_Texture >, Image_Texture> RWGltf_GltfMaterialMap::myTextureMap
protected

◆ myWriter

RWGltf_GltfOStreamWriter* RWGltf_GltfMaterialMap::myWriter
protected

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