// Wsimplex.h: interface for the Wsimplex class. // ////////////////////////////////////////////////////////////////////// #pragma once class DelaunayMesh; class Wbucket; class WsubMesh; #include "Vector.hpp" #include class Wsimplex { friend class DelaunayMesh; public: Wsimplex(int dim=3); Wsimplex(Vector *q, Vector *w, int order=0); Wsimplex(Vector *q, Vector *w, Vector *e, int order=0); Wsimplex(Vector *sharp, Wsimplex *flat); Wsimplex::Wsimplex(Vector *q, Vector *w, Vector *e, Vector *r); virtual ~Wsimplex(); int nearEdge(); void cutlinkback(Wbucket* container); int inSmallSphere(Vector* guess); int verifyDelaunay(Vector* proxy); int adjacentToNothing(); void print(); Vector** getVertices(); int getDimension(); Wsimplex** getNeighbours(); void linkback(Wbucket* container); int inCircle(Vector* guess) ; double getRadius() ; Vector* getCircumcentre(); Vector* getInteriorPoint(); private: int ID; int deleted; int dimension; void helloNeighbour(Wsimplex* theguynext); WsubMesh* cavity(Vector* proxy); void updateCentre(); Wsimplex** neighbour; Wsimplex* inFrontOf; Wsimplex* behind; Vector** vertex; ::std::vector backlist; double sqrad; double radius; Vector* circumcentre; public: int join(Wsimplex* other); int isComplete(); Wsimplex* getBehind(); Wsimplex* getFront(); Wsimplex* getNeighboursFront(int which); };