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

RWGltf_TriangulationReader Class Reference

RWMesh_TriangulationReader implementation creating Poly_Triangulation. More...

#include <RWGltf_TriangulationReader.hxx>

Inheritance diagram for RWGltf_TriangulationReader:
Inheritance graph
[legend]

Public Member Functions

 RWGltf_TriangulationReader ()
 Empty constructor. More...
 
bool LoadStreamData (const Handle< RWMesh_TriangulationSource > &theSourceMesh, const Handle< Poly_Triangulation > &theDestMesh) const
 Loads only primitive arrays saved as stream buffer (it is primarily glTF data encoded in base64 saved to temporary buffer during glTF file reading). More...
 
- Public Member Functions inherited from RWMesh_TriangulationReader
 RWMesh_TriangulationReader ()
 Constructor. More...
 
virtual ~RWMesh_TriangulationReader ()
 Destructor. More...
 
const TCollection_AsciiStringFileName () const
 Returns file name for reporting issues. More...
 
void SetFileName (const TCollection_AsciiString &theFileName)
 Sets file name for reporting issues. More...
 
const RWMesh_CoordinateSystemConverterCoordinateSystemConverter () const
 Returns coordinate system converter using for correct data loading. More...
 
void SetCoordinateSystemConverter (const RWMesh_CoordinateSystemConverter &theConverter)
 Sets coordinate system converter. More...
 
bool IsDoublePrecision () const
 Returns flag to fill in triangulation using double or single precision; FALSE by default. More...
 
void SetDoublePrecision (bool theIsDouble)
 Sets flag to fill in triangulation using double or single precision. More...
 
Standard_Boolean ToSkipDegenerates () const
 Returns TRUE if degenerated triangles should be skipped during mesh loading (only indexes will be checked). More...
 
void SetToSkipDegenerates (const Standard_Boolean theToSkip)
 Sets flag to skip degenerated triangles during mesh loading (only indexes will be checked). More...
 
Standard_Boolean ToPrintDebugMessages () const
 Returns TRUE if additional debug information should be print. More...
 
void SetToPrintDebugMessages (const Standard_Boolean theToPrint)
 Sets flag to print debug information. More...
 
void StartStatistic ()
 Starts and reset internal object that accumulates nodes/triangles statistic during data reading. More...
 
void StopStatistic ()
 Stops and nullify internal object that accumulates nodes/triangles statistic during data reading. More...
 
void PrintStatistic () const
 Prints loading statistic. This method should be used between StartStatistic() and StopStatistic() calls for correct results. More...
 
bool Load (const Handle< RWMesh_TriangulationSource > &theSourceMesh, const Handle< Poly_Triangulation > &theDestMesh, const Handle< OSD_FileSystem > &theFileSystem) const
 Loads primitive array. 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 void reportError (const TCollection_AsciiString &theText) const
 Reports error. More...
 
virtual bool load (const Handle< RWMesh_TriangulationSource > &theSourceMesh, const Handle< Poly_Triangulation > &theDestMesh, const Handle< OSD_FileSystem > &theFileSystem) const override
 Loads only primitive arrays from file data. More...
 
virtual bool finalizeLoading (const Handle< RWMesh_TriangulationSource > &theSourceMesh, const Handle< Poly_Triangulation > &theDestMesh) const override
 Performs additional actions to finalize data loading. More...
 
bool loadStreamData (const Handle< RWMesh_TriangulationSource > &theSourceMesh, const Handle< Poly_Triangulation > &theDestMesh, bool theToResetStream=true) const
 Loads only primitive arrays saved as stream buffer (it is primarily glTF data encoded in base64 saved to temporary buffer during glTF file reading). More...
 
bool readStreamData (const Handle< RWGltf_GltfLatePrimitiveArray > &theSourceGltfMesh, const RWGltf_GltfPrimArrayData &theGltfData, const Handle< Poly_Triangulation > &theDestMesh) const
 Reads primitive array from stream data. More...
 
