17 #ifndef TRIANGULATION_H 
   18 #define TRIANGULATION_H 
   35     virtual void addLine( 
Line3D* line, 
bool breakline ) = 0;
 
   37     virtual int addPoint( 
Point3D* p ) = 0;
 
   39     virtual bool calcNormal( 
double x, 
double y, 
Vector3D* result ) = 0;
 
   41     virtual void performConsistencyTest() = 0;
 
   43     virtual bool calcPoint( 
double x, 
double y, 
Point3D* result ) = 0;
 
   45     virtual Point3D* getPoint( 
unsigned int i ) 
const = 0;
 
   48     virtual bool getTriangle( 
double x, 
double y, 
Point3D* p1, 
int* n1, 
Point3D* p2, 
int* n2, 
Point3D* p3, 
int* n3 ) = 0;
 
   52     virtual int getOppositePoint( 
int p1, 
int p2 ) = 0;
 
   54     virtual double getXMax() 
const = 0;
 
   56     virtual double getXMin() 
const = 0;
 
   58     virtual double getYMax() 
const = 0;
 
   60     virtual double getYMin() 
const = 0;
 
   62     virtual int getNumberOfPoints() 
const = 0;
 
   64     virtual QList<int>* getSurroundingTriangles( 
int pointno ) = 0;
 
   66     virtual QList<int>* getPointsAroundEdge( 
double x, 
double y ) = 0;
 
   72     virtual void setEdgeColor( 
int r, 
int g, 
int b ) = 0;
 
   74     virtual void setForcedEdgeColor( 
int r, 
int g, 
int b ) = 0;
 
   76     virtual void setBreakEdgeColor( 
int r, 
int g, 
int b ) = 0;
 
   80     virtual void eliminateHorizontalTriangles() = 0;
 
   82     virtual void ruppertRefinement() = 0;
 
   84     virtual bool pointInside( 
double x, 
double y ) = 0;
 
   90     virtual bool swapEdge( 
double x, 
double y ) = 0;
 
   93     virtual bool saveAsShapefile( 
const QString& fileName ) 
const = 0;