From d33bd310b16f4503bbad9188af3048d48bcdf9c6 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Fri, 24 Nov 2000 12:50:06 +0000 Subject: [PATCH] *** empty log message *** --- Geo/Geo.h | 3 +-- Geo/Print_Geo.cpp | 58 ++++++++++++++++++++++++++++++++++------------ Geo/Print_Geo.h | 8 ------- Graphics/Draw.h | 7 +----- Mesh/Mesh.h | 8 ++++++- Unix/CbFile.cpp | 11 ++++++--- Unix/CbFile.h | 10 ++++---- Unix/CbOptions.cpp | 19 ++++++++++----- Unix/CbOptions.h | 3 ++- Unix/Main.cpp | 9 ++++--- Unix/Register.cpp | 3 ++- Unix/Widgets.cpp | 12 ++++++---- 12 files changed, 96 insertions(+), 55 deletions(-) delete mode 100644 Geo/Print_Geo.h diff --git a/Geo/Geo.h b/Geo/Geo.h index 40ce7b0c01..5688c4af60 100644 --- a/Geo/Geo.h +++ b/Geo/Geo.h @@ -1,4 +1,4 @@ -/* $Id: Geo.h,v 1.2 2000-11-23 14:11:30 geuzaine Exp $ */ +/* $Id: Geo.h,v 1.3 2000-11-24 12:49:59 geuzaine Exp $ */ #ifndef _GEO_H_ #define _GEO_H_ @@ -110,5 +110,4 @@ void rotate(int add, int s, char *fich, char *quoi); void dilate(int add, int s, char *fich, char *quoi); void protude(int s, char *fich, char *what); - #endif diff --git a/Geo/Print_Geo.cpp b/Geo/Print_Geo.cpp index 2fdfd0e93d..fbac4debf7 100644 --- a/Geo/Print_Geo.cpp +++ b/Geo/Print_Geo.cpp @@ -1,4 +1,4 @@ -/* $Id: Print_Geo.cpp,v 1.2 2000-11-23 14:11:30 geuzaine Exp $ */ +/* $Id: Print_Geo.cpp,v 1.3 2000-11-24 12:49:59 geuzaine Exp $ */ #include "Gmsh.h" #include "Geo.h" @@ -11,7 +11,7 @@ FILE *FOUT; void Print_Point(void *a, void *b){ Vertex *v; v = *(Vertex**)a; - fprintf(FOUT, "Point(%d) = {%g, %gE, %g, %g};\n", + fprintf(FOUT, "Point(%d) = {%g, %g, %g, %g};\n", v->Num,v->Pos.X,v->Pos.Y,v->Pos.Z,v->lc); } @@ -31,8 +31,8 @@ void Print_Nurbs (Curve *c, FILE *f){ fprintf(f,"}\n"); fprintf(f,"Knots {"); for(j=0;j<List_Nbr(c->Control_Points)+c->degre+1;j++){ - if(!j)fprintf(f,"%12.5E",c->k[j]); - else fprintf(f,",%12.5E",c->k[j]); + if(!j)fprintf(f,"%g",c->k[j]); + else fprintf(f,",%g",c->k[j]); if(j%5 == 4 && j!=List_Nbr(c->Control_Points)+c->degre)fprintf(FOUT,"\n"); } fprintf(f,"}"); @@ -52,6 +52,9 @@ void Print_Curve(void *a, void *b){ fprintf(FOUT,"Line (%d) = ",c->Num); break; case MSH_SEGM_CIRC: + case MSH_SEGM_CIRC_INV: + case MSH_SEGM_ELLI: + case MSH_SEGM_ELLI_INV: fprintf(FOUT,"Circle (%d) = ",c->Num); break; case MSH_SEGM_NURBS: @@ -60,6 +63,9 @@ void Print_Curve(void *a, void *b){ case MSH_SEGM_SPLN: fprintf(FOUT,"CatmullRom (%d) = ",c->Num); break; + default: + Msg(ERROR, "Unknown Curve Type %d", c->Typ); + return; } for(i=0;i<List_Nbr(c->Control_Points);i++){ @@ -70,11 +76,19 @@ void Print_Curve(void *a, void *b){ fprintf(FOUT,"{%d",v->Num); if(i%6 == 7)fprintf(FOUT,"\n"); } - if(c->Typ != MSH_SEGM_CIRC) - fprintf(FOUT,"};\n"); - else - fprintf(FOUT,"} Plane{%12.5E,%12.5E,%12.5E};\n", + + switch(c->Typ){ + case MSH_SEGM_CIRC: + case MSH_SEGM_CIRC_INV: + case MSH_SEGM_ELLI: + case MSH_SEGM_ELLI_INV: + fprintf(FOUT,"} Plane{%g,%g,%g};\n", c->Circle.n[0],c->Circle.n[1],c->Circle.n[2]); + break; + default : + fprintf(FOUT,"};\n"); + break; + } } @@ -128,14 +142,14 @@ void Print_Surface(void *a, void *b){ } fprintf(FOUT,"\t\tKnots\n\t\t{"); for(j=0;j<s->Nu+s->OrderU+1;j++){ - if(!j)fprintf(FOUT,"%12.5E",s->ku[j]); - else fprintf(FOUT,",%12.5E",s->ku[j]); + if(!j)fprintf(FOUT,"%g",s->ku[j]); + else fprintf(FOUT,",%g",s->ku[j]); if(j%5 == 4 && j!=s->Nu + s->OrderU)fprintf(FOUT,"\n\t\t"); } fprintf(FOUT,"}\n\t\t{"); for(j=0;j<s->Nv+s->OrderV+1;j++){ - if(!j)fprintf(FOUT,"%12.5E",s->kv[j]); - else fprintf(FOUT,",%12.5E",s->kv[j]); + if(!j)fprintf(FOUT,"%g",s->kv[j]); + else fprintf(FOUT,",%g",s->kv[j]); if(j%5 == 4 && j!=s->Nv + s->OrderV)fprintf(FOUT,"\n\t\t"); } fprintf(FOUT,"}\n\t\tOrder %3d %3d;\n\n",s->OrderU,s->OrderV); @@ -145,11 +159,25 @@ void Print_Surface(void *a, void *b){ void Print_Geo(Mesh *M, char *filename){ Coherence_PS(); - FOUT = fopen(filename,"w"); - if(!FOUT)return; + + if(filename){ + FOUT = fopen(filename,"w"); + if(!FOUT){ + Msg(WARNING, "Unable to Open File '%s'", filename); + return; + } + } + else + FOUT = stdout; + Tree_Action(M->Points,Print_Point); Tree_Action(M->Curves,Print_Curve); Tree_Action(M->Surfaces,Print_Surface); - fclose(FOUT); + + if(filename){ + Msg (INFOS, "Wrote File '%s'", filename); + fclose(FOUT); + } + } diff --git a/Geo/Print_Geo.h b/Geo/Print_Geo.h deleted file mode 100644 index a5aeec5526..0000000000 --- a/Geo/Print_Geo.h +++ /dev/null @@ -1,8 +0,0 @@ -/* $Id: Print_Geo.h,v 1.2 2000-11-23 14:11:30 geuzaine Exp $ */ -#ifndef _PRINT_GEO_H_ -#define _PRINT_GEO_H_ - -void Print_Geo(Mesh *M, char *filename); - - -#endif diff --git a/Graphics/Draw.h b/Graphics/Draw.h index 57525a1c90..fdbf7e0b04 100644 --- a/Graphics/Draw.h +++ b/Graphics/Draw.h @@ -1,4 +1,4 @@ -/* $Id: Draw.h,v 1.3 2000-11-23 16:51:29 geuzaine Exp $ */ +/* $Id: Draw.h,v 1.4 2000-11-24 12:50:01 geuzaine Exp $ */ #ifndef _DRAW_H_ #define _DRAW_H_ @@ -17,11 +17,6 @@ #define PRINT_GL2PS_IMAGE 4 #define PRINT_GL2GIF 5 -#define FORMAT_XPM 1 -#define FORMAT_EPS 2 -#define FORMAT_BMP 3 -#define FORMAT_GIF 4 - void Init(void); void InitOv(void); void InitShading(void); diff --git a/Mesh/Mesh.h b/Mesh/Mesh.h index 2a4b5439de..a5d42b2608 100644 --- a/Mesh/Mesh.h +++ b/Mesh/Mesh.h @@ -1,4 +1,4 @@ -/* $Id: Mesh.h,v 1.4 2000-11-23 15:05:59 geuzaine Exp $ */ +/* $Id: Mesh.h,v 1.5 2000-11-24 12:50:03 geuzaine Exp $ */ #ifndef _MESH_H_ #define _MESH_H_ @@ -10,6 +10,11 @@ #define FORMAT_MSH 1 #define FORMAT_UNV 2 #define FORMAT_GREF 3 +#define FORMAT_XPM 4 +#define FORMAT_EPS 5 +#define FORMAT_BMP 6 +#define FORMAT_GIF 7 +#define FORMAT_GEO 7 #define CONV_VALUE 0.8 @@ -413,6 +418,7 @@ void mai3d (Mesh * M, int Asked); void Init_Mesh (Mesh * M, int all); void Create_BgMesh (int i, double d, Mesh * m); +void Print_Geo (Mesh * M, char *c); void Print_Mesh (Mesh * M, char *c, int Type); void Read_Mesh (Mesh * M, FILE * File_GEO, int Type); void GetStatistics (double s[50]); diff --git a/Unix/CbFile.cpp b/Unix/CbFile.cpp index 4052c4c6bf..68967c9297 100644 --- a/Unix/CbFile.cpp +++ b/Unix/CbFile.cpp @@ -1,4 +1,4 @@ -/* $Id: CbFile.cpp,v 1.5 2000-11-23 23:20:35 geuzaine Exp $ */ +/* $Id: CbFile.cpp,v 1.6 2000-11-24 12:50:06 geuzaine Exp $ */ #include <unistd.h> @@ -147,8 +147,13 @@ void FileCb(Widget w, XtPointer client_data, XtPointer call_data){ case FILE_SAVE_COLORTABLE_AS : SaveToDisk(c, WID.ED.saveDialog, SaveColorTable); break; case FILE_CANCEL : WARNING_OVERRIDE = 0; break; case FILE_PRINT : - SaveToDisk(c, WID.ED.printDialog, CreateImage); - Init(); Draw(); break; + if(CTX.print.format == FORMAT_GEO) + Print_Geo(&M, c); + else{ + SaveToDisk(c, WID.ED.printDialog, CreateImage); + Init(); Draw(); + } + break; default : Msg(WARNING, "Unknown event in FileCb : %d", (long int)client_data); break; diff --git a/Unix/CbFile.h b/Unix/CbFile.h index 7e25566c24..be019706f2 100644 --- a/Unix/CbFile.h +++ b/Unix/CbFile.h @@ -1,13 +1,13 @@ -/* $Id: CbFile.h,v 1.2 2000-11-23 14:11:40 geuzaine Exp $ */ +/* $Id: CbFile.h,v 1.3 2000-11-24 12:50:06 geuzaine Exp $ */ #ifndef _CB_FILE_H_ #define _CB_FILE_H_ #define FILE_LOAD_GEOM 301 #define FILE_LOAD_POST 302 -#define FILE_SAVE_MESH 303 -#define FILE_SAVE_MESH_AS 304 -#define FILE_SAVE_COLORTABLE_AS 305 -#define FILE_PRINT 306 +#define FILE_SAVE_MESH 304 +#define FILE_SAVE_MESH_AS 305 +#define FILE_SAVE_COLORTABLE_AS 306 +#define FILE_PRINT 307 #define FILE_CANCEL 308 #endif diff --git a/Unix/CbOptions.cpp b/Unix/CbOptions.cpp index a12df68460..7511f1f6f8 100644 --- a/Unix/CbOptions.cpp +++ b/Unix/CbOptions.cpp @@ -1,4 +1,4 @@ -/* $Id: CbOptions.cpp,v 1.5 2000-11-23 23:20:35 geuzaine Exp $ */ +/* $Id: CbOptions.cpp,v 1.6 2000-11-24 12:50:06 geuzaine Exp $ */ #include "Gmsh.h" #include "GmshUI.h" @@ -112,11 +112,18 @@ void OptionsCb (Widget w, XtPointer client_data, XtPointer call_data){ /* print */ - case OPTIONS_PRINT_XDUMP : CTX.print.type = PRINT_XDUMP; CTX.print.format = FORMAT_XPM; break; - case OPTIONS_PRINT_GL2GIF : CTX.print.type = PRINT_GL2GIF; CTX.print.format = FORMAT_GIF; break; - case OPTIONS_PRINT_GL2PS_SIMPLE : CTX.print.type = PRINT_GL2PS_SIMPLE; CTX.print.format = FORMAT_EPS;break; - case OPTIONS_PRINT_GL2PS_COMPLEX: CTX.print.type = PRINT_GL2PS_RECURSIVE; CTX.print.format = FORMAT_EPS;break; - case OPTIONS_PRINT_GL2PS_IMAGE : CTX.print.type = PRINT_XDUMP; CTX.print.format = FORMAT_EPS;break; + case OPTIONS_PRINT_XDUMP : + CTX.print.type = PRINT_XDUMP; CTX.print.format = FORMAT_XPM; break; + case OPTIONS_PRINT_GL2GIF : + CTX.print.type = PRINT_GL2GIF; CTX.print.format = FORMAT_GIF; break; + case OPTIONS_PRINT_GL2PS_SIMPLE : + CTX.print.type = PRINT_GL2PS_SIMPLE; CTX.print.format = FORMAT_EPS;break; + case OPTIONS_PRINT_GL2PS_COMPLEX: + CTX.print.type = PRINT_GL2PS_RECURSIVE; CTX.print.format = FORMAT_EPS;break; + case OPTIONS_PRINT_GL2PS_IMAGE : + CTX.print.type = PRINT_XDUMP; CTX.print.format = FORMAT_EPS;break; + case OPTIONS_PRINT_GEO : + CTX.print.type = -1; CTX.print.format = FORMAT_GEO;break; /* geometrie */ diff --git a/Unix/CbOptions.h b/Unix/CbOptions.h index bc08648dec..30ee0a8bdd 100644 --- a/Unix/CbOptions.h +++ b/Unix/CbOptions.h @@ -1,4 +1,4 @@ -/* $Id: CbOptions.h,v 1.5 2000-11-23 23:20:35 geuzaine Exp $ */ +/* $Id: CbOptions.h,v 1.6 2000-11-24 12:50:06 geuzaine Exp $ */ #ifndef _CB_OPTIONS_H_ #define _CB_OPTIONS_H_ @@ -102,5 +102,6 @@ #define OPTIONS_PRINT_GL2PS_COMPLEX 402 #define OPTIONS_PRINT_GL2PS_IMAGE 403 #define OPTIONS_PRINT_GL2GIF 404 +#define OPTIONS_PRINT_GEO 405 #endif diff --git a/Unix/Main.cpp b/Unix/Main.cpp index 51ad55f630..ccf7f0150a 100644 --- a/Unix/Main.cpp +++ b/Unix/Main.cpp @@ -1,4 +1,4 @@ -/* $Id: Main.cpp,v 1.9 2000-11-24 08:04:14 geuzaine Exp $ */ +/* $Id: Main.cpp,v 1.10 2000-11-24 12:50:06 geuzaine Exp $ */ #include <signal.h> @@ -42,9 +42,9 @@ char gmsh_url[] = "URL : " GMSH_URL ; char gmsh_help[] = "Usage: %s [options] [files]\n" "Mesh options:\n" - " -0 parse input and exit\n" + " -0 parse input and output analysed geometry\n" " -1, -2, -3 batch 1-, 2- or 3-dimensional mesh\n" - " -format msh|unv mesh format (default: msh)\n" + " -format msh|unv|gref output format (default: msh)\n" " -algo iso|aniso mesh algorithm (default: iso)\n" " -smooth int mesh smoothing (default: 0)\n" " -degree int mesh degree (default: 1)\n" @@ -509,6 +509,9 @@ int main(int argc, char *argv[]){ mai3d(THEM, CTX.interactive); Print_Mesh(THEM,NULL,CTX.mesh.format); } + else{ + Print_Geo(THEM, NULL); + } exit(1); } } diff --git a/Unix/Register.cpp b/Unix/Register.cpp index 53448f9e55..dbc739f910 100644 --- a/Unix/Register.cpp +++ b/Unix/Register.cpp @@ -1,4 +1,4 @@ -/* $Id: Register.cpp,v 1.5 2000-11-23 23:20:35 geuzaine Exp $ */ +/* $Id: Register.cpp,v 1.6 2000-11-24 12:50:06 geuzaine Exp $ */ #include "Gmsh.h" #include "GmshUI.h" @@ -150,6 +150,7 @@ void RegisterCallbacks_FD(Widgets_T *w){ register_activate_cb (w->FD.printButt[1], OptionsCb, OPTIONS_PRINT_GL2PS_COMPLEX); register_activate_cb (w->FD.printButt[2], OptionsCb, OPTIONS_PRINT_XDUMP); register_activate_cb (w->FD.printButt[3], OptionsCb, OPTIONS_PRINT_GL2GIF); + register_activate_cb (w->FD.printButt[4], OptionsCb, OPTIONS_PRINT_GEO); } void RegisterCallbacks_OD(Widgets_T *w){ diff --git a/Unix/Widgets.cpp b/Unix/Widgets.cpp index 74ab0e90a0..ade5fe90cc 100644 --- a/Unix/Widgets.cpp +++ b/Unix/Widgets.cpp @@ -1,4 +1,4 @@ -/* $Id: Widgets.cpp,v 1.6 2000-11-24 09:44:05 geuzaine Exp $ */ +/* $Id: Widgets.cpp,v 1.7 2000-11-24 12:50:06 geuzaine Exp $ */ #include "Gmsh.h" #include "GmshUI.h" @@ -80,13 +80,13 @@ void CreateWidgets_M(Widgets_T *w){ XtManageChild(w->M.fileSep[0]); i=0; - XtSetArg(arg[i], XmNlabelString, XmStringCreateSimple("Save")); i++; + XtSetArg(arg[i], XmNlabelString, XmStringCreateSimple("Save Mesh")); i++; XtSetArg(arg[i], XmNacceleratorText, XmStringCreateSimple("(C-s)")); i++; w->M.fileButt[2] = XmCreatePushButton(w->M.filePane, "MfileButt2", arg, i); XtManageChild(w->M.fileButt[2]); i=0; - XtSetArg(arg[i], XmNlabelString, XmStringCreateSimple("Save as")); i++; + XtSetArg(arg[i], XmNlabelString, XmStringCreateSimple("Save Mesh as")); i++; XtSetArg(arg[i], XmNacceleratorText, XmStringCreateSimple("(C-S-s)")); i++; XtSetArg(arg[i], XmNaccelerator, "Ctrl<Key>s:"); i++; w->M.fileButt[3] = XmCreatePushButton(w->M.filePane, "MfileButt3", arg, i); @@ -589,7 +589,7 @@ void CreateWidgets_FD(Widgets_T *w){ /* save as */ i=0 ; - XtSetArg(arg[i], XmNdialogTitle, XmStringCreateSimple("Save Mesh")); i++; + XtSetArg(arg[i], XmNdialogTitle, XmStringCreateSimple("Save")); i++; XtSetArg(arg[i], XmNnoMatchString, XmStringCreateSimple("[ NONE ]")); i++; XtSetArg(arg[i], XmNdirMask, XmStringCreateSimple("*")); i++; XtSetArg(arg[i], XmNautoUnmanage, True); i++; @@ -678,7 +678,11 @@ void CreateWidgets_FD(Widgets_T *w){ w->FD.printButt[3] = XmCreatePushButton(w->FD.printPane[0], "MprintButt3", arg, i); XtManageChild(w->FD.printButt[3]); i=0; + XtSetArg(arg[i], XmNlabelString, XmStringCreateSimple("GEO")); i++; + w->FD.printButt[4] = XmCreatePushButton(w->FD.printPane[0], "MprintButt3", arg, i); + XtManageChild(w->FD.printButt[4]); + i=0; XtSetArg(arg[i], XmNsubMenuId, w->FD.printPane[0]); i++; XtSetArg(arg[i], XmNspacing, 0); i++; w->FD.printMenu[0] = XmCreateOptionMenu(w->FD.printRowCol, "FDprintMenu0", arg, i); -- GitLab