Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
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.
 
bool LoadStreamData (const occ::handle< RWMesh_TriangulationSource > &theSourceMesh, const occ::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).
 
bool ReadStream (const occ::handle< RWGltf_GltfLatePrimitiveArray > &theSourceMesh, const occ::handle< Poly_Triangulation > &theDestMesh, std::istream &theStream, const RWGltf_GltfAccessor &theAccessor, RWGltf_GltfArrayType theType) const
 Fills triangulation, lines and points data.
 
- Public Member Functions inherited from RWMesh_TriangulationReader
 RWMesh_TriangulationReader ()
 Constructor.
 
 ~RWMesh_TriangulationReader () override
 Destructor.
 
const TCollection_AsciiStringFileName () const
 Returns file name for reporting issues.
 
void SetFileName (const TCollection_AsciiString &theFileName)
 Sets file name for reporting issues.
 
const RWMesh_CoordinateSystemConverterCoordinateSystemConverter () const
 Returns coordinate system converter using for correct data loading.
 
void SetCoordinateSystemConverter (const RWMesh_CoordinateSystemConverter &theConverter)
 Sets coordinate system converter.
 
bool IsDoublePrecision () const
 Returns flag to fill in triangulation using double or single precision; FALSE by default.
 
void SetDoublePrecision (bool theIsDouble)
 Sets flag to fill in triangulation using double or single precision.
 
bool ToSkipDegenerates () const
 Returns TRUE if degenerated triangles should be skipped during mesh loading (only indexes will be checked).
 
void SetToSkipDegenerates (const bool theToSkip)
 Sets flag to skip degenerated triangles during mesh loading (only indexes will be checked).
 
bool ToPrintDebugMessages () const
 Returns TRUE if additional debug information should be print.
 
void SetToPrintDebugMessages (const bool theToPrint)
 Sets flag to print debug information.
 
void StartStatistic ()
 Starts and reset internal object that accumulates nodes/triangles statistic during data reading.
 
void StopStatistic ()
 Stops and nullify internal object that accumulates nodes/triangles statistic during data reading.
 
void PrintStatistic () const
 Prints loading statistic. This method should be used between StartStatistic() and StopStatistic() calls for correct results.
 
bool Load (const occ::handle< RWMesh_TriangulationSource > &theSourceMesh, const occ::handle< Poly_Triangulation > &theDestMesh, const occ::handle< OSD_FileSystem > &theFileSystem) const
 Loads primitive array.
 
