2015-07-29 11:52:14 +02:00
|
|
|
/** Decorator class for Triangulations (s. Decorator pattern in Gamma et al.)*/
|
2012-09-24 02:28:15 +02:00
|
|
|
class TriDecorator : Triangulation
|
|
|
|
{
|
|
|
|
%TypeHeaderCode
|
2015-11-09 21:29:24 +11:00
|
|
|
#include <TriDecorator.h>
|
2012-09-24 02:28:15 +02:00
|
|
|
%End
|
|
|
|
|
|
|
|
public:
|
|
|
|
TriDecorator();
|
2017-05-01 18:13:15 +02:00
|
|
|
explicit TriDecorator( Triangulation *t );
|
2012-09-24 02:28:15 +02:00
|
|
|
virtual ~TriDecorator();
|
2017-05-01 18:13:15 +02:00
|
|
|
virtual void addLine( Line3D *line, bool breakline );
|
2017-06-02 20:52:57 +02:00
|
|
|
virtual int addPoint( QgsPoint *p );
|
2015-07-29 11:52:14 +02:00
|
|
|
/** Adds an association to a triangulation*/
|
2017-05-01 18:13:15 +02:00
|
|
|
virtual void addTriangulation( Triangulation *t );
|
2015-07-29 11:52:14 +02:00
|
|
|
/** Performs a consistency check, remove this later*/
|
2012-09-24 02:28:15 +02:00
|
|
|
virtual void performConsistencyTest();
|
2017-05-01 18:13:15 +02:00
|
|
|
virtual bool calcNormal( double x, double y, Vector3D *result );
|
2017-06-02 20:52:57 +02:00
|
|
|
virtual bool calcPoint( double x, double y, QgsPoint *result );
|
|
|
|
virtual QgsPoint *getPoint( unsigned int i ) const;
|
2012-09-24 02:28:15 +02:00
|
|
|
virtual int getNumberOfPoints() const;
|
2017-06-02 20:52:57 +02:00
|
|
|
bool getTriangle( double x, double y, QgsPoint *p1, int *n1 /Out/, QgsPoint *p2 /Out/, int *n2 /Out/, QgsPoint *p3 /Out/, int *n3 /Out/ );
|
|
|
|
bool getTriangle( double x, double y, QgsPoint *p1 /Out/, QgsPoint *p2 /Out/, QgsPoint *p3 /Out/ );
|
2012-09-24 02:28:15 +02:00
|
|
|
virtual int getOppositePoint( int p1, int p2 );
|
2017-05-01 18:13:15 +02:00
|
|
|
virtual QList<int> *getSurroundingTriangles( int pointno );
|
2012-09-24 02:28:15 +02:00
|
|
|
virtual double getXMax() const;
|
|
|
|
virtual double getXMin() const;
|
|
|
|
virtual double getYMax() const;
|
|
|
|
virtual double getYMin() const;
|
2016-12-19 10:52:29 +01:00
|
|
|
virtual void setForcedCrossBehavior( Triangulation::ForcedCrossBehavior b );
|
2012-09-24 02:28:15 +02:00
|
|
|
virtual void setEdgeColor( int r, int g, int b );
|
|
|
|
virtual void setForcedEdgeColor( int r, int g, int b );
|
|
|
|
virtual void setBreakEdgeColor( int r, int g, int b );
|
2017-05-01 18:13:15 +02:00
|
|
|
virtual void setTriangleInterpolator( TriangleInterpolator *interpolator );
|
2012-09-24 02:28:15 +02:00
|
|
|
virtual void eliminateHorizontalTriangles();
|
|
|
|
virtual void ruppertRefinement();
|
|
|
|
virtual bool pointInside( double x, double y );
|
|
|
|
virtual bool swapEdge( double x, double y );
|
2017-05-01 18:13:15 +02:00
|
|
|
virtual QList<int> *getPointsAroundEdge( double x, double y );
|
2012-09-24 02:28:15 +02:00
|
|
|
};
|
|
|
|
|