Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Data Structures | Public Member Functions | Protected Member Functions
RWMesh_TriangulationReader Class Referenceabstract

Interface for reading primitive array from the buffer. More...

#include <RWMesh_TriangulationReader.hxx>

Inheritance diagram for RWMesh_TriangulationReader:
Inheritance graph
[legend]

Data Structures

struct  LoadingStatistic
 

Public Member Functions

 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 bool load (const occ::handle< RWMesh_TriangulationSource > &theSourceMesh, const occ::handle< Poly_Triangulation > &theDestMesh, const occ::handle< OSD_FileSystem > &theFileSystem) const =0
 Loads primitive array.
 
virtual bool finalizeLoading (const occ::handle< RWMesh_TriangulationSource > &theSourceMesh, const occ::handle< Poly_Triangulation > &theDestMesh) const
 Performs additional actions to finalize data loading.
 

interface for filling triangulation data

Resizes array of position nodes to specified size.

Parameters
[in]theMeshtriangulation to be modified
[in]theNbNodesnodes number
[in]theToCopyDatacopy old nodes into new array
Returns
TRUE in case of success operation
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
 
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.
 

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

Interface for reading primitive array from the buffer.

Constructor & Destructor Documentation

◆ RWMesh_TriangulationReader()

RWMesh_TriangulationReader::RWMesh_TriangulationReader ( )

Constructor.

◆ ~RWMesh_TriangulationReader()

RWMesh_TriangulationReader::~RWMesh_TriangulationReader ( )
override

Destructor.

Member Function Documentation

◆ CoordinateSystemConverter()

const RWMesh_CoordinateSystemConverter & RWMesh_TriangulationReader::CoordinateSystemConverter ( ) const
inline

Returns coordinate system converter using for correct data loading.

◆ FileName()

const TCollection_AsciiString & RWMesh_TriangulationReader::FileName ( ) const
inline

Returns file name for reporting issues.

◆ finalizeLoading()

virtual bool RWMesh_TriangulationReader::finalizeLoading ( const occ::handle< RWMesh_TriangulationSource > & theSourceMesh,
const occ::handle< Poly_Triangulation > & theDestMesh ) const
protectedvirtual

Performs additional actions to finalize data loading.

Reimplemented in RWGltf_TriangulationReader.

◆ IsDoublePrecision()

bool RWMesh_TriangulationReader::IsDoublePrecision ( ) const
inline

Returns flag to fill in triangulation using double or single precision; FALSE by default.

◆ Load()

bool RWMesh_TriangulationReader::Load ( const occ::handle< RWMesh_TriangulationSource > & theSourceMesh,
const occ::handle< Poly_Triangulation > & theDestMesh,
const occ::handle< OSD_FileSystem > & theFileSystem ) const

Loads primitive array.

◆ load()

virtual bool RWMesh_TriangulationReader::load ( const occ::handle< RWMesh_TriangulationSource > & theSourceMesh,
const occ::handle< Poly_Triangulation > & theDestMesh,
const occ::handle< OSD_FileSystem > & theFileSystem ) const
protectedpure virtual

Loads primitive array.

Implemented in RWGltf_TriangulationReader.

◆ PrintStatistic()

void RWMesh_TriangulationReader::PrintStatistic ( ) const
inline

Prints loading statistic. This method should be used between StartStatistic() and StopStatistic() calls for correct results.

◆ SetCoordinateSystemConverter()

void RWMesh_TriangulationReader::SetCoordinateSystemConverter ( const RWMesh_CoordinateSystemConverter & theConverter)
inline

Sets coordinate system converter.

◆ SetDoublePrecision()

void RWMesh_TriangulationReader::SetDoublePrecision ( bool theIsDouble)
inline

Sets flag to fill in triangulation using double or single precision.

◆ setEdge()

virtual int RWMesh_TriangulationReader::setEdge ( const occ::handle< Poly_Triangulation > & theMesh,
const int theIndex,
const int theEdge ) const
protectedvirtual

Adds edge element.

Parameters
[in]theMeshtriangulation source to be modified
theIndexedge index starting from 1
theEdgeedge nodes starting from 1
Returns
0 if node indexes are out of range, 1 in case of success operation.

◆ SetFileName()

void RWMesh_TriangulationReader::SetFileName ( const TCollection_AsciiString & theFileName)
inline

Sets file name for reporting issues.

◆ setNbEdges()

virtual bool RWMesh_TriangulationReader::setNbEdges ( const occ::handle< Poly_Triangulation > & theMesh,
const int theNbEdges,
const bool theToCopyData = false ) const
protectedvirtual

Resizes array of edges to specified size.

Parameters
[in]theMeshtriangulation source to be modified
[in]theNbEdgeselements number
[in]theToCopyDatacopy old edges into new array
Returns
TRUE in case of success operation

◆ setNbNormalNodes()

virtual bool RWMesh_TriangulationReader::setNbNormalNodes ( const occ::handle< Poly_Triangulation > & theMesh,
int theNbNodes ) const
inlineprotectedvirtual

Resizes array of nodes normals to specified size.

Parameters
[in]theMeshtriangulation to be modified
[in]theNbNodesnodes number
Returns
TRUE in case of success operation

