QGIS API Documentation  2.12.0-Lyon
TriDecorator.h
Go to the documentation of this file.
1 /***************************************************************************
2  TriDecorator.h - description
3  -------------------
4  copyright : (C) 2004 by Marco Hugentobler
5  email : [email protected]
6  ***************************************************************************/
7 
8 /***************************************************************************
9  * *
10  * This program is free software; you can redistribute it and/or modify *
11  * it under the terms of the GNU General Public License as published by *
12  * the Free Software Foundation; either version 2 of the License, or *
13  * (at your option) any later version. *
14  * *
15  ***************************************************************************/
16 
17 #ifndef TRIDECORATOR_H
18 #define TRIDECORATOR_H
19 
20 #include "Triangulation.h"
21 
24 {
25  public:
26  TriDecorator();
27  explicit TriDecorator( Triangulation* t );
28  virtual ~TriDecorator();
29  virtual void addLine( Line3D* line, bool breakline ) override;
30  virtual int addPoint( Point3D* p ) override;
32  virtual void addTriangulation( Triangulation* t );
34  virtual void performConsistencyTest() override;
35  virtual bool calcNormal( double x, double y, Vector3D* result ) override;
36  virtual bool calcPoint( double x, double y, Point3D* result ) override;
37  virtual Point3D* getPoint( unsigned int i ) const override;
38  virtual int getNumberOfPoints() const override;
40  bool getTriangle( double x, double y, Point3D* p1, int* n1, Point3D* p2, int* n2, Point3D* p3, int* n3 ) override;
41  bool getTriangle( double x, double y, Point3D* p1, Point3D* p2, Point3D* p3 ) override;
42  virtual int getOppositePoint( int p1, int p2 ) override;
43  virtual QList<int>* getSurroundingTriangles( int pointno ) override;
44  virtual double getXMax() const override;
45  virtual double getXMin() const override;
46  virtual double getYMax() const override;
47  virtual double getYMin() const override;
49  virtual void setEdgeColor( int r, int g, int b ) override;
50  virtual void setForcedEdgeColor( int r, int g, int b ) override;
51  virtual void setBreakEdgeColor( int r, int g, int b ) override;
52  virtual void setTriangleInterpolator( TriangleInterpolator* interpolator ) override;
53  virtual void eliminateHorizontalTriangles() override;
54  virtual void ruppertRefinement() override;
55  virtual bool pointInside( double x, double y ) override;
56  virtual bool swapEdge( double x, double y ) override;
57  virtual QList<int>* getPointsAroundEdge( double x, double y ) override;
58  protected:
61 };
62 
63 inline TriDecorator::TriDecorator(): mTIN( 0 )
64 {
65 
66 }
67 
69 {
70 
71 }
72 
74 {
75 
76 }
77 
79 {
80  mTIN = t;
81 }
82 
83 #endif
84 
virtual void addTriangulation(Triangulation *t)
Adds an association to a triangulation.
Definition: TriDecorator.h:78
virtual bool pointInside(double x, double y) override
Returns true, if the point with coordinates x and y is inside the convex hull and false otherwise...
Triangulation * mTIN
Association with a Triangulation object.
Definition: TriDecorator.h:60
virtual void eliminateHorizontalTriangles() override
Eliminates the horizontal triangles by swapping.
virtual int getNumberOfPoints() const override
Returns the number of points.
virtual double getYMin() const override
Returns the smallest x-coordinate value of the bounding box.
virtual void ruppertRefinement() override
Adds points to make the triangles better shaped (algorithm of ruppert)
virtual QList< int > * getSurroundingTriangles(int pointno) override
Returns a pointer to a value list with the information of the triangles surrounding (counterclockwise...
This class represents a line.
Definition: Line3D.h:24
virtual void addLine(Line3D *line, bool breakline) override
Adds a line (e.g.
forcedCrossBehaviour
Enumeration describing the behaviour, if two forced lines cross.
Definition: Triangulation.h:31
virtual void setTriangleInterpolator(TriangleInterpolator *interpolator) override
Sets an interpolator object.
Point3D is a class to represent a three dimensional point.
Definition: Point3D.h:23
virtual void setEdgeColor(int r, int g, int b) override
Sets the color of the normal edges.
Class Vector3D represents a 3D-Vector, capable to store x-,y- and z-coordinates in double values...
Definition: Vector3D.h:22
This is an interface for interpolator classes for triangulations.
virtual double getYMax() const override
Returns the largest y-coordinate value of the bounding box.
virtual double getXMin() const override
Returns the smallest x-coordinate value of the bounding box.
virtual void performConsistencyTest() override
Performs a consistency check, remove this later.
virtual QList< int > * getPointsAroundEdge(double x, double y) override
Returns a value list with the numbers of the four points, which would be affected by an edge swap...
Interface for Triangulation classes.
Definition: Triangulation.h:27
virtual void setForcedCrossBehaviour(Triangulation::forcedCrossBehaviour b) override
Draws the points, edges and the forced lines.
virtual double getXMax() const override
Returns the largest x-coordinate value of the bounding box.
Decorator class for Triangulations (s.
Definition: TriDecorator.h:23
virtual Point3D * getPoint(unsigned int i) const override
Returns a pointer to the point with number i.
virtual int addPoint(Point3D *p) override
Adds a point to the triangulation Ownership is transferred to this class.
virtual bool calcPoint(double x, double y, Point3D *result) override
Calculates x-, y and z-value of the point on the surface and assigns it to 'result'.
virtual void setForcedEdgeColor(int r, int g, int b) override
Sets the color of the forced edges.
virtual int getOppositePoint(int p1, int p2) override
Returns the number of the point opposite to the triangle points p1, p2 (which have to be on a halfedg...
bool getTriangle(double x, double y, Point3D *p1, int *n1, Point3D *p2, int *n2, Point3D *p3, int *n3) override
virtual bool swapEdge(double x, double y) override
Reads the content of a taff-file.
virtual ~TriDecorator()
Definition: TriDecorator.h:73
virtual void setBreakEdgeColor(int r, int g, int b) override
Sets the color of the breaklines.
virtual bool calcNormal(double x, double y, Vector3D *result) override
Calculates the normal at a point on the surface and assigns it to 'result'.