bool readFileData (const Handle< RWGltf_GltfLatePrimitiveArray > &theSourceGltfMesh, const RWGltf_GltfPrimArrayData &theGltfData, const Handle< Poly_Triangulation > &theDestMesh, const Handle< OSD_FileSystem > &theFileSystem) const
 Reads primitive array from file data. More...
 
virtual bool readBuffer (const Handle< RWGltf_GltfLatePrimitiveArray > &theSourceGltfMesh, const Handle< Poly_Triangulation > &theDestMesh, std::istream &theStream, const RWGltf_GltfAccessor &theAccessor, RWGltf_GltfArrayType theType) const
 Fills triangulation data and ignore non-triangulation primitives. More...
 
virtual bool readDracoBuffer (const Handle< RWGltf_GltfLatePrimitiveArray > &theSourceGltfMesh, const RWGltf_GltfPrimArrayData &theGltfData, const Handle< Poly_Triangulation > &theDestMesh, const Handle< OSD_FileSystem > &theFileSystem) const
 Reads primitive array from file data compressed in Draco format. More...
 
- Protected Member Functions inherited from RWMesh_TriangulationReader
virtual bool setNbPositionNodes (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theNbNodes, Standard_Boolean theToCopyData=false) const
 Resizes array of position nodes to specified size. More...
 
virtual void setNodePosition (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theIndex, const gp_Pnt &thePnt) const
 Sets node position. More...
 
virtual bool setNbUVNodes (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theNbNodes) const
 Resizes array of UV nodes to specified size. More...
 
virtual void setNodeUV (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theIndex, const gp_Pnt2d &theUV) const
 Sets node UV texture coordinates. More...
 
virtual bool setNbNormalNodes (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theNbNodes) const
 Resizes array of nodes normals to specified size. More...
 
virtual void setNodeNormal (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theIndex, const gp_Vec3f &theNormal) const
 Sets node normal. More...
 
virtual bool setNbTriangles (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theNbTris, Standard_Boolean theToCopyData=false) const
 Resizes array of triangles to specified size. More...
 
virtual Standard_Integer setTriangle (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theIndex, const Poly_Triangle &theTriangle) const
 Adds triangle element. More...
 

Protected Attributes

Handle< Poly_TriangulationmyTriangulation
 
- Protected Attributes inherited from RWMesh_TriangulationReader
RWMesh_CoordinateSystemConverter myCoordSysConverter
 coordinate system converter More...
 
TCollection_AsciiString myFileName
 file name to use during message printing More...
 
Standard_Mutex myMutex
 internal mutex to collect nodes/triangles statistic More...
 
LoadingStatisticmyLoadingStatistic
 statistic of loaded triangulation More...
 
Standard_Boolean myIsDoublePrecision
 flag to fill in triangulation using single or double precision More...
 
Standard_Boolean myToSkipDegenerateTris
 flag to skip degenerate triangles during loading, FALSE by default More...
 
Standard_Boolean myToPrintDebugMessages
 flag to print additional debug information 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...
 

Detailed Description

RWMesh_TriangulationReader implementation creating Poly_Triangulation.

Constructor & Destructor Documentation

◆ RWGltf_TriangulationReader()

RWGltf_TriangulationReader::RWGltf_TriangulationReader ( )

Empty constructor.

Member Function Documentation

◆ finalizeLoading()

virtual bool RWGltf_TriangulationReader::finalizeLoading ( const Handle< RWMesh_TriangulationSource > &  theSourceMesh,
const Handle< Poly_Triangulation > &  theDestMesh 
) const
overrideprotectedvirtual

Performs additional actions to finalize data loading.

Parameters
theSourceMeshsource triangulation
theDestMeshtriangulation to be modified

Reimplemented from RWMesh_TriangulationReader.

◆ load()

virtual bool RWGltf_TriangulationReader::load ( const Handle< RWMesh_TriangulationSource > &  theSourceMesh,
const Handle< Poly_Triangulation > &  theDestMesh,
const Handle< OSD_FileSystem > &  theFileSystem 
) const
overrideprotectedvirtual