◆ setNbPositionNodes()

virtual bool RWMesh_TriangulationReader::setNbPositionNodes ( const occ::handle< Poly_Triangulation > & theMesh,
int theNbNodes,
bool theToCopyData = false ) const
inlineprotectedvirtual

coordinate system converter

◆ setNbTriangles()

virtual bool RWMesh_TriangulationReader::setNbTriangles ( const occ::handle< Poly_Triangulation > & theMesh,
int theNbTris,
bool theToCopyData = false ) const
inlineprotectedvirtual

Resizes array of triangles to specified size.

Parameters
[in]theMeshtriangulation to be modified
[in]theNbTriselements number
[in]theToCopyDatacopy old triangles into new array
Returns
TRUE in case of success operation

◆ setNbUVNodes()

virtual bool RWMesh_TriangulationReader::setNbUVNodes ( const occ::handle< Poly_Triangulation > & theMesh,
int theNbNodes ) const
inlineprotectedvirtual

Resizes array of UV nodes to specified size.

Parameters
[in]theMeshtriangulation to be modified
[in]theNbNodesnodes number
Returns
TRUE in case of success operation

◆ setNodeNormal()

virtual void RWMesh_TriangulationReader::setNodeNormal ( const occ::handle< Poly_Triangulation > & theMesh,
int theIndex,
const NCollection_Vec3< float > & theNormal ) const
inlineprotectedvirtual

Sets node normal.

Parameters
[in]theMeshtriangulation to be modified
theIndexnode index starting from 1
theNormalnode normal vector

◆ setNodePosition()

virtual void RWMesh_TriangulationReader::setNodePosition ( const occ::handle< Poly_Triangulation > & theMesh,
int theIndex,
const gp_Pnt & thePnt ) const
inlineprotectedvirtual

Sets node position.

Parameters
[in]theMeshtriangulation to be modified
[in]theIndexnode index starting from 1
[in]thePntnode position

◆ setNodeUV()

virtual void RWMesh_TriangulationReader::setNodeUV ( const occ::handle< Poly_Triangulation > & theMesh,
int theIndex,
const gp_Pnt2d & theUV ) const
inlineprotectedvirtual

Sets node UV texture coordinates.

Parameters
[in]theMeshtriangulation to be modified
[in]theIndexnode index starting from 1
[in]theUVnode UV coordinates

◆ SetToPrintDebugMessages()

void RWMesh_TriangulationReader::SetToPrintDebugMessages ( const bool theToPrint)
inline

Sets flag to print debug information.

◆ SetToSkipDegenerates()

void RWMesh_TriangulationReader::SetToSkipDegenerates ( const bool theToSkip)
inline

Sets flag to skip degenerated triangles during mesh loading (only indexes will be checked).

◆ setTriangle()

virtual int RWMesh_TriangulationReader::setTriangle ( const occ::handle< Poly_Triangulation > & theMesh,
int theIndex,
const Poly_Triangle & theTriangle ) const
inlineprotectedvirtual

Adds triangle element.

Parameters
[in]theMeshtriangulation to be modified
theIndextriangle index starting from 1
theTriangletriangle nodes starting from 1
Returns
0 if node indexes are out of range, -1 if triangle is degenerated and should be skipped, 1 in case of success operation.

◆ StartStatistic()

void RWMesh_TriangulationReader::StartStatistic ( )
inline

Starts and reset internal object that accumulates nodes/triangles statistic during data reading.

◆ StopStatistic()

void RWMesh_TriangulationReader::StopStatistic ( )
inline

Stops and nullify internal object that accumulates nodes/triangles statistic during data reading.

◆ ToPrintDebugMessages()

bool RWMesh_TriangulationReader::ToPrintDebugMessages ( ) const
inline

Returns TRUE if additional debug information should be print.

◆ ToSkipDegenerates()

bool RWMesh_TriangulationReader::ToSkipDegenerates ( ) const
inline

Returns TRUE if degenerated triangles should be skipped during mesh loading (only indexes will be checked).

Field Documentation

◆ myCoordSysConverter

RWMesh_CoordinateSystemConverter RWMesh_TriangulationReader::myCoordSysConverter
protected

coordinate system converter

◆ myFileName

TCollection_AsciiString RWMesh_TriangulationReader::myFileName
protected

file name to use during message printing

◆ myIsDoublePrecision

bool RWMesh_TriangulationReader::myIsDoublePrecision
protected

flag to fill in triangulation using single or double precision

◆ myLoadingStatistic

LoadingStatistic* RWMesh_TriangulationReader::myLoadingStatistic
mutableprotected

statistic of loaded triangulation

◆ myMutex

std::mutex RWMesh_TriangulationReader::myMutex
mutableprotected

internal mutex to collect nodes/triangles statistic

◆ myToPrintDebugMessages

bool RWMesh_TriangulationReader::myToPrintDebugMessages
protected

flag to print additional debug information

◆ myToSkipDegenerateTris

bool RWMesh_TriangulationReader::myToSkipDegenerateTris
protected

flag to skip degenerate triangles during loading, FALSE by default


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