/* $Id: boxes.h,v 1.1.1.1 1996/10/02 10:35:48 roitzsch Exp $ */ #ifndef BOXES_H #define BOXES_H #include #include #include #include #include "general.h" #include "plot.h" #include "boxdefs.h" #include "mzibutil.h" #ifndef nil #define nil Null #endif //------------------------------------------------------------------------- class Boxes { public: Boxes(char* inFile=0, char* inFileStream=0); ~Boxes(); int CreateGrid (char* inFileStream, double threshold); int RefineRed (); int RefineBlue(); int Refine_Triangles (int greenP, int max_tries, int blueMode, Real threshhold); int write (char* outFile); // boxgraph.cc : void Draw(int type=X11, char* caption=0); void DrawInit (Plot& plot); void DrawBoundary(Plot& plot); void DrawBoxes(Plot& plot, int index); void DrawAreas(Plot& plot); void DrawTriangles(Plot& plot); void DrawGreen(Plot& plot); void DrawPoints(Plot& plot, int index); private: /*----------------- private member functions --------------------*/ // triangulate.cc edge* search_edge(point* p1,point* p2); int Read_Boxes(char* tp); int Refine_Edges(); int Refine_Edge(edge* ed); int Refine_Red(triangle* t); int Generate_Coarse_Triangles(); int Dump_Triangulation(char* out_name); int Write_Triangulation(char* out_name, int greenClosure, int tosca_P); int Try_Blue(triangle* t, int no); int Refine_Green(triangle* t); void MarkInnerBound(); int mRefineCmd(int refMode); // boxgraph.cc : void SetMinMax(Plot& plot); void Compute_Min_Max(); void DrawBoxIndex(Plot& plot, box *b, double w, double h); point* Find_PM(edge* ed); point* first_point, *last_point; edge* first_edge , *last_edge ; triangle* first_triangle , *last_triangle ; box* first_box , *last_box ; int new_point_counter, new_edge_counter, new_triangle_counter, new_boxes_counter, ref_level; int point_list, edge_list, triangle_list, box_list; int triangulation_exists, file_name_extended, already_saved; int refinementSteps; int greenClosure; int goon; char Init_Global_buffer[255]; char* globBuf; int stat_ind; int infoBoxes; // triangulate.cc: Real blueThreshold; // boxgraph.cc: Real xmin, xmax, ymin, ymax; int ixOrig, iyOrig; // origin (lower left c.) }; #endif