MeshCore::AbstractPolygonTriangulator Class Referenceabstract

#include <Triangulation.h>

Public Member Functions

 AbstractPolygonTriangulator ()
 
std::vector< Base::Vector3fAddedPoints () const
 The triangulation algorithm may create new points when calling Triangulate(). More...
 
virtual void Discard ()
 
const std::vector< MeshFacet > & GetFacets () const
 Returns the topologic facets of the polygon. More...
 
std::vector< PointIndexGetInfo () const
 Get information about the polygons that were processed. More...
 
float GetLength () const
 Returns the length of the polygon. More...
 
std::vector< Base::Vector3fGetPolygon () const
 Get the polygon points to be triangulated. More...
 
Base::Matrix4D GetTransformToFitPlane () const
 Computes the best-fit plane and returns a transformation matrix built out of the axes of the plane. More...
 
virtual MeshGeomFacet GetTriangle (const MeshPointArray &, const MeshFacet &) const
 Returns the triangle to a given topologic facet. More...
 
const std::vector< MeshGeomFacet > & GetTriangles () const
 Returns the geometric triangles of the polygon. More...
 
TriangulationVerifierGetVerifier () const
 
virtual bool NeedsReindexing () const
 Usually the created faces use the indices of the polygon points from [0, n]. More...
 
virtual void PostProcessing (const std::vector< Base::Vector3f > &)
 If points were added then we get the 3D points by projecting the added 2D points onto a surface which fits into the given points. More...
 
std::vector< Base::Vector3fProjectToFitPlane ()
 If the points of the polygon set by SetPolygon() doesn't lie in a plane this method can be used to project the points in a common plane. More...
 
virtual void Reset ()
 Resets some internals. More...
 
void SetIndices (const std::vector< PointIndex > &d)
 
void SetPolygon (const std::vector< Base::Vector3f > &raclPoints)
 Sets the polygon to be triangulated. More...
 
void SetVerifier (TriangulationVerifier *v)
 Set a verifier object that checks if the generated triangulation can be accepted and added to the mesh kernel. More...
 
bool TriangulatePolygon ()
 Computes the triangulation of a polygon. More...
 
virtual ~AbstractPolygonTriangulator ()
 

Protected Member Functions

void Done ()
 
virtual bool Triangulate ()=0
 Computes the triangulation of a polygon. More...
 

Constructor & Destructor Documentation

◆ AbstractPolygonTriangulator()

AbstractPolygonTriangulator::AbstractPolygonTriangulator ( )

◆ ~AbstractPolygonTriangulator()

AbstractPolygonTriangulator::~AbstractPolygonTriangulator ( )
virtual

Member Function Documentation

◆ AddedPoints()

std::vector< Base::Vector3f > AbstractPolygonTriangulator::AddedPoints ( ) const

The triangulation algorithm may create new points when calling Triangulate().

This method returns these added points.

Note
: Make sure to have called PostProcessing() before using this method if you want the surface points the new points are lying on.

Referenced by MeshCore::MeshAlgorithm::FillupHole().

◆ Discard()

void AbstractPolygonTriangulator::Discard ( )
virtual

◆ Done()

void AbstractPolygonTriangulator::Done ( )
protected

Referenced by TriangulatePolygon().

◆ GetFacets()

const std::vector< MeshFacet > & MeshCore::AbstractPolygonTriangulator::GetFacets ( ) const

◆ GetInfo()

std::vector< PointIndex > AbstractPolygonTriangulator::GetInfo ( ) const

Get information about the polygons that were processed.

It returns an array of the number of edges for each closed polygon.

◆ GetLength()

float AbstractPolygonTriangulator::GetLength ( ) const

Returns the length of the polygon.

References Base::Distance().

◆ GetPolygon()

std::vector< Base::Vector3f > AbstractPolygonTriangulator::GetPolygon ( ) const

Get the polygon points to be triangulated.

The points may be projected onto its average plane.

Referenced by MeshCore::MeshAlgorithm::FillupHole(), MeshCore::FlatTriangulator::Triangulate(), and MeshCore::ConstraintDelaunayTriangulator::Triangulate().

◆ GetTransformToFitPlane()

◆ GetTriangle()

MeshGeomFacet AbstractPolygonTriangulator::GetTriangle ( const MeshPointArray points,
const MeshFacet facet 
) const
virtual

Returns the triangle to a given topologic facet.

Referenced by MeshCore::MeshAlgorithm::FillupHole().

◆ GetTriangles()

const std::vector< MeshGeomFacet > & MeshCore::AbstractPolygonTriangulator::GetTriangles ( ) const

Returns the geometric triangles of the polygon.

Referenced by MeshCore::FlatTriangulator::Triangulate(), and MeshCore::ConstraintDelaunayTriangulator::Triangulate().

◆ GetVerifier()

TriangulationVerifier * AbstractPolygonTriangulator::GetVerifier ( ) const

◆ NeedsReindexing()

virtual bool MeshCore::AbstractPolygonTriangulator::NeedsReindexing ( ) const
virtual

Usually the created faces use the indices of the polygon points from [0, n].

If the faces should be appended to an existing mesh they may need to be reindexed from the calling instance. However, there may other algorithms that directly use the indices of the mesh and thus do not need to be touched afterwards. In this case the method should be reimplemented to return false.

Referenced by MeshCore::MeshAlgorithm::FillupHole(), and MeshCore::MeshTopoAlgorithm::FillupHoles().

◆ PostProcessing()

void AbstractPolygonTriangulator::PostProcessing ( const std::vector< Base::Vector3f > &  points)
virtual

If points were added then we get the 3D points by projecting the added 2D points onto a surface which fits into the given points.

Reimplemented in MeshCore::FlatTriangulator.

References MeshCore::Approximation::AddPoint(), MeshCore::Approximation::CountPoints(), MeshCore::PolynomialFit::Fit(), Base::Vector3< _Precision >::TransformToCoordinateSystem(), and MeshCore::PolynomialFit::Value().

Referenced by MeshCore::MeshAlgorithm::FillupHole().

◆ ProjectToFitPlane()

std::vector< Base::Vector3f > AbstractPolygonTriangulator::ProjectToFitPlane ( )

If the points of the polygon set by SetPolygon() doesn't lie in a plane this method can be used to project the points in a common plane.

References GetTransformToFitPlane().

Referenced by MeshCore::EarClippingTriangulator::Triangulate(), MeshCore::FlatTriangulator::Triangulate(), and MeshCore::ConstraintDelaunayTriangulator::Triangulate().

◆ Reset()

void AbstractPolygonTriangulator::Reset ( )
virtual

Resets some internals.

The default implementation does nothing.

◆ SetIndices()

void MeshCore::AbstractPolygonTriangulator::SetIndices ( const std::vector< PointIndex > &  d)

◆ SetPolygon()

void AbstractPolygonTriangulator::SetPolygon ( const std::vector< Base::Vector3f > &  raclPoints)

◆ SetVerifier()

void AbstractPolygonTriangulator::SetVerifier ( TriangulationVerifier v)

Set a verifier object that checks if the generated triangulation can be accepted and added to the mesh kernel.

The triangulator takes ownership of the passed verifier.

Referenced by MeshGui::ViewProviderMesh::fillHole().

◆ Triangulate()

virtual bool MeshCore::AbstractPolygonTriangulator::Triangulate ( )
protectedpure virtual

◆ TriangulatePolygon()

bool AbstractPolygonTriangulator::TriangulatePolygon ( )

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