07405f7de6
- aggiunta gestione buchi alle triangolazione di poligoni - creazione suerfici trimesh da regioni con buchi.
53 lines
2.7 KiB
C++
53 lines
2.7 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2014-2014
|
|
//----------------------------------------------------------------------------
|
|
// File : SurfTriMesh.h Data : 26.03.14 Versione : 1.5c9
|
|
// Contenuto : Dichiarazione della classe Superfici TriMesh.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 26.03.14 DS Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
#include "/EgtDev/Include/EGkPolyLine.h"
|
|
#include "\EgtDev\Include\EGkPointGrid3d.h"
|
|
|
|
//----------------------------------------------------------------------------
|
|
class Triangulate
|
|
{
|
|
public :
|
|
bool Make( const PolyLine& PL, PNTVECTOR& vPt, INTVECTOR& vTr) ;
|
|
bool Make( const POLYLINEVECTOR& vPL, PNTVECTOR& vPt, INTVECTOR& vTr) ;
|
|
|
|
private :
|
|
bool PrepareGrid( const PNTVECTOR& vPt, const INTVECTOR& vPol,
|
|
const INTVECTOR& vPrev, const INTVECTOR& vNext) ;
|
|
bool MakeByEC( const PNTVECTOR& vPt, const INTVECTOR& vPol, INTVECTOR& vTr) ;
|
|
bool MakeByEC2( const PNTVECTOR& vPt, const INTVECTOR& vPol, INTVECTOR& vTr) ;
|
|
bool MakeByEC3( const PNTVECTOR& vPt, const INTVECTOR& vPol, INTVECTOR& vTr) ;
|
|
bool TestTriangle( const PNTVECTOR& vPt, const INTVECTOR& vPol,
|
|
const INTVECTOR& vPrev, INTVECTOR& vNext, int i) ;
|
|
double CalcTriangleAspectRatio( const Point3d& ptPa, const Point3d& ptPb, const Point3d& ptPc) ;
|
|
double SquareDist( const Point3d& ptA, const Point3d& ptB) ;
|
|
double TwoArea( const Point3d& ptA, const Point3d& ptB, const Point3d& ptC) ;
|
|
bool AreSamePoint( const Point3d& ptA, const Point3d& ptB, double dToler = EPS_SMALL) ;
|
|
bool Aligned( const Point3d& ptA, const Point3d& ptB, const Point3d& ptC) ;
|
|
bool Collinear( const Point3d& ptA, const Point3d& ptB, const Point3d& ptC, double dToler = EPS_SMALL) ;
|
|
bool TriangleIsCCW( const Point3d& ptA, const Point3d& ptB, const Point3d& ptC, double dToler = EPS_SMALL) ;
|
|
bool TestIntersection( const Point3d& ptA1, const Point3d& ptA2, const Point3d& ptB1, const Point3d& ptB2) ;
|
|
bool TestPointInTriangle( const Point3d& ptP, const Point3d& ptA, const Point3d& ptB, const Point3d& ptC) ;
|
|
bool SortInternalLoops( const POLYLINEVECTOR& vPL, INTVECTOR& vOrd) ;
|
|
bool GetPntVectorFromPolyline( const PolyLine& PL, bool bXmaxStart, PNTVECTOR& vPi) ;
|
|
bool GetOuterPntToJoin( const PNTVECTOR& vPt, const Point3d& ptP, int& nI) ;
|
|
bool PointInSector( const Point3d& ptTest, const Point3d& ptPrev, const Point3d& ptCorn, const Point3d& ptNext) ;
|
|
|
|
private :
|
|
int m_nPlane ;
|
|
PointGrid3d m_VertGrid ;
|
|
INTVECTOR m_vVert ;
|
|
} ;
|