QGIS API Documentation  2.3.0-Master
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Go to the documentation of this file.
1 /***************************************************************************
2  TriDecorator.h - description
3  -------------------
4  copyright : (C) 2004 by Marco Hugentobler
5  email : mhugent@geo.unizh.ch
6  ***************************************************************************/
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  ***************************************************************************/
20 #include "Triangulation.h"
24 {
25  public:
26  TriDecorator();
28  virtual ~TriDecorator();
29  virtual void addLine( Line3D* line, bool breakline );
30  virtual int addPoint( Point3D* p );
32  virtual void addTriangulation( Triangulation* t );
34  virtual void performConsistencyTest();
35  virtual bool calcNormal( double x, double y, Vector3D* result );
36  virtual bool calcPoint( double x, double y, Point3D* result );
37  virtual Point3D* getPoint( unsigned int i ) const;
38  virtual int getNumberOfPoints() const;
40  bool getTriangle( double x, double y, Point3D* p1, int* n1, Point3D* p2, int* n2, Point3D* p3, int* n3 );
41  bool getTriangle( double x, double y, Point3D* p1, Point3D* p2, Point3D* p3 );
42  virtual int getOppositePoint( int p1, int p2 );
43  virtual QList<int>* getSurroundingTriangles( int pointno );
44  virtual double getXMax() const;
45  virtual double getXMin() const;
46  virtual double getYMax() const;
47  virtual double getYMin() const;
49  virtual void setEdgeColor( int r, int g, int b );
50  virtual void setForcedEdgeColor( int r, int g, int b );
51  virtual void setBreakEdgeColor( int r, int g, int b );
52  virtual void setTriangleInterpolator( TriangleInterpolator* interpolator );
53  virtual void eliminateHorizontalTriangles();
54  virtual void ruppertRefinement();
55  virtual bool pointInside( double x, double y );
56  virtual bool swapEdge( double x, double y );
57  virtual QList<int>* getPointsAroundEdge( double x, double y );
58  protected:
61 };
63 inline TriDecorator::TriDecorator(): mTIN( 0 )
64 {
66 }
69 {
71 }
74 {
76 }
79 {
80  mTIN = t;
81 }
83 #endif
virtual void setForcedEdgeColor(int r, int g, int b)
Sets the color of the forced edges.
virtual int getNumberOfPoints() const
Returns the number of points.
virtual void ruppertRefinement()
Adds points to make the triangles better shaped (algorithm of ruppert)
virtual void addTriangulation(Triangulation *t)
Adds an association to a triangulation.
Definition: TriDecorator.h:78
Triangulation * mTIN
Association with a Triangulation object.
Definition: TriDecorator.h:60
virtual bool swapEdge(double x, double y)
Reads the content of a taff-file.
virtual double getYMin() const
Returns the smallest x-coordinate value of the bounding box.
virtual void addLine(Line3D *line, bool breakline)
Adds a line (e.g.
virtual Point3D * getPoint(unsigned int i) const
Returns a pointer to the point with number i.
This class represents a line.
Definition: Line3D.h:24
Enumeration describing the behaviour, if two forced lines cross.
Definition: Triangulation.h:32
virtual int getOppositePoint(int p1, int p2)
Returns the number of the point opposite to the triangle points p1, p2 (which have to be on a halfedg...
virtual void eliminateHorizontalTriangles()
Eliminates the horizontal triangles by swapping.
virtual bool calcPoint(double x, double y, Point3D *result)
Calculates x-, y and z-value of the point on the surface and assigns it to 'result'.
virtual double getXMin() const
Returns the smallest x-coordinate value of the bounding box.
Point3D is a class to represent a three dimensional point.
Definition: Point3D.h:23
virtual bool calcNormal(double x, double y, Vector3D *result)
Calculates the normal at a point on the surface and assigns it to 'result'.
virtual void performConsistencyTest()
Performs a consistency check, remove this later.
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.
bool getTriangle(double x, double y, Point3D *p1, int *n1, Point3D *p2, int *n2, Point3D *p3, int *n3)
virtual void setBreakEdgeColor(int r, int g, int b)
Sets the color of the breaklines.
virtual void setForcedCrossBehaviour(Triangulation::forcedCrossBehaviour b)
draws the points, edges and the forced lines
Interface for Triangulation classes.
Definition: Triangulation.h:28
Decorator class for Triangulations (s.
Definition: TriDecorator.h:23
virtual void setTriangleInterpolator(TriangleInterpolator *interpolator)
Sets an interpolator object.
virtual double getYMax() const
Returns the largest y-coordinate value of the bounding box.
virtual bool pointInside(double x, double y)
Returns true, if the point with coordinates x and y is inside the convex hull and false otherwise...
virtual QList< int > * getPointsAroundEdge(double x, double y)
Returns a value list with the numbers of the four points, which would be affected by an edge swap...
virtual ~TriDecorator()
Definition: TriDecorator.h:73
virtual QList< int > * getSurroundingTriangles(int pointno)
Returns a pointer to a value list with the information of the triangles surrounding (counterclockwise...
virtual double getXMax() const
Returns the largest x-coordinate value of the bounding box.
virtual void setEdgeColor(int r, int g, int b)
Sets the color of the normal edges.
virtual int addPoint(Point3D *p)
Adds a point to the triangulation.