Open CASCADE Technology 7.8.0
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.
 
virtual ~RWMesh_TriangulationReader ()
 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.
 
Standard_Boolean ToSkipDegenerates () const
 Returns TRUE if degenerated triangles should be skipped during mesh loading (only indexes will be checked).
 
void SetToSkipDegenerates (const Standard_Boolean theToSkip)
 Sets flag to skip degenerated triangles during mesh loading (only indexes will be checked).
 
Standard_Boolean ToPrintDebugMessages () const
 Returns TRUE if additional debug information should be print.
 
void SetToPrintDebugMessages (const Standard_Boolean 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 Handle< RWMesh_TriangulationSource > &theSourceMesh, const Handle< Poly_Triangulation > &theDestMesh, const 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 ()
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
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.
 
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.
 
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.
 
Standard_Integer GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object.
 
Standard_Integer DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Protected Member Functions

virtual bool load (const Handle< RWMesh_TriangulationSource > &theSourceMesh, const Handle< Poly_Triangulation > &theDestMesh, const Handle< OSD_FileSystem > &theFileSystem) const =0
 Loads primitive array.
 
virtual bool finalizeLoading (const Handle< RWMesh_TriangulationSource > &theSourceMesh, const Handle< Poly_Triangulation > &theDestMesh) const
 Performs additional actions to finalize data loading.
 

interface for filling triangulation data

RWMesh_CoordinateSystemConverter myCoordSysConverter
 coordinate system converter
 
TCollection_AsciiString myFileName
 file name to use during message printing
 
Standard_Mutex myMutex
 internal mutex to collect nodes/triangles statistic
 
LoadingStatisticmyLoadingStatistic
 statistic of loaded triangulation
 
Standard_Boolean myIsDoublePrecision
 flag to fill in triangulation using single or double precision
 
Standard_Boolean myToSkipDegenerateTris
 flag to skip degenerate triangles during loading, FALSE by default
 
Standard_Boolean myToPrintDebugMessages
 flag to print additional debug information
 
virtual bool setNbPositionNodes (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theNbNodes, Standard_Boolean theToCopyData=false) const
 Resizes array of position nodes to specified size.
 
virtual void setNodePosition (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theIndex, const gp_Pnt &thePnt) const
 Sets node position.
 
virtual bool setNbUVNodes (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theNbNodes) const
 Resizes array of UV nodes to specified size.
 
virtual void setNodeUV (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theIndex, const gp_Pnt2d &theUV) const
 Sets node UV texture coordinates.
 
virtual bool setNbNormalNodes (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theNbNodes) const
 Resizes array of nodes normals to specified size.
 
virtual void setNodeNormal (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theIndex, const gp_Vec3f &theNormal) const
 Sets node normal.
 
virtual bool setNbTriangles (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theNbTris, Standard_Boolean theToCopyData=false) const
 Resizes array of triangles to specified size.
 
virtual Standard_Integer setTriangle (const Handle< Poly_Triangulation > &theMesh, Standard_Integer theIndex, const Poly_Triangle &theTriangle) const
 Adds triangle 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()

virtual RWMesh_TriangulationReader::~RWMesh_TriangulationReader ( )
virtual

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 Handle< RWMesh_TriangulationSource > &  theSourceMesh,
const 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 Handle< RWMesh_TriangulationSource > &  theSourceMesh,
const Handle< Poly_Triangulation > &  theDestMesh,
const Handle< OSD_FileSystem > &  theFileSystem 
) const

Loads primitive array.

◆ load()

