Skip to content
Snippets Groups Projects
Commit 4fe81f0a authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

remove extra includes + add small routine to read params
parent f923de31
No related branches found
No related tags found
No related merge requests found
#include "GModelIO_F.h"
#include "Draw.h"
#include "Options.h"
#include "Context.h"
#include "SelectBuffer.h"
#include "GUI_Projection.h"
#include "GUI_Extras.h"
#include "FFace.h"
extern GModel *GMODEL;
......@@ -11,8 +13,10 @@ extern Context_T CTX;
#if defined(HAVE_FOURIER_MODEL)
#include "FPatch.h"
#define HARDCODED
#include "PlaneProjectionSurface.h"
#include "ParaboloidProjectionSurface.h"
#include "CylindricalProjectionSurface.h"
#include "RevolvedParabolaProjectionSurface.h"
uvPlot::uvPlot(int x, int y, int w, int h, const char *l)
: Fl_Window(x, y, w, h, l), _dmin(0.), _dmax(0.)
......@@ -102,7 +106,7 @@ projection::projection(FProjectionFace *f, int x, int y, int w, int h, int BB, i
group = new Fl_Scroll(x, y, w, h);
SBoundingBox3d bounds = GMODEL->bounds();
ProjectionSurface *ps = f->GetProjectionSurface();
currentParams = new double[ps->GetNumParameters() + 9 + 100]; // FIXME!!!!!!!!!!!!!
currentParams = new double[ps->GetNumParameters() + 9];
for(int i = 0; i < ps->GetNumParameters() + 9; i++){
Fl_Value_Input *v = new Fl_Value_Input(x, y + i * BH, BB, BH);
if(i < 3){ // scaling
......@@ -115,23 +119,14 @@ projection::projection(FProjectionFace *f, int x, int y, int w, int h, int BB, i
}
else if(i < 6){ //rotation
currentParams[i] = 0.;
#if defined HARDCODED
currentParams[5] = 90.;
#endif
v->maximum(-180.);
v->minimum(180.);
v->step(0.1);
v->label((i == 3) ? "X rotation" : (i == 4) ? "Y rotation" :
"Z rotation");
v->label((i == 3) ? "X rotation" : (i == 4) ? "Y rotation" : "Z rotation");
v->value(currentParams[i]);
}
else if(i < 9){ // translation
currentParams[i] = bounds.center()[i - 6];
#if defined HARDCODED
currentParams[6] = 10.97;
currentParams[7] = 0.301;
currentParams[8] = 1.745;
#endif
v->maximum(bounds.max()[i] + 10. * CTX.lc);
v->minimum(bounds.min()[i] - 10. * CTX.lc);
v->step(CTX.lc / 100.);
......@@ -141,11 +136,6 @@ projection::projection(FProjectionFace *f, int x, int y, int w, int h, int BB, i
}
else{ // other parameters
currentParams[i] = ps->GetParameter(i - 9);
#if defined HARDCODED
currentParams[9] = .35;
currentParams[10] = .39;
currentParams[11] = 3.55;
#endif
v->maximum(10. * CTX.lc);
v->minimum(-10. * CTX.lc);
v->step(CTX.lc / 100.);
......@@ -190,10 +180,12 @@ projectionEditor::projectionEditor(std::vector<FProjectionFace*> &faces)
Fl_Toggle_Button *b1 = new Fl_Toggle_Button
(width - WB - 3 * BB / 2, WB, 3 * BB / 2, BH, "Hide unselected");
b1->callback(hide_cb);
Fl_Button *b2 = new Fl_Button
(width - WB - 3 * BB / 2, WB + BH, 3 * BB / 2, BH, "Save selection");
b2->callback(save_cb, this);
b2->callback(save_selection_cb, this);
Fl_Button *b3 = new Fl_Button
(width - WB - 3 * BB / 2, WB + 2 * BH, 3 * BB / 2, BH, "Read parameters");
b3->callback(read_parameters_cb, this);
}
const int brw = (int)(1.25 * BB);
......@@ -535,7 +527,7 @@ void hide_cb(Fl_Widget *w, void *data)
Draw();
}
void save_cb(Fl_Widget *w, void *data)
void save_selection_cb(Fl_Widget *w, void *data)
{
projectionEditor *e = (projectionEditor*)data;
......@@ -550,6 +542,25 @@ void save_cb(Fl_Widget *w, void *data)
}
}
void read_parameters_cb(Fl_Widget *w, void *data)
{
projectionEditor *e = (projectionEditor*)data;
projection *p = e->getCurrentProjection();
if(p){
if(file_chooser(0, 0, "Read parameters", "*.par")){
FILE *fp = fopen(file_chooser_get_name(1), "r");
if(!fp) return;
for(unsigned int i = 0; i < p->parameters.size(); i++){
double val;
if(!fscanf(fp, "%lf", &val)) break;
p->parameters[i]->value(val);
}
fclose(fp);
update_cb(0, data);
}
}
}
void compute_cb(Fl_Widget *w, void *data)
{
projectionEditor *e = (projectionEditor*)data;
......@@ -661,8 +672,9 @@ void action_cb(Fl_Widget *w, void *data)
Msg(ONSCREEN, "");
}
if(what == "delete_last" || what == "delete_all" || what == "delete_select"){
for(unsigned int i = 0; i < faces.size(); i++) delete_fourier(faces[i]);
if(what[0] == 'd'){
for(unsigned int i = 0; i < faces.size(); i++)
delete_fourier(faces[i]);
}
else{
char *filename = "patches.fm";
......
#ifndef _GUI_PROJECTION_H_
#define _GUI_PROJECTION_H_
#include "Gmsh.h"
#include "GmshUI.h"
#include "GModel.h"
#include "GModelIO_F.h"
#include "FProjectionFace.h"
#include "GUI.h"
#include "Shortcut_Window.h"
#include "ColorTable.h"
#include <FL/Fl_Toggle_Button.H>
#include <FL/Fl_Round_Button.H>
#if defined(HAVE_FOURIER_MODEL)
#include "Utils.h"
#include <vector>
#include <complex>
#include "FProjectionFace.h"
#if defined(HAVE_FOURIER_MODEL)
void select_cb(Fl_Widget *w, void *data);
void filter_cb(Fl_Widget *w, void *data);
......@@ -24,7 +20,8 @@ void browse_cb(Fl_Widget *w, void *data);
void update_cb(Fl_Widget *w, void *data);
void close_cb(Fl_Widget *w, void *data);
void hide_cb(Fl_Widget *w, void *data);
void save_cb(Fl_Widget *w, void *data);
void save_selection_cb(Fl_Widget *w, void *data);
void read_parameters_cb(Fl_Widget *w, void *data);
void compute_cb(Fl_Widget *w, void *data);
void action_cb(Fl_Widget *w, void *data);
......@@ -43,8 +40,6 @@ class uvPlot : public Fl_Window {
void get(std::vector<double> &u, std::vector<double> &v, std::vector<double> &dist,
std::vector<std::complex<double> > &f)
{ u = _u; v = _v; dist = _dist; f = _f; }
double dmin() { return _dmin; }
double dmax() { return _dmax; }
};
class projectionEditor;
......
# $Id: Makefile,v 1.138 2007-07-26 17:57:27 geuzaine Exp $
# $Id: Makefile,v 1.139 2007-08-07 03:14:24 geuzaine Exp $
#
# Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
#
......@@ -118,29 +118,29 @@ GUI_Extras.o: GUI_Extras.cpp ../Common/Gmsh.h ../Common/Message.h \
../Post/AdaptiveViews.h ../Common/GmshMatrix.h GUI.h Opengl_Window.h \
Colorbar_Window.h Popup_Button.h SpherePosition_Widget.h \
Shortcut_Window.h
GUI_Projection.o: GUI_Projection.cpp ../Graphics/Draw.h ../DataStr/List.h \
../Post/Views.h ../Post/ColorTable.h ../Common/VertexArray.h \
../Common/SmoothData.h ../Numeric/Numeric.h ../Post/AdaptiveViews.h \
../Common/GmshMatrix.h ../Common/Options.h ../Common/Context.h \
../Graphics/SelectBuffer.h ../Geo/GVertex.h ../Geo/GEntity.h \
../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h \
../Geo/SPoint3.h ../Common/GmshDefines.h ../Geo/MVertex.h \
../Geo/SPoint3.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \
../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/MElement.h ../Geo/MVertex.h \
../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h ../Common/Hash.h \
../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \
../Geo/ExtrudeParams.h ../Geo/GFace.h ../Geo/GPoint.h ../Geo/GEntity.h \
../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/MElement.h ../Geo/SPoint2.h \
../Geo/SVector3.h ../Geo/Pair.h ../Geo/ExtrudeParams.h ../Geo/GRegion.h \
../Geo/GEntity.h ../Geo/MElement.h ../Geo/ExtrudeParams.h \
GUI_Projection.h ../Common/Gmsh.h ../Common/Message.h \
../DataStr/Malloc.h ../DataStr/Tree.h ../DataStr/avl.h \
../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
../Common/GmshUI.h ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEdge.h \
../Geo/GFace.h ../Geo/GRegion.h ../Geo/SBoundingBox3d.h GUI.h \
Opengl_Window.h Colorbar_Window.h Popup_Button.h \
SpherePosition_Widget.h Shortcut_Window.h
GUI_Projection.o: GUI_Projection.cpp ../Geo/GModelIO_F.h ../Geo/GModel.h \
../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Common/GmshDefines.h \
../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/GPoint.h ../Geo/SPoint2.h \
../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h \
../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/MElement.h \
../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
../Common/Hash.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \
../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Geo/GFace.h \
../Geo/GPoint.h ../Geo/GEntity.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h \
../Geo/MElement.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
../Geo/ExtrudeParams.h ../Geo/GRegion.h ../Geo/GEntity.h \
../Geo/MElement.h ../Geo/ExtrudeParams.h ../Geo/SBoundingBox3d.h \
../Graphics/Draw.h ../Post/Views.h ../Post/ColorTable.h \
../Common/VertexArray.h ../Post/AdaptiveViews.h ../Common/GmshMatrix.h \
../Common/Options.h ../Graphics/SelectBuffer.h GUI_Projection.h \
../Common/GmshUI.h ../Geo/FProjectionFace.h ../Geo/GModel.h \
../Geo/Range.h GUI.h Opengl_Window.h Colorbar_Window.h Popup_Button.h \
SpherePosition_Widget.h Shortcut_Window.h GUI_Extras.h ../Geo/FFace.h \
../Geo/GFace.h ../Geo/GModel.h ../Geo/Range.h ../Geo/FEdge.h \
../Geo/GEdge.h ../Geo/GModel.h ../Geo/FVertex.h ../Geo/GModel.h \
../Geo/GVertex.h ../Geo/Range.h ../Common/Message.h
Callbacks.o: Callbacks.cpp ../Common/Gmsh.h ../Common/Message.h \
../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
......
......@@ -7,10 +7,6 @@
#if defined(HAVE_FOURIER_MODEL)
#include "ProjectionSurface.h"
#include "PlaneProjectionSurface.h"
#include "ParaboloidProjectionSurface.h"
#include "CylindricalProjectionSurface.h"
#include "RevolvedParabolaProjectionSurface.h"
class FProjectionFace : public GFace {
protected:
......@@ -43,8 +39,6 @@ class FProjectionFace : public GFace {
virtual bool surfPeriodic(int dim) const {throw;}
inline ProjectionSurface* GetProjectionSurface() { return ps_; }
//virtual void ResetProjectionSurface(int type);
};
#endif
......
# $Id: Makefile,v 1.154 2007-07-31 22:09:11 geuzaine Exp $
# $Id: Makefile,v 1.155 2007-08-07 03:14:24 geuzaine Exp $
#
# Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
#
......@@ -221,9 +221,7 @@ GModelIO_F.o: GModelIO_F.cpp GModel.h GVertex.h GEntity.h Range.h \
SPoint2.h GEdge.h SVector3.h MElement.h MEdge.h ../Common/Hash.h \
MFace.h ../Numeric/Numeric.h ../Common/Context.h ../DataStr/List.h \
ExtrudeParams.h ../Common/SmoothData.h GFace.h GEdgeLoop.h Pair.h \
GRegion.h ../Common/Message.h ../Post/Views.h ../Post/ColorTable.h \
../Common/VertexArray.h ../Post/AdaptiveViews.h ../Common/GmshMatrix.h \
FFace.h FEdge.h FVertex.h ../Mesh/meshGFace.h GModelIO_F.h
GRegion.h ../Common/Message.h FFace.h FEdge.h FVertex.h GModelIO_F.h
GModelIO_CGNS.o: GModelIO_CGNS.cpp GModel.h GVertex.h GEntity.h Range.h \
SPoint3.h SBoundingBox3d.h ../Common/GmshDefines.h MVertex.h GPoint.h \
SPoint2.h GEdge.h SVector3.h MElement.h MEdge.h ../Common/Hash.h \
......
......@@ -51,9 +51,10 @@ depend:
# DO NOT DELETE THIS LINE
ProjectionSurface.o: ProjectionSurface.cpp ProjectionSurface.h
PlaneProjectionSurface.o: PlaneProjectionSurface.cpp PlaneProjectionSurface.h
PlaneProjectionSurface.o: PlaneProjectionSurface.cpp \
PlaneProjectionSurface.h ProjectionSurface.h
ParaboloidProjectionSurface.o: ParaboloidProjectionSurface.cpp \
ParaboloidProjectionSurface.h
ParaboloidProjectionSurface.h Utils.h ProjectionSurface.h
CylindricalProjectionSurface.o: CylindricalProjectionSurface.cpp \
CylindricalProjectionSurface.h ProjectionSurface.h
RevolvedParabolaProjectionSurface.o: \
......@@ -80,9 +81,10 @@ FM_Face.o: FM_Face.cpp FM_Face.h Patch.h ProjectionSurface.h FM_Edge.h \
FM_Info.o: FM_Info.cpp FM_Info.h
FM_Reader.o: FM_Reader.cpp Message.h FM_Reader.h Curve.h \
IntersectionCurve.h Patch.h ProjectionSurface.h FM_Info.h ExactPatch.h \
ContinuationPatch.h PartitionOfUnity.h CylindricalProjectionSurface.h \
RevolvedParabolaProjectionSurface.h Utils.h FM_Face.h FM_Edge.h \
FM_Vertex.h BlendOperator.h BlendedPatch.h
ContinuationPatch.h PartitionOfUnity.h PlaneProjectionSurface.h \
CylindricalProjectionSurface.h ParaboloidProjectionSurface.h Utils.h \
RevolvedParabolaProjectionSurface.h FM_Face.h FM_Edge.h FM_Vertex.h \
BlendOperator.h BlendedPatch.h
FM_Vertex.o: FM_Vertex.cpp
Message.o: Message.cpp Message.h
Utils.o: Utils.cpp Utils.h Message.h
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment