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();
|
2015-11-09 21:29:24 +11:00
|
|
|
explicit TriDecorator( Triangulation* t );
|
2012-09-24 02:28:15 +02:00
|
|
|
virtual ~TriDecorator();
|
|
|
|
virtual void addLine( Line3D* line, bool breakline );
|
|
|
|
virtual int addPoint( Point3D* p );
|
2015-07-29 11:52:14 +02:00
|
|
|
/** Adds an association to a triangulation*/
|
2012-09-24 02:28: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();
|
|
|
|
virtual bool calcNormal( double x, double y, Vector3D* result );
|
|
|
|
virtual bool calcPoint( double x, double y, Point3D* result );
|
|
|
|
virtual Point3D* getPoint( unsigned int i ) const;
|
|
|
|
virtual int getNumberOfPoints() const;
|
2015-11-09 21:29:24 +11:00
|
|
|
bool getTriangle( double x, double y, Point3D* p1, int* n1 /Out/, Point3D* p2 /Out/, int* n2 /Out/, Point3D* p3 /Out/, int* n3 /Out/ );
|
|
|
|
bool getTriangle( double x, double y, Point3D* p1 /Out/, Point3D* p2 /Out/, Point3D* p3 /Out/ );
|
2012-09-24 02:28:15 +02:00
|
|
|
virtual int getOppositePoint( int p1, int p2 );
|
|
|
|
virtual QList<int>* getSurroundingTriangles( int pointno );
|
|
|
|
virtual double getXMax() const;
|
|
|
|
virtual double getXMin() const;
|
|
|
|
virtual double getYMax() const;
|
|
|
|
virtual double getYMin() const;
|
|
|
|
virtual void setForcedCrossBehaviour( Triangulation::forcedCrossBehaviour b );
|
|
|
|
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 );
|
|
|
|
virtual void setTriangleInterpolator( TriangleInterpolator* interpolator );
|
|
|
|
virtual void eliminateHorizontalTriangles();
|
|
|
|
virtual void ruppertRefinement();
|
|
|
|
virtual bool pointInside( double x, double y );
|
|
|
|
virtual bool swapEdge( double x, double y );
|
|
|
|
virtual QList<int>* getPointsAroundEdge( double x, double y );
|
|
|
|
};
|
|
|
|
|