virtual bool RWMesh_TriangulationReader::load ( const Handle< RWMesh_TriangulationSource > &  theSourceMesh,
const Handle< Poly_Triangulation > &  theDestMesh,
const 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.

◆ SetFileName()

void RWMesh_TriangulationReader::SetFileName ( const TCollection_AsciiString theFileName)
inline

Sets file name for reporting issues.

◆ setNbNormalNodes()

virtual bool RWMesh_TriangulationReader::setNbNormalNodes ( const Handle< Poly_Triangulation > &  theMesh,
Standard_Integer  theNbNodes 
) const
inlineprotectedvirtual

Resizes array of nodes normals to specified size.

Parameters
theMesh[in] triangulation to be modified
theNbNodes[in] nodes number
Returns
TRUE in case of success operation

◆ setNbPositionNodes()

virtual bool RWMesh_TriangulationReader::setNbPositionNodes ( const Handle< Poly_Triangulation > &  theMesh,
Standard_Integer  theNbNodes,
Standard_Boolean  theToCopyData = false 
) const
inlineprotectedvirtual

Resizes array of position nodes to specified size.

Parameters
theMesh[in] triangulation to be modified
theNbNodes[in] nodes number
theToCopyData[in] copy old nodes into new array
Returns
TRUE in case of success operation

◆ setNbTriangles()

virtual bool RWMesh_TriangulationReader::setNbTriangles ( const Handle< Poly_Triangulation > &  theMesh,
Standard_Integer  theNbTris,
Standard_Boolean  theToCopyData = false 
) const
inlineprotectedvirtual

Resizes array of triangles to specified size.

Parameters
theMesh[in] triangulation to be modified
theNbTris[in] elements number
theToCopyData[in] copy old triangles into new array
Returns
TRUE in case of success operation

◆ setNbUVNodes()

virtual bool RWMesh_TriangulationReader::setNbUVNodes ( const Handle< Poly_Triangulation > &  theMesh,
Standard_Integer  theNbNodes 
) const
inlineprotectedvirtual

Resizes array of UV nodes to specified size.

Parameters
theMesh[in] triangulation to be modified
theNbNodes[in] nodes number
Returns
TRUE in case of success operation

◆ setNodeNormal()

virtual void RWMesh_TriangulationReader::setNodeNormal ( const Handle< Poly_Triangulation > &  theMesh,
Standard_Integer  theIndex,
const gp_Vec3f theNormal 
) const
inlineprotectedvirtual

Sets node normal.

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

◆ setNodePosition()

virtual void RWMesh_TriangulationReader::setNodePosition ( const Handle< Poly_Triangulation > &  theMesh,
Standard_Integer  theIndex,
const gp_Pnt thePnt 
) const
inlineprotectedvirtual

Sets node position.

Parameters
theMesh[in] triangulation to be modified
theIndex[in] node index starting from 1
thePnt[in] node position

◆ setNodeUV()

virtual void RWMesh_TriangulationReader::setNodeUV ( const Handle< Poly_Triangulation > &  theMesh,
Standard_Integer  theIndex,
const gp_Pnt2d theUV 
) const
inlineprotectedvirtual

Sets node UV texture coordinates.

Parameters
theMesh[in] triangulation to be modified
theIndex[in] node index starting from 1
theUV[in] node UV coordinates

◆ SetToPrintDebugMessages()

void RWMesh_TriangulationReader::SetToPrintDebugMessages ( const Standard_Boolean  theToPrint)
inline

Sets flag to print debug information.

◆ SetToSkipDegenerates()

void RWMesh_TriangulationReader::SetToSkipDegenerates ( const Standard_Boolean  theToSkip)
inline

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

◆ setTriangle()

virtual Standard_Integer RWMesh_TriangulationReader::setTriangle ( const Handle< Poly_Triangulation > &  theMesh,
Standard_Integer  theIndex,
const Poly_Triangle theTriangle 
) const
inlineprotectedvirtual

Adds triangle element.

Parameters
theMesh[in] triangulation 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()

Standard_Boolean RWMesh_TriangulationReader::ToPrintDebugMessages ( ) const
inline

Returns TRUE if additional debug information should be print.

◆ ToSkipDegenerates()

Standard_Boolean 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

Standard_Boolean 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

Standard_Mutex RWMesh_TriangulationReader::myMutex
mutableprotected

internal mutex to collect nodes/triangles statistic

◆ myToPrintDebugMessages

Standard_Boolean RWMesh_TriangulationReader::myToPrintDebugMessages
protected

flag to print additional debug information

◆ myToSkipDegenerateTris

Standard_Boolean 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: