TexGen
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TexGen::CSectionMeshTriangulate Class Reference

Creates a mesh of a section using open source package triangle http://www.cs.cmu.edu/~quake/triangle.html. More...

#include <SectionMeshTriangulate.h>

Inheritance diagram for TexGen::CSectionMeshTriangulate:
Inheritance graph
[legend]

Public Member Functions

 CSectionMeshTriangulate (double dMinAngle=20, double dMaxArea=1)
 Set the mesh quality parameters. More...
 
 CSectionMeshTriangulate (TiXmlElement &Element)
 
 ~CSectionMeshTriangulate (void)
 
CSectionMeshCopy () const
 This is a function to allow copying of derived classes correctly. More...
 
string GetType () const
 Derived class should return the class name. More...
 
void PopulateTiXmlElement (TiXmlElement &Element, OUTPUT_TYPE OutputType) const
 Used for saving data to XML. More...
 
const CMeshGetMesh (const vector< XY > &Section) const
 Accessor methods. More...
 
virtual void SetNumLayers (int iNumLayers)
 
virtual int GetNumLayers ()
 

Static Public Member Functions

static CMesh GetSimpleMesh (const vector< XY > &Section)
 
static CMesh GetTriangleMesh (const vector< XY > &Section)
 
static CObjectContainer< CSectionMeshCreateSectionMesh (TiXmlElement &Element)
 Create a section from TiXmlElement. More...
 

Protected Member Functions

bool CreateMesh (const vector< XY > &Section) const
 Create a mesh out of given list of points representing the edge of the section. More...
 
bool CreateMeshIfNeeded (const vector< XY > &Section) const
 Create the mesh if it has not already been created. More...
 

Protected Attributes

double m_dMinAngle
 
double m_dMaxArea
 
CMesh m_Mesh
 Used to cache the result of the previous mesh for efficiency. More...
 
vector< XYm_Section
 Store the section used to request a mesh the last time. More...
 

Detailed Description

Creates a mesh of a section using open source package triangle http://www.cs.cmu.edu/~quake/triangle.html.

Definition at line 28 of file SectionMeshTriangulate.h.

Constructor & Destructor Documentation

◆ CSectionMeshTriangulate() [1/2]

CSectionMeshTriangulate::CSectionMeshTriangulate ( double  dMinAngle = 20,
double  dMaxArea = 1 
)

Set the mesh quality parameters.

Parameters
dMinAngleMinimum angle between two triangle edges generated by the triangulator. Increasing is value will result in a higher quality mesh but more elements. If this value is too high the mesh generator will hang.
dMaxAreaMaximum size of triangle generated by the triangulator. Decreasing this value will result in more elements in the mesh. The value is normalised with the area of the total section. Thus a value of 0.1 will not create any triangles with an area greater than 0.1 times the the area of the section.

Definition at line 32 of file SectionMeshTriangulate.cpp.

◆ CSectionMeshTriangulate() [2/2]

CSectionMeshTriangulate::CSectionMeshTriangulate ( TiXmlElement &  Element)

Definition at line 42 of file SectionMeshTriangulate.cpp.

References m_dMaxArea, and m_dMinAngle.

◆ ~CSectionMeshTriangulate()

CSectionMeshTriangulate::~CSectionMeshTriangulate ( void  )

Definition at line 38 of file SectionMeshTriangulate.cpp.

Member Function Documentation

◆ Copy()

CSectionMesh * TexGen::CSectionMeshTriangulate::Copy ( ) const
inlinevirtual

This is a function to allow copying of derived classes correctly.

Derived classes should implement this as CSectionMesh* Copy() const { return new CSectionMeshDerived(*this); } where CSectionMeshDerived should be replaced by the name of the derived class

Implements TexGen::CSectionMesh.

Definition at line 45 of file SectionMeshTriangulate.h.

◆ CreateMesh()

bool CSectionMeshTriangulate::CreateMesh ( const vector< XY > &  Section) const
protectedvirtual

◆ CreateMeshIfNeeded()

bool CSectionMesh::CreateMeshIfNeeded ( const vector< XY > &  Section) const
protectedinherited

Create the mesh if it has not already been created.

Definition at line 67 of file SectionMesh.cpp.

References TexGen::CSectionMesh::CreateMesh(), and TexGen::CSectionMesh::m_Section.

Referenced by TexGen::CSectionMesh::GetMesh().

◆ CreateSectionMesh()

CObjectContainer< CSectionMesh > CSectionMesh::CreateSectionMesh ( TiXmlElement &  Element)
staticinherited

Create a section from TiXmlElement.

Definition at line 52 of file SectionMesh.cpp.

Referenced by TexGen::CSection::CSection(), TexGen::CTextile3DWeave::CTextile3DWeave(), and TexGen::CTextileWeave::CTextileWeave().

◆ GetMesh()

const CMesh & CSectionMesh::GetMesh ( const vector< XY > &  Section) const
inherited

Accessor methods.

Definition at line 77 of file SectionMesh.cpp.

References TexGen::CSectionMesh::CreateMeshIfNeeded(), and TexGen::CSectionMesh::m_Mesh.

◆ GetNumLayers()

virtual int TexGen::CSectionMesh::GetNumLayers ( )
inlinevirtualinherited

Definition at line 58 of file SectionMesh.h.

◆ GetSimpleMesh()

CMesh CSectionMeshTriangulate::GetSimpleMesh ( const vector< XY > &  Section)
static

Function to mesh 2d list of points that form a closed loop. This function does not use triangle instead it used homegrown code.

Definition at line 211 of file SectionMeshTriangulate.cpp.

References TexGen::CMesh::AddNode(), and TexGen::CMesh::MeshClosedLoop().

◆ GetTriangleMesh()

CMesh CSectionMeshTriangulate::GetTriangleMesh ( const vector< XY > &  Section)
static

◆ GetType()

string TexGen::CSectionMeshTriangulate::GetType ( ) const
inlinevirtual

Derived class should return the class name.

Implements TexGen::CSectionMesh.

Definition at line 46 of file SectionMeshTriangulate.h.

◆ PopulateTiXmlElement()

void CSectionMeshTriangulate::PopulateTiXmlElement ( TiXmlElement &  Element,
OUTPUT_TYPE  OutputType 
) const
virtual

Used for saving data to XML.

Reimplemented from TexGen::CSectionMesh.

Definition at line 48 of file SectionMeshTriangulate.cpp.

References m_dMaxArea, m_dMinAngle, TexGen::CSectionMesh::PopulateTiXmlElement(), and TexGen::stringify().

◆ SetNumLayers()

virtual void TexGen::CSectionMesh::SetNumLayers ( int  iNumLayers)
inlinevirtualinherited

Reimplemented in TexGen::CSectionMeshRectangleSection, and TexGen::CSectionMeshRectangular.

Definition at line 57 of file SectionMesh.h.

Member Data Documentation

◆ m_dMaxArea

double TexGen::CSectionMeshTriangulate::m_dMaxArea
protected

◆ m_dMinAngle

double TexGen::CSectionMeshTriangulate::m_dMinAngle
protected

◆ m_Mesh

CMesh TexGen::CSectionMesh::m_Mesh
mutableprotectedinherited

◆ m_Section

vector<XY> TexGen::CSectionMesh::m_Section
mutableprotectedinherited

Store the section used to request a mesh the last time.

If the given section is the same as given last time then no need to remesh, simply re-used the result of last time.

Definition at line 75 of file SectionMesh.h.

Referenced by TexGen::CSectionMesh::CreateMeshIfNeeded().


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