Open CASCADE Technology  7.5.0
Public Member Functions | Protected Member Functions | Protected Attributes

RWGltf_CafReader Class Reference

The glTF (GL Transmission Format) mesh reader into XDE document. More...

#include <RWGltf_CafReader.hxx>

Inheritance diagram for RWGltf_CafReader:
Inheritance graph
[legend]

Public Member Functions

 RWGltf_CafReader ()
 Empty constructor. More...
 
bool ToParallel () const
 Return TRUE if multithreaded optimizations are allowed; FALSE by default. More...
 
void SetParallel (bool theToParallel)
 Setup multithreaded execution. More...
 
bool ToSkipEmptyNodes ()
 Return TRUE if Nodes without Geometry should be ignored, TRUE by default. More...
 
void SetSkipEmptyNodes (bool theToSkip)
 Set flag to ignore nodes without Geometry. More...
 
bool ToUseMeshNameAsFallback ()
 Set flag to use Mesh name in case if Node name is empty, TRUE by default. More...
 
void SetMeshNameAsFallback (bool theToFallback)
 Set flag to use Mesh name in case if Node name is empty. More...
 
- Public Member Functions inherited from RWMesh_CafReader
 RWMesh_CafReader ()
 Empty constructor. More...
 
virtual ~RWMesh_CafReader ()
 Destructor. More...
 
const Handle< TDocStd_Document > & Document () const
 Return target document. More...
 
void SetDocument (const Handle< TDocStd_Document > &theDoc)
 Set target document. More...
 
const TCollection_AsciiStringRootPrefix () const
 Return prefix for generating root labels names. More...
 
void SetRootPrefix (const TCollection_AsciiString &theRootPrefix)
 Set prefix for generating root labels names. More...
 
Standard_Boolean ToFillIncompleteDocument () const
 Flag indicating if partially read file content should be put into the XDE document, TRUE by default. More...
 
void SetFillIncompleteDocument (Standard_Boolean theToFillIncomplete)
 Set flag allowing partially read file content to be put into the XDE document. More...
 
Standard_Integer MemoryLimitMiB () const
 Return memory usage limit in MiB, -1 by default which means no limit. More...
 
void SetMemoryLimitMiB (Standard_Integer theLimitMiB)
 Set memory usage limit in MiB; can be ignored by reader implementation! More...
 
const RWMesh_CoordinateSystemConverterCoordinateSystemConverter () const
 Return coordinate system converter. More...
 
void SetCoordinateSystemConverter (const RWMesh_CoordinateSystemConverter &theConverter)
 Set coordinate system converter. More...
 
Standard_Real SystemLengthUnit () const
 Return the length unit to convert into while reading the file, defined as scale factor for m (meters); -1.0 by default, which means that NO conversion will be applied. More...
 
void SetSystemLengthUnit (Standard_Real theUnits)
 Set system length units to convert into while reading the file, defined as scale factor for m (meters). More...
 
Standard_Boolean HasSystemCoordinateSystem () const
 Return TRUE if system coordinate system has been defined; FALSE by default. More...
 
const gp_Ax3SystemCoordinateSystem () const
 Return system coordinate system; UNDEFINED by default, which means that no conversion will be done. More...
 
void SetSystemCoordinateSystem (const gp_Ax3 &theCS)
 Set system origin coordinate system to perform conversion into during read. More...
 
void SetSystemCoordinateSystem (RWMesh_CoordinateSystem theCS)
 Set system origin coordinate system to perform conversion into during read. More...
 
Standard_Real FileLengthUnit () const
 Return the length unit to convert from while reading the file, defined as scale factor for m (meters). Can be undefined (-1.0) if file format is unitless. More...
 
void SetFileLengthUnit (Standard_Real theUnits)
 Set (override) file length units to convert from while reading the file, defined as scale factor for m (meters). More...
 
Standard_Boolean HasFileCoordinateSystem () const
 Return TRUE if file origin coordinate system has been defined. More...
 
const gp_Ax3FileCoordinateSystem () const
 Return file origin coordinate system; can be UNDEFINED, which means no conversion will be done. More...
 
void SetFileCoordinateSystem (const gp_Ax3 &theCS)
 Set (override) file origin coordinate system to perform conversion during read. More...
 
void SetFileCoordinateSystem (RWMesh_CoordinateSystem theCS)
 Set (override) file origin coordinate system to perform conversion during read. More...
 