- 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 ()=default
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
bool IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
bool IsInstance (const char *const theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
bool 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.
 
bool IsKind (const char *const 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.
 
int GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object. Uses relaxed memory ordering since incrementing only requires atomicity, not synchronization with other memory operations.
 
int DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value. Uses release ordering for the decrement to ensure all writes to the object are visible before the count reaches zero. An acquire fence is added only when the count reaches zero, ensuring proper synchronization before deletion. This is more efficient than using acq_rel for every decrement.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Protected Member Functions

virtual void reportError (const TCollection_AsciiString &theText) const
 Reports error.
 
bool load (const occ::handle< RWMesh_TriangulationSource > &theSourceMesh, const occ::handle< Poly_Triangulation > &theDestMesh, const occ::handle< OSD_FileSystem > &theFileSystem) const override
 Loads only primitive arrays from file data.
 
bool finalizeLoading (const occ::handle< RWMesh_TriangulationSource > &theSourceMesh, const occ::handle< Poly_Triangulation > &theDestMesh) const override
 Performs additional actions to finalize data loading.
 
bool loadStreamData (const occ::handle< RWMesh_TriangulationSource > &theSourceMesh, const occ::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).
 
bool readStreamData (const occ::handle< RWGltf_GltfLatePrimitiveArray > &theSourceGltfMesh, const RWGltf_GltfPrimArrayData &theGltfData, const occ::handle< Poly_Triangulation > &theDestMesh) const
 Reads primitive array from stream data.
 
bool readFileData (const occ::handle< RWGltf_GltfLatePrimitiveArray > &theSourceGltfMesh, const RWGltf_GltfPrimArrayData &theGltfData, const occ::handle< Poly_Triangulation > &theDestMesh, const occ::handle< OSD_FileSystem > &theFileSystem) const
 Reads primitive array from file data.
 
virtual bool readBuffer (const occ::handle< RWGltf_GltfLatePrimitiveArray > &theSourceGltfMesh, const occ::handle< Poly_Triangulation > &theDestMesh, std::istream &theStream, const RWGltf_GltfAccessor &theAccessor, RWGltf_GltfArrayType theType) const
 Fills triangulation data and ignore non-triangulation primitives.
 
virtual bool readDracoBuffer (const occ::handle< RWGltf_GltfLatePrimitiveArray > &theSourceGltfMesh, const RWGltf_GltfPrimArrayData &theGltfData, const occ::handle< Poly_Triangulation > &theDestMesh, const occ::handle< OSD_FileSystem > &theFileSystem) const
 Reads primitive array from file data compressed in Draco format.
 
- Protected Member Functions inherited from RWMesh_TriangulationReader
virtual bool setNbPositionNodes (const occ::handle< Poly_Triangulation > &theMesh, int theNbNodes, bool theToCopyData=false) const
 coordinate system converter
 
virtual void setNodePosition (const occ::handle< Poly_Triangulation > &theMesh, int theIndex, const gp_Pnt &thePnt) const
 Sets node position.
 
virtual bool setNbUVNodes (const occ::handle< Poly_Triangulation > &theMesh, int theNbNodes) const
 Resizes array of UV nodes to specified size.
 
virtual void setNodeUV (const occ::handle< Poly_Triangulation > &theMesh, int theIndex, const gp_Pnt2d &theUV) const
 Sets node UV texture coordinates.
 
virtual bool setNbNormalNodes (const occ::handle< Poly_Triangulation > &theMesh, int theNbNodes) const
 Resizes array of nodes normals to specified size.
 
virtual void setNodeNormal (const occ::handle< Poly_Triangulation > &theMesh, int theIndex, const NCollection_Vec3< float > &theNormal) const
 Sets node normal.
 
virtual bool setNbTriangles (const occ::handle< Poly_Triangulation > &theMesh, int theNbTris, bool theToCopyData=false) const
 Resizes array of triangles to specified size.
 
virtual int setTriangle (const occ::handle< Poly_Triangulation > &theMesh, int theIndex, const Poly_Triangle &theTriangle) const
 Adds triangle element.
 
virtual bool setNbEdges (const occ::handle< Poly_Triangulation > &theMesh, const int theNbEdges, const bool theToCopyData=false) const
 Resizes array of edges to specified size.
 
virtual int setEdge (const occ::handle< Poly_Triangulation > &theMesh, const int theIndex, const int theEdge) const
 Adds edge element.
 

Protected Attributes

occ::handle< RWMesh_TriangulationSourcemyTriangulation
 
- Protected Attributes inherited from RWMesh_TriangulationReader
RWMesh_CoordinateSystemConverter myCoordSysConverter
 coordinate system converter
 
TCollection_AsciiString myFileName
 file name to use during message printing
 
std::mutex myMutex
 internal mutex to collect nodes/triangles statistic
 
LoadingStatisticmyLoadingStatistic
 statistic of loaded triangulation
 
bool myIsDoublePrecision
 flag to fill in triangulation using single or double precision
 
bool myToSkipDegenerateTris
 flag to skip degenerate triangles during loading, FALSE by default
 
bool myToPrintDebugMessages
 flag to print additional debug information
 

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

RWMesh_TriangulationReader implementation creating Poly_Triangulation.

Constructor & Destructor Documentation

◆ RWGltf_TriangulationReader()

RWGltf_TriangulationReader::RWGltf_TriangulationReader ( )

Empty constructor.

Member Function Documentation

◆ finalizeLoading()

bool RWGltf_TriangulationReader::finalizeLoading ( const occ::handle< RWMesh_TriangulationSource > & theSourceMesh,
const occ::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()

bool RWGltf_TriangulationReader::load ( const occ::handle< RWMesh_TriangulationSource > & theSourceMesh,
const occ::handle< Poly_Triangulation > & theDestMesh,
const occ::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 occ::handle< RWMesh_TriangulationSource > & theSourceMesh,
const occ::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 occ::handle< RWMesh_TriangulationSource > & theSourceMesh,
const occ::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 occ::handle< RWGltf_GltfLatePrimitiveArray > & theSourceGltfMesh,
const occ::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 occ::handle< RWGltf_GltfLatePrimitiveArray > & theSourceGltfMesh,
const RWGltf_GltfPrimArrayData & theGltfData,
const occ::handle< Poly_Triangulation > & theDestMesh,
const occ::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 occ::handle< RWGltf_GltfLatePrimitiveArray > & theSourceGltfMesh,
const RWGltf_GltfPrimArrayData & theGltfData,
const occ::handle< Poly_Triangulation > & theDestMesh,
const occ::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

◆ ReadStream()

bool RWGltf_TriangulationReader::ReadStream ( const occ::handle< RWGltf_GltfLatePrimitiveArray > & theSourceMesh,
const occ::handle< Poly_Triangulation > & theDestMesh,
std::istream & theStream,
const RWGltf_GltfAccessor & theAccessor,
RWGltf_GltfArrayType theType ) const

Fills triangulation, lines and points data.

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

◆ readStreamData()

bool RWGltf_TriangulationReader::readStreamData ( const occ::handle< RWGltf_GltfLatePrimitiveArray > & theSourceGltfMesh,
const RWGltf_GltfPrimArrayData & theGltfData,
const occ::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

occ::handle<RWMesh_TriangulationSource> RWGltf_TriangulationReader::myTriangulation
protected

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