GemaCoreLib
The GeMA Core library
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
GmTriSurfaceDiscontinuity Class Reference

Surface 3D representation for a discontinuity. More...

#include <gmTriSurfaceDiscontinuity.h>

Inheritance diagram for GmTriSurfaceDiscontinuity:
Inheritance graph
[legend]
Collaboration diagram for GmTriSurfaceDiscontinuity:
Collaboration graph
[legend]

Public Member Functions

virtual ~GmTriSurfaceDiscontinuity ()
 Destructor.
 
virtual int numSegments () const
 A generic interface to return the number of discontinuity "segments", where a segment depends on the geometric representation type. For 2d meshes it will be either the number of polyline segments or the number of edges. For 3d meshes, the number of triangles or the number of faces.
 
virtual int numIntersections () const
 A generic interface to return the number of intersections between the mesh and the user given geometry. Is the number of line segments or faces (triangles an/or quads) in the intersection set.
 
int numPoints () const
 Returns the number of surface points.
 
const double * pointCoordinates () const
 Returns the surface coordinates vector, organized as x1, y1, z1, x2, y2, z2, .... Size equal to numPoints() * 3.
 
int numTriangles () const
 Returns the number of surface triangles.
 
const int * triangleIncidences () const
 Returns the incidence vector, organized as p11, p12, p13, p21, p22, p23, .... Size equal to numTriangles() * 3.
 
virtual void clearGeometry ()
 Clears the original discontinuity geometry information, releasing memory.
 
virtual void printGeometry (const GmLogCategory &logger, GmLogLevel level) const
 Prints the discontinuity geometry information.
 
virtual size_t usedGeometryMemory () const
 Returns an estimative of the memory used by the discontinuity geometry in bytes. More...
 
virtual size_t usedIntersectionMemory () const
 Returns an estimative of the memory used by the intersection data in bytes.
 
virtual bool findIntersections (const GmLogCategory &logger)
 Builds the element intersection list for this discontinuity.
 
virtual void printIntersections (const GmLogCategory &logger, GmLogLevel level) const
 Prints the discontinuity-mesh intersection information.
 
- Public Member Functions inherited from GmDiscontinuity
virtual ~GmDiscontinuity ()
 Virtuald destructor.
 
int index () const
 Returns this discontinuity index in the father set.
 
QString id () const
 Returns the discontinuity id (name)
 
int cellGroupIndex () const
 Returns the cell group index associated with this discontinuity, if any. This is the index of the group in the list returned by GmCellMesh::cellGroupIds() Returns -1 for an unspecified cell group.
 
virtual int propertyIndex (int propertySet) const
 Given a property set number, returns the line of the property set that contains property values for this discontinuity. The returned value can be used to get a property from a property accessor retrieved from the discontinuity set. More...
 

Private Types

using EdgeId = QPair< size_t, int >
 
using CellIntersection = QVector< EdgeId >
 
using BoolMat = QVector< QVector< bool > >
 

Private Member Functions

 GmTriSurfaceDiscontinuity (const GmDiscontinuitySet *ds, int index, QString id, int groupIndex, const QVector< int > &psIndex)
 Constructor.
 
virtual void setGeometry (double *dvec, int nd, int *ivec, int ni)
 Sets the geometry. dvec should be a vector with coordinates (size nd * 3), nd the number of coordinates. ivec should be the triangle incidence list (size ni * 3), ni the number of triangles.
 
int markAmbiguousEdges ()
 
bool reorderIntersections (CellIntersection &ci, const GmCellGeometryInfo *info)
 For each cellIntersection[i] reorder its edges indexes to form a polygon with the intersection points. Return true if reorder was successful.
 
QVector< EdgeIdpopEdgesOnFace (QVector< EdgeId > &edges, QVector< bool > &FELine)
 
BoolMat buildEEMatrix (QVector< QVector< int >> faceEdge, int nedges)
 
BoolMat buildFEMatrix (QVector< QVector< int >> edgeFace, int nface)
 
const BoolMat getOrBuildEEMatrix (const GmCellGeometryInfo *info)
 
const BoolMat getOrBuildFEMatrix (const GmCellGeometryInfo *info)
 
bool checkConsistency ()
 
void DebugCell (size_t cellId, GmMatrix &points, CellIntersection &ci)
 

Private Attributes

int _numPoints
 The number of points in the surface.
 
int _numTriangles
 The number of triangles in the surface.
 
double * _pointCoord
 The coordinate vector. Size == _numPoints * 3.
 
int * _triList
 The list with triangle incidences. Size == _numTriangles * 3.
 
QHash< size_t, CellIntersectioncellIntersection
 
QHash< size_t, bool > validCellIntersection
 
QHash< size_t, RayIntersectionintPoint
 
QHash< size_t, bool > validIntPoint
 
QHash< GmCellType, BoolMataccelEE
 
QHash< GmCellType, BoolMataccelFE
 

Friends

class GmDiscontinuitySet
 

Additional Inherited Members

- Protected Member Functions inherited from GmDiscontinuity
 GmDiscontinuity (const GmDiscontinuitySet *ds, int index, QString id, int groupIndex, const QVector< int > &psIndex)
 Private constructor. Discontinuities are only created by the DiscontinuitySet.
 
- Protected Attributes inherited from GmDiscontinuity
const GmDiscontinuitySet_ds
 Our "father" discontinuity set.
 
int _index
 The discontinuity index in its "father" discontinuity set.
 
QString _id
 The discontinuity id.
 
int _groupIndex
 The index in the mesh for the associated cell group or -1 if there is none.
 
QVector< int > _psIndex
 The property set line index for this discontinuity. One entry per associated property set.
 

Detailed Description

Surface 3D representation for a discontinuity.

Member Function Documentation

◆ usedGeometryMemory()

virtual size_t GmTriSurfaceDiscontinuity::usedGeometryMemory ( ) const
inlinevirtual

Returns an estimative of the memory used by the discontinuity geometry in bytes.

It returns in general the variable memory that depends on the number of lines in a polyline, edges or faces for boundary lists or points & triangles for surfaces, ignoring "constant" sizes.

Implements GmDiscontinuity.


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