bool Perform (const TCollection_AsciiString &theFile, const Message_ProgressRange &theProgress)
 Read the data from specified file. The Document instance should be set beforehand. More...
 
Standard_Integer ExtraStatus () const
 Return extended status flags. More...
 
TopoDS_Shape SingleShape () const
 Return result as a single shape. More...
 
const NCollection_IndexedMap< TCollection_AsciiString > & ExternalFiles () const
 Return the list of complementary files - external references (textures, data, etc.). More...
 
const TColStd_IndexedDataMapOfStringStringMetadata () const
 Return metadata map. More...
 
Standard_Boolean ProbeHeader (const TCollection_AsciiString &theFile, const Message_ProgressRange &theProgress=Message_ProgressRange())
 Read the header data from specified file without reading entire model. The main purpose is collecting metadata and external references - for copying model into a new location, for example. Can be NOT implemented (unsupported by format / reader). More...
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor. More...
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing. More...
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter. More...
 
virtual ~Standard_Transient ()
 Destructor must be virtual. More...
 
virtual void Delete () const
 Memory deallocator for transient classes. More...
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object. More...
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type. More...
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName. More...
 
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. More...
 
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. More...
 
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. More...
 
Standard_Integer GetRefCount () const
 Get the reference counter of this object. More...
 
void IncrementRefCounter () const
 Increments the reference counter of this object. More...
 
Standard_Integer DecrementRefCounter () const
 Decrements the reference counter of this object; returns the decremented value. More...
 

Protected Member Functions

virtual Standard_Boolean performMesh (const TCollection_AsciiString &theFile, const Message_ProgressRange &theProgress, const Standard_Boolean theToProbe) override
 Read the mesh from specified file. More...
 
virtual Handle< RWGltf_PrimitiveArrayReadercreateMeshReaderContext ()
 Create primitive array reader context. Can be overridden by sub-class to read triangulation into application-specific data structures instead of Poly_Triangulation. Default implementation creates RWGltf_TriangulationReader. More...
 
virtual Standard_Boolean readLateData (NCollection_Vector< TopoDS_Face > &theFaces, const TCollection_AsciiString &theFile, const Message_ProgressRange &theProgress)
 Read late data from RWGltf_GltfLatePrimitiveArray stored as Poly_Triangulation within faces. More...
 
- Protected Member Functions inherited from RWMesh_CafReader
virtual Standard_Boolean perform (const TCollection_AsciiString &theFile, const Message_ProgressRange &theProgress, const Standard_Boolean theToProbe)
 Read the data from specified file. Default implementation calls performMesh() and fills XDE document from collected shapes. More...
 
void fillDocument ()
 Fill document with new root shapes. More...
 
Standard_Boolean addShapeIntoDoc (CafDocumentTools &theTools, const TopoDS_Shape &theShape, const TDF_Label &theLabel, const TCollection_AsciiString &theParentName)
 Append new shape into the document (recursively). More...
 
Standard_Boolean addSubShapeIntoDoc (CafDocumentTools &theTools, const TopoDS_Shape &theShape, const TDF_Label &theParentLabel, const RWMesh_NodeAttributes &theAttribs)
 Append new sub-shape into the document (recursively). More...
 
void setShapeName (const TDF_Label &theLabel, const TopAbs_ShapeEnum theShapeType, const TCollection_AsciiString &theName, const TDF_Label &theParentLabel, const TCollection_AsciiString &theParentName)
 Put name attribute onto the label. More...
 
void setShapeStyle (const CafDocumentTools &theTools, const TDF_Label &theLabel, const XCAFPrs_Style &theStyle)
 Put color and material attributes onto the label. More...
 
void setShapeNamedData (const CafDocumentTools &theTools, const TDF_Label &theLabel, const Handle< TDataStd_NamedData > &theNameData)
 Put name data (metadata) attribute onto the label. More...
 
void generateNames (const TCollection_AsciiString &theFile, const Standard_Integer theRootLower, const Standard_Boolean theWithSubLabels)
 Generate names for root labels starting from specified index. More...
 

Protected Attributes

Standard_Boolean myToParallel
 flag to use multithreading; FALSE by default More...
 
Standard_Boolean myToSkipEmptyNodes
 ignore nodes without Geometry; TRUE by default More...
 
Standard_Boolean myUseMeshNameAsFallback
 flag to use Mesh name in case if Node name is empty, TRUE by default More...
 
