diff --git a/Fltk/GUI_Projection.cpp b/Fltk/GUI_Projection.cpp index 79a46a59b84cddf9fa30ccf4678591e9287b8bd8..377268149911a1eea6b369c4f401a6dc43f9f4ff 100644 --- a/Fltk/GUI_Projection.cpp +++ b/Fltk/GUI_Projection.cpp @@ -9,7 +9,7 @@ extern Context_T CTX; #if defined(HAVE_FOURIER_MODEL) -#define HARDCODED +//#define HARDCODED uvPlot::uvPlot(int x, int y, int w, int h, const char *l) : Fl_Window(x, y, w, h, l), _dmin(0.), _dmax(0.) @@ -243,14 +243,14 @@ projectionEditor::projectionEditor(std::vector<FProjectionFace*> &faces) modes[i]->align(FL_ALIGN_RIGHT); } - int s = width - 4 * wb - 3 * bb / 2; + int s = width - 4 * WB - 3 * BB / 2; - fl_button *b3 = new fl_button(width - wb - s / 2, height - 3 * wb - 4 * bh, - s / 2, 2 * bh, "generate\npatch"); + Fl_Button *b3 = new Fl_Button(width - WB - s / 2, height - 3 * WB - 4 * BH, + s / 2, 2 * BH, "Generate\nPatch"); b3->callback(compute_cb, this); - new fl_box(wb, height - 2 * wb - 2 * bh, bb / 2, bh, "delete:"); - fl_button *b4 = new fl_button(wb + bb / 2, height - 2 * wb - 2 * bh, bb / 2, bh, "last"); + new Fl_Box(WB, height - 2 * WB - 2 * BH, BB / 2, BH, "Delete:"); + Fl_Button *b4 = new Fl_Button(WB + BB / 2, height - 2 * WB - 2 * BH, BB / 2, BH, "last"); b4->callback(delete_cb, (void*)"last"); Fl_Button *b5 = new Fl_Button(WB + BB, height - 2 * WB - 2 * BH, BB / 2, BH, "select"); b5->callback(delete_cb, (void*)"select"); @@ -857,11 +857,48 @@ void compute_cb(Fl_Widget *w, void *data) Draw(); } +void delete_fourier(GFace *gf) +{ + if(gf->getNativeType() != GEntity::FourierModel) return; + /* + std::list<GVertex*> vertices = gf->vertices(); + for(std::list<GVertex*>::iterator it = vertices.begin(); it != vertices.end(); it++){ + GMODEL->remove(*it); + delete *it; + } + + std::list<GEdge*> edges = gf->edges(); + for(std::list<GEdge*>::iterator it = edges.begin(); it != edges.end(); it++){ + GMODEL->remove(*it); + delete *it; + } + + GMODEL->remove(gf); + delete gf; + */ +} + void delete_cb(Fl_Widget *w, void *data) { char *str = (char*)data; - Msg(GERROR, "deleting %s", str); - + if(!strcmp(str, "last")){ + + } + else{ + Msg(ONSCREEN, "Select Surface\n"); + std::vector<GVertex*> vertices; + std::vector<GEdge*> edges; + std::vector<GFace*> faces; + std::vector<GRegion*> regions; + std::vector<MElement*> elements; + char ib = SelectEntity(ENT_SURFACE, vertices, edges, faces, regions, elements); + if(ib == 'l'){ + for(unsigned int i = 0; i < faces.size(); i++) + delete_fourier(faces[i]); + } + Draw(); + Msg(ONSCREEN, ""); + } } void mesh_parameterize_cb(Fl_Widget* w, void* data)