Loads only primitive arrays from file data.

Parameters
theSourceMeshsource triangulation
theDestMeshtriangulation to be modified
theFileSystemshared file system to read from Note: this method skips "stream data" that should be loaded by LoadStreamData() call.

Implements RWMesh_TriangulationReader.

◆ LoadStreamData()

bool RWGltf_TriangulationReader::LoadStreamData ( const Handle< RWMesh_TriangulationSource > &  theSourceMesh,
const Handle< Poly_Triangulation > &  theDestMesh 
) const

Loads only primitive arrays saved as stream buffer (it is primarily glTF data encoded in base64 saved to temporary buffer during glTF file reading).

◆ loadStreamData()

bool RWGltf_TriangulationReader::loadStreamData ( const Handle< RWMesh_TriangulationSource > &  theSourceMesh,
const Handle< Poly_Triangulation > &  theDestMesh,
bool  theToResetStream = true 
) const
protected

Loads only primitive arrays saved as stream buffer (it is primarily glTF data encoded in base64 saved to temporary buffer during glTF file reading).

Parameters
theSourceMeshsource triangulation
theDestMeshtriangulation to be modified
theToResetStreamif TRUE reset input stream data buffer after its loading.

◆ readBuffer()

virtual bool RWGltf_TriangulationReader::readBuffer ( const Handle< RWGltf_GltfLatePrimitiveArray > &  theSourceGltfMesh,
const Handle< Poly_Triangulation > &  theDestMesh,
std::istream &  theStream,
const RWGltf_GltfAccessor theAccessor,
RWGltf_GltfArrayType  theType 
) const
protectedvirtual

Fills triangulation data and ignore non-triangulation primitives.

Parameters
theSourceGltfMeshsource glTF triangulation
theDestMeshtriangulation to be modified
theStreaminput stream to read from
theAccessorbuffer accessor
theTypearray type
Returns
FALSE on error

◆ readDracoBuffer()

virtual bool RWGltf_TriangulationReader::readDracoBuffer ( const Handle< RWGltf_GltfLatePrimitiveArray > &  theSourceGltfMesh,
const RWGltf_GltfPrimArrayData theGltfData,
const Handle< Poly_Triangulation > &  theDestMesh,
const Handle< OSD_FileSystem > &  theFileSystem 
) const
protectedvirtual

Reads primitive array from file data compressed in Draco format.

Parameters
theSourceGltfMeshsource glTF triangulation
theGltfDataprimitive array element (Uri of file stream should not be empty)
theDestMeshtriangulation to be modified
theFileSystemshared file system to read from

◆ readFileData()

bool RWGltf_TriangulationReader::readFileData ( const Handle< RWGltf_GltfLatePrimitiveArray > &  theSourceGltfMesh,
const RWGltf_GltfPrimArrayData theGltfData,
const Handle< Poly_Triangulation > &  theDestMesh,
const Handle< OSD_FileSystem > &  theFileSystem 
) const
protected

Reads primitive array from file data.

Parameters
theSourceGltfMeshsource glTF triangulation
theGltfDataprimitive array element (Uri of file stream should not be empty)
theDestMeshtriangulation to be modified
theFileSystemshared file system to read from

◆ readStreamData()

bool RWGltf_TriangulationReader::readStreamData ( const Handle< RWGltf_GltfLatePrimitiveArray > &  theSourceGltfMesh,
const RWGltf_GltfPrimArrayData theGltfData,
const Handle< Poly_Triangulation > &  theDestMesh 
) const
protected

Reads primitive array from stream data.

Parameters
theSourceGltfMeshsource glTF triangulation
theGltfDataprimitive array element (stream data should not be NULL)
theDestMeshtriangulation to be modified

◆ reportError()

virtual void RWGltf_TriangulationReader::reportError ( const TCollection_AsciiString theText) const
protectedvirtual

Reports error.

Field Documentation

◆ myTriangulation

Handle< Poly_Triangulation > RWGltf_TriangulationReader::myTriangulation
protected

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