- Protected Attributes inherited from RWMesh_CafReader
Handle< TDocStd_DocumentmyXdeDoc
 target document More...
 
TColStd_IndexedDataMapOfStringString myMetadata
 metadata map More...
 
NCollection_IndexedMap< TCollection_AsciiStringmyExternalFiles
 the list of complementary files - external references (textures, data, etc.) More...
 
TCollection_AsciiString myRootPrefix
 root folder for generating root labels names More...
 
TopTools_SequenceOfShape myRootShapes
 sequence of result root shapes More...
 
RWMesh_NodeAttributeMap myAttribMap
 map of per-shape attributes More...
 
RWMesh_CoordinateSystemConverter myCoordSysConverter
 coordinate system converter More...
 
Standard_Boolean myToFillDoc
 fill document from shape sequence More...
 
Standard_Boolean myToFillIncomplete
 fill the document with partially retrieved data even if reader has failed with error More...
 
Standard_Integer myMemoryLimitMiB
 memory usage limit More...
 
Standard_Integer myExtraStatus
 extra status bitmask More...
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object. More...
 
- Static Public Member Functions inherited from Standard_Transient
static const char * get_type_name ()
 Returns a type descriptor about this object. More...
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class. More...
 
- Static Protected Member Functions inherited from RWMesh_CafReader
static TCollection_AsciiString shapeTypeToString (TopAbs_ShapeEnum theType)
 Return shape type as string. More...
 

Detailed Description

The glTF (GL Transmission Format) mesh reader into XDE document.

Constructor & Destructor Documentation

◆ RWGltf_CafReader()

RWGltf_CafReader::RWGltf_CafReader ( )

Empty constructor.

Member Function Documentation

◆ createMeshReaderContext()

virtual Handle< RWGltf_PrimitiveArrayReader > RWGltf_CafReader::createMeshReaderContext ( )
protectedvirtual

Create primitive array reader context. Can be overridden by sub-class to read triangulation into application-specific data structures instead of Poly_Triangulation. Default implementation creates RWGltf_TriangulationReader.

◆ performMesh()

virtual Standard_Boolean RWGltf_CafReader::performMesh ( const TCollection_AsciiString theFile,
const Message_ProgressRange theProgress,
const Standard_Boolean  theToProbe 
)
overrideprotectedvirtual

Read the mesh from specified file.

Implements RWMesh_CafReader.

◆ readLateData()

virtual Standard_Boolean RWGltf_CafReader::readLateData ( NCollection_Vector< TopoDS_Face > &  theFaces,
const TCollection_AsciiString theFile,
const Message_ProgressRange theProgress 
)
protectedvirtual

Read late data from RWGltf_GltfLatePrimitiveArray stored as Poly_Triangulation within faces.

◆ SetMeshNameAsFallback()

void RWGltf_CafReader::SetMeshNameAsFallback ( bool  theToFallback)
inline

Set flag to use Mesh name in case if Node name is empty.

◆ SetParallel()

void RWGltf_CafReader::SetParallel ( bool  theToParallel)
inline

Setup multithreaded execution.

◆ SetSkipEmptyNodes()

void RWGltf_CafReader::SetSkipEmptyNodes ( bool  theToSkip)
inline

Set flag to ignore nodes without Geometry.

◆ ToParallel()

bool RWGltf_CafReader::ToParallel ( ) const
inline

Return TRUE if multithreaded optimizations are allowed; FALSE by default.

◆ ToSkipEmptyNodes()

bool RWGltf_CafReader::ToSkipEmptyNodes ( )
inline

Return TRUE if Nodes without Geometry should be ignored, TRUE by default.

◆ ToUseMeshNameAsFallback()

bool RWGltf_CafReader::ToUseMeshNameAsFallback ( )
inline

Set flag to use Mesh name in case if Node name is empty, TRUE by default.

Field Documentation

◆ myToParallel

Standard_Boolean RWGltf_CafReader::myToParallel
protected

flag to use multithreading; FALSE by default

◆ myToSkipEmptyNodes

Standard_Boolean RWGltf_CafReader::myToSkipEmptyNodes
protected

ignore nodes without Geometry; TRUE by default

◆ myUseMeshNameAsFallback

Standard_Boolean RWGltf_CafReader::myUseMeshNameAsFallback
protected

flag to use Mesh name in case if Node name is empty, TRUE by default


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