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

*** empty log message ***

parent 9fa40584
Branches
Tags
No related merge requests found
// $Id: Callbacks.cpp,v 1.14 2001-01-11 12:25:23 geuzaine Exp $
// $Id: Callbacks.cpp,v 1.15 2001-01-11 14:11:56 geuzaine Exp $
#include "Gmsh.h"
#include "GmshUI.h"
#include "Geo.h"
#include "Verif.h"
#include "Mesh.h"
#include "Draw.h"
#include "Views.h"
......@@ -20,7 +21,9 @@ extern GUI *WID;
extern Mesh M;
extern Context_T CTX;
// Compatibility routines
///////////////////////////////////////////////////////////////////////////////
// Compatibility/local routines
int AddViewInUI(int i, char *Name, int Num){
if(i > NB_BUTT_MAX -1) return 1;
......@@ -106,6 +109,44 @@ int SetGlobalShortcut(int event){
return WID->global_shortcuts(event);
}
int SelectContour (int type, int num, List_T *Liste1){
int k,ip,i;
List_T *Liste2;
Liste2 = List_Create(1,1,sizeof(int));
if(!List_Nbr(Liste1)){
switch(type){
case ENT_LINE : k = alledgeslinked (num, Liste1, (List_T*)NULL); break;
case ENT_SURFACE : k = allfaceslinked (num, Liste1, (List_T*)NULL); break;
}
}
else{
List_Reset(Liste2);
for(i=0;i<List_Nbr(Liste1);i++)
List_Add(Liste2,List_Pointer(Liste1,i));
List_Reset(Liste1);
switch(type){
case ENT_LINE : k = alledgeslinked (num, Liste1, Liste2); break;
case ENT_SURFACE : k = allfaceslinked (num, Liste1, Liste2); break;
}
}
for(i=0;i<List_Nbr(Liste1);i++){
List_Read(Liste1,i,&ip);
switch(type){
case ENT_LINE : HighlightEntityNum(0,abs(ip),0,1); break ;
case ENT_SURFACE : HighlightEntityNum(0,0,abs(ip),1); break ;
}
}
List_Delete(Liste2);
return k;
}
///////////////////////////////////////////////////////////////////////////////
// Common callbacks
void cancel_cb(CALLBACK_ARGS){
......@@ -532,42 +573,277 @@ void geometry_elementary_add_new_parameter_cb(CALLBACK_ARGS){
void geometry_elementary_add_new_point_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(1);
}
static void _new_line_spline(int mode){
Vertex *v;
Curve *c;
Surface *s;
int ib;
static int n, p[100];
n = 0;
while(1){
Msg(STATUS,"Select Point ('e'=end, 'q'=quit)");
ib = SelectEntity(ENT_POINT, &v,&c,&s);
if(ib == 1){ /* left mouse butt */
p[n++] = v->Num;
}
if (ib == -1){ /* 'e' */
if(n >= 2) {
switch(mode){
case 0 : add_multline(n,p,CTX.filename); break;
case 1 : add_spline(n,p,CTX.filename); break;
}
}
n=0;
ZeroHighlight(&M);
DrawUpdate();
}
if(ib == 0){ /* 'q' */
n=0 ;
ZeroHighlight(&M);
DrawUpdate();
break;
}
}
Msg(STATUS,"Ready");
}
void geometry_elementary_add_new_line_cb(CALLBACK_ARGS){
printf("new line\n");
_new_line_spline(0);
}
void geometry_elementary_add_new_spline_cb(CALLBACK_ARGS){
printf("new spline\n");
_new_line_spline(1);
}
void geometry_elementary_add_new_circle_cb(CALLBACK_ARGS){
printf("new circle\n");
Vertex *v;
Curve *c;
Surface *s;
int ib;
static int n, p[100];
n=0;
while(1){
if(n == 0) Msg(STATUS,"Select Center ('q'=quit)");
if(n == 1) Msg(STATUS,"Select Starting Point ('q'=quit)");
if(n == 2) Msg(STATUS,"Select Ending Point ('q'=quit)");
ib = SelectEntity(ENT_POINT, &v,&c,&s);
if(ib == 1) { /* left mouse butt */
p[n++] = v->Num;
}
if(ib == 0) { /* 'q' */
n=0 ;
ZeroHighlight(&M);
DrawUpdate();
break;
}
if(n == 3){
add_circ(p[1],p[0],p[2],CTX.filename); /* begin, center, end */
ZeroHighlight(&M);
DrawUpdate();
n=0;
}
}
Msg(STATUS,"Ready");
}
void geometry_elementary_add_new_ellipsis_cb(CALLBACK_ARGS){
printf("new ellipsis\n");
Vertex *v;
Curve *c;
Surface *s;
int ib;
static int n, p[100];
n=0;
while(1){
if(n == 0) Msg(STATUS,"Select Center ('q'=quit)");
if(n == 1) Msg(STATUS,"Select an Axis Point ('q'=quit)");
if(n == 2) Msg(STATUS,"Select Starting Point ('q'=quit)");
if(n == 3) Msg(STATUS,"Select Ending Point ('q'=quit)");
ib = SelectEntity(ENT_POINT, &v,&c,&s);
if(ib == 1) { /* left mouse butt */
p[n++] = v->Num;
}
if(ib == 0){ /* 'q' */
n=0 ;
ZeroHighlight(&M);
DrawUpdate();
break;
}
if(n == 4){
add_ell(p[3],p[2],p[0],p[1],CTX.filename);
ZeroHighlight(&M);
DrawUpdate();
n=0;
}
}
Msg(STATUS,"Ready");
}
static void _new_surface_volume(int mode){
Vertex *v;
Curve *c;
Surface *s;
int ib, type, zone;
List_T *Liste1, *Liste2;
Liste1 = List_Create(10,10,sizeof(int));
Liste2 = List_Create(10,10,sizeof(int));
if(mode == 2)
type = ENT_SURFACE;
else
type = ENT_LINE;
while(1){
List_Reset(Liste1);
List_Reset(Liste2);
while(1) {
Msg(STATUS,"Select Boundary ('q'=quit)");
ib = SelectEntity(type, &v,&c,&s);
if(ib <= 0){
ZeroHighlight(&M);
DrawUpdate();
goto stopall;
}
if(SelectContour (type, (type==ENT_LINE)?c->Num:s->Num, Liste1)){
if(type==ENT_LINE)
add_loop(Liste1,CTX.filename,&zone);
else
add_vol(Liste1,CTX.filename,&zone);
List_Reset(Liste1);
List_Add(Liste2,&zone);
while(1){
Msg(STATUS,"Select Holes ('q'=quit)");
ib = SelectEntity(type, &v,&c,&s);
if(ib <= 0){
ZeroHighlight(&M);
DrawUpdate();
break;
}
if(SelectContour (type, (type==ENT_LINE)?c->Num:s->Num, Liste1)){
if(type==ENT_LINE)
add_loop(Liste1,CTX.filename,&zone);
else
add_vol(Liste1,CTX.filename,&zone);
List_Reset(Liste1);
List_Add(Liste2,&zone);
}
}
if(List_Nbr(Liste2)){
switch(mode){
case 0 : add_surf(Liste2,CTX.filename,0,1); break;
case 1 : add_surf(Liste2,CTX.filename,0,2); break;
case 2 : add_multvol(Liste2,CTX.filename); break;
}
ZeroHighlight(&M);
DrawUpdate();
break;
}
}
}
}
stopall : ;
List_Delete(Liste1);
List_Delete(Liste2);
Msg(STATUS,"Ready");
}
void geometry_elementary_add_new_planesurface_cb(CALLBACK_ARGS){
printf("new plane surf\n");
_new_surface_volume(0);
}
void geometry_elementary_add_new_ruledsurface_cb(CALLBACK_ARGS){
printf("new rules surf\n");
_new_surface_volume(1);
}
void geometry_elementary_add_new_volume_cb(CALLBACK_ARGS){
printf("new vol\n");
_new_surface_volume(2);
}
static void _translate_point(int mode){
Vertex *v;
Curve *c;
Surface *s;
while(1){
Msg(STATUS,"Select Point ('q'=quit)");
if(!SelectEntity(ENT_POINT, &v,&c,&s)){
ZeroHighlight(&M);
DrawUpdate();
break;
}
translate_pt(mode,v->Num,CTX.filename);
ZeroHighlight(&M);
DrawUpdate();
}
}
static void _translate_curve(int mode){
Vertex *v;
Curve *c;
Surface *s;
while(1){
Msg(STATUS,"Select Line ('q'=quit)");
if(!SelectEntity(ENT_LINE, &v,&c,&s)){
ZeroHighlight(&M);
DrawUpdate();
break;
}
translate_seg(mode,c->Num,CTX.filename);
ZeroHighlight(&M);
DrawUpdate();
}
}
static void _translate_surface(int mode){
Vertex *v;
Curve *c;
Surface *s;
while(1){
Msg(STATUS,"Select Surface ('q'=quit)");
if(!SelectEntity(ENT_SURFACE, &v,&c,&s)){
ZeroHighlight(&M);
DrawUpdate();
break;
}
translate_surf(mode,s->Num,CTX.filename);
ZeroHighlight(&M);
DrawUpdate();
}
}
void geometry_elementary_add_translate_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_add_translate, 0);
}
void geometry_elementary_add_translate_point_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(2);
printf("translate point\n");
_translate_point(1);
}
void geometry_elementary_add_translate_curve_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(2);
printf("translate curve\n");
_translate_curve(1);
}
void geometry_elementary_add_translate_surface_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(2);
printf("translate surface\n");
_translate_surface(1);
}
void geometry_elementary_translate_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_translate, 0);
}
void geometry_elementary_translate_point_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(2);
_translate_point(0);
}
void geometry_elementary_translate_curve_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(2);
_translate_curve(0);
}
void geometry_elementary_translate_surface_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(2);
_translate_surface(0);
}
void geometry_elementary_add_rotate_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_add_rotate, 0);
}
......@@ -583,51 +859,6 @@ void geometry_elementary_add_rotate_surface_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(3);
printf("rotate surf\n");
}
void geometry_elementary_add_scale_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_add_scale, 0);
}
void geometry_elementary_add_scale_point_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(4);
printf("scale point\n");
}
void geometry_elementary_add_scale_curve_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(4);
printf("scale curve\n");
}
void geometry_elementary_add_scale_surface_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(4);
printf("scale surface\n");
}
void geometry_elementary_add_symmetry_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_add_symmetry, 0);
}
void geometry_elementary_add_symmetry_point_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(5);
printf("symm point\n");
}
void geometry_elementary_add_symmetry_curve_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(5);
printf("symm curve\n");
}
void geometry_elementary_add_symmetry_surface_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(5);
printf("symm surf\n");
}
void geometry_elementary_translate_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_translate, 0);
}
void geometry_elementary_translate_point_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(2);
printf("translate point\n");
}
void geometry_elementary_translate_curve_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(2);
printf("translate curve\n");
}
void geometry_elementary_translate_surface_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(2);
printf("translate surf\n");
}
void geometry_elementary_rotate_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_rotate, 0);
}
......@@ -643,6 +874,24 @@ void geometry_elementary_rotate_surface_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(3);
printf("rot surf\n");
}
void geometry_elementary_add_scale_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_add_scale, 0);
}
void geometry_elementary_add_scale_point_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(4);
printf("scale point\n");
}
void geometry_elementary_add_scale_curve_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(4);
printf("scale curve\n");
}
void geometry_elementary_add_scale_surface_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(4);
printf("scale surface\n");
}
void geometry_elementary_scale_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_scale, 0);
}
......@@ -658,6 +907,25 @@ void geometry_elementary_scale_surface_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(4);
printf("scale surf\n");
}
void geometry_elementary_add_symmetry_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_add_symmetry, 0);
}
void geometry_elementary_add_symmetry_point_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(5);
printf("symm point\n");
}
void geometry_elementary_add_symmetry_curve_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(5);
printf("symm curve\n");
}
void geometry_elementary_add_symmetry_surface_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(5);
printf("symm surf\n");
}
void geometry_elementary_symmetry_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_symmetry, 0);
}
......@@ -673,6 +941,9 @@ void geometry_elementary_symmetry_surface_cb(CALLBACK_ARGS){
WID->create_geometry_context_window(5);
printf("symm surf\n");
}
void geometry_elementary_extrude_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_extrude, 0);
}
......
// $Id: CreateFile.cpp,v 1.7 2001-01-10 20:23:37 geuzaine Exp $
// $Id: CreateFile.cpp,v 1.8 2001-01-11 14:18:07 geuzaine Exp $
#include "Gmsh.h"
#include "GmshUI.h"
......@@ -21,7 +21,11 @@ extern XContext_T XCTX;
#include "gl2ps.h"
#include "gl2gif.h"
#if !defined(WIN32) && !defined(__CYGWIN__)
#include "gl2jpeg.h"
#endif
#include "gl2ppm.h"
#include "gl2yuv.h"
......@@ -100,7 +104,7 @@ void CreateFile (char *name, int format) {
break;
#endif
#ifndef WIN32
#if !defined(WIN32) && !defined(__CYGWIN__)
case FORMAT_JPEG :
if(!(fp = fopen(name,"wb"))) {
Msg(WARNING, "Unable to Open File '%s'", name);
......
// $Id: Geom.cpp,v 1.10 2001-01-10 08:50:30 geuzaine Exp $
// $Id: Geom.cpp,v 1.11 2001-01-11 14:11:57 geuzaine Exp $
#include "Gmsh.h"
#include "GmshUI.h"
......@@ -20,7 +20,7 @@ extern Mesh *THEM;
static int Highlighted = 0;
void Draw_Point (void *a, void *b){
void Draw_GeoPoint (void *a, void *b){
Vertex **v;
char Num[100];
......@@ -743,7 +743,7 @@ void Draw_Geom (Mesh *m) {
if(m->status == -1) return;
if(CTX.geom.points || CTX.geom.points_num)
Tree_Action(m->Points, Draw_Point);
Tree_Action(m->Points, Draw_GeoPoint);
if(CTX.geom.lines || CTX.geom.lines_num)
Tree_Action(m->Curves, Draw_Curve );
if(CTX.geom.surfaces || CTX.geom.surfaces_num)
......@@ -813,7 +813,7 @@ void HighlightEntity(Vertex *v,Curve *c, Surface *s, int permanent){
if(v){
if(permanent) v->Frozen = 1;
if(CTX.geom.highlight) Draw_Point(&v,NULL);
if(CTX.geom.highlight) Draw_GeoPoint(&v,NULL);
Msg(SELECT,"Point %d {%.5g,%.5g,%.5g} (%.5g)", v->Num,v->Pos.X,v->Pos.Y,v->Pos.Z,v->lc);
}
else if(c){
......
// $Id: XDump.cpp,v 1.4 2001-01-11 07:34:25 geuzaine Exp $
// $Id: XDump.cpp,v 1.5 2001-01-11 14:15:09 geuzaine Exp $
/* This is a modified version for Gmsh (mainly for c++ compliance) */
......@@ -56,7 +56,7 @@
* 12 so a correct file is written. BEP July-21-95
*/
#ifndef WIN32
#ifdef _XMOTIF
typedef struct {
unsigned int /*long*/ pixel;
......@@ -452,5 +452,7 @@ void Window_Dump(Display *display, int scr, Window window, FILE *out){
*/
XDestroyImage(image);
}
#endif
#endif //_XMOTIF
// $Id: gl2jpeg.cpp,v 1.4 2001-01-08 08:05:44 geuzaine Exp $
// $Id: gl2jpeg.cpp,v 1.5 2001-01-11 14:18:07 geuzaine Exp $
#if !defined(WIN32) && !defined(__CYGWIN__)
#include "Gmsh.h"
#include "GmshUI.h"
......@@ -57,3 +59,7 @@ void create_jpeg(FILE *outfile, int width, int height, int quality){
Free(pixels);
}
#endif //if !defined(__CYGWIN__)
// $Id: gl2ps.cpp,v 1.6 2001-01-09 19:40:56 remacle Exp $
// $Id: gl2ps.cpp,v 1.7 2001-01-11 14:11:57 geuzaine Exp $
/*
* GL2PS, an OpenGL to Postscript Printing Library, version 0.31
......@@ -24,13 +24,11 @@
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifdef WIN32
#include <windows.h>
#endif
#include <string.h>
#include "Gmsh.h"
#include "GmshUI.h"
#include <sys/types.h>
#include <malloc.h>
#include <math.h>
#include <stdarg.h>
#include <time.h>
......
......@@ -28,7 +28,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <GL/gl.h>
//#include <GL/gl.h>
#define GL2PS_NONE 0
......
# $Id: Makefile,v 1.34 2001-01-09 16:09:50 geuzaine Exp $
# $Id: Makefile,v 1.35 2001-01-11 14:19:48 geuzaine Exp $
# ----------------------------------------------------------------------
# Makefile for Gmsh
# ----------------------------------------------------------------------
......@@ -110,7 +110,7 @@ gmsh2:
gmsh3:
$(CC) -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB) $(MESA_LIB) \
$(FLTK_LIB) $(THREAD_LIB) -lm
$(FLTK_LIB) -lm
gmsh4:
$(CC) -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB) $(MESA_LIB) \
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment