trimesh.fl 104 KB
Newer Older
Edward Vigmond's avatar
Edward Vigmond committed
1
# data file for the Fltk User Interface Designer (fluid)
vigmond's avatar
vigmond committed
2
version 1.0305
3
header_name {.h}
Edward Vigmond's avatar
Edward Vigmond committed
4
code_name {.cc}
5
decl {\#include "Surfaces.h"} {public local
6
}
Edward Vigmond's avatar
Edward Vigmond committed
7

Edward Vigmond's avatar
Edward Vigmond committed
8
decl {\#include <vector>} {private local
9
}
10

Edward Vigmond's avatar
Edward Vigmond committed
11 12 13
decl {\#include<list>} {public global
}

14 15 16
decl {\#include <algorithm>} {private local
}

Edward Vigmond's avatar
Edward Vigmond committed
17
decl {class TBmeshWin;} {public local
18
}
Edward Vigmond's avatar
Edward Vigmond committed
19

Edward Vigmond's avatar
Edward Vigmond committed
20
decl {\#include "HDF5DataBrowser.h"} {private local
21
}
Edward Vigmond's avatar
Edward Vigmond committed
22

Edward Vigmond's avatar
Edward Vigmond committed
23
decl {class IsoSurface;} {public local
24
}
25

Edward Vigmond's avatar
Edward Vigmond committed
26
decl {class ObjProps;} {public local
27
}
Edward Vigmond's avatar
Edward Vigmond committed
28

Edward Vigmond's avatar
Edward Vigmond committed
29 30 31 32 33 34
decl {\#define MaxRecentSz 10} {private local
}

decl {enum DATA_SET_TYPE { ASCII, IGB, AUX, DYN_PTS, HDF5, VECT };} {public global
}

Edward Vigmond's avatar
Edward Vigmond committed
35
decl {\#define SAVE_WIDGET(f,a) f<<\#a<<" = "<<double(a->value())<<endl;} {private local
36
}
37

Edward Vigmond's avatar
Edward Vigmond committed
38
decl {\#define TEST_VAR(A,B,C) if(!strcmp(\#A,B)){A->value(C);A->do_callback();continue;}} {private local
39
}
40

41
decl {\#define TEST_RADIO(A,B,C,D) if(!strcmp(\#A,B)){if(C){A->setonly();A->do_callback(D);}continue;}} {private local
42
}
43

Edward Vigmond's avatar
Edward Vigmond committed
44
decl {\#define TEST_CHOICE(A,B,C) if(!strcmp(\#A,B)){A->value(C);A->mvalue()->do_callback(A);continue;}} {private local
45
}
Edward Vigmond's avatar
 
Edward Vigmond committed
46

47
decl {\#define TEST_MENUVAR(A,B,C,D) if(!strcmp(\#A,B)){if(C)A->set();else A->clear();if(A->callback())A->do_callback(D);continue;}} {private local
48
}
Edward Vigmond's avatar
 
Edward Vigmond committed
49

Edward Vigmond's avatar
Edward Vigmond committed
50
decl {\#define IGNORE_VAR(A,B) if(!strcmp(\#A,B)){continue;}} {private local
51
}
Edward Vigmond's avatar
Edward Vigmond committed
52

53
decl {\#define MAX_INIT_VECS 200000} {private local
54
}
55

Edward Vigmond's avatar
Edward Vigmond committed
56
decl {\#include "Model.h"} {public local
57
}
Edward Vigmond's avatar
Edward Vigmond committed
58

59 60 61
decl {\#include <string>} {private local
}

Edward Vigmond's avatar
Edward Vigmond committed
62
decl {\#include <set>} {private local
63
}
Edward Vigmond's avatar
Edward Vigmond committed
64

65
decl {\#include "colourchoice.h"} {public local
66
}
Edward Vigmond's avatar
Edward Vigmond committed
67

68
decl {\#include "FlyBy.h"} {public global
69 70
}

Edward Vigmond's avatar
Edward Vigmond committed
71 72
class Meshwin {open
} {
Edward Vigmond's avatar
Edward Vigmond committed
73 74 75
  Function {Meshwin()} {open
  } {
    Fl_Window winny {
76
      label meshalyzer
77 78 79 80
      callback {if( fl_choice("Really quit?","No","Yes",0) ){
delete trackballwin;
exit(0);
}} open
Edward Vigmond's avatar
Edward Vigmond committed
81
      xywh {160 153 455 455} type Double hide resizable hotspot
Edward Vigmond's avatar
Edward Vigmond committed
82 83
    } {
      Fl_Box trackballwin {
84 85 86 87 88 89 90
        callback {if( fl_choice("Really quit?","No","Yes",0 ) ) 
{
Fl_Window *pw = Fl::first_window();
  while (pw){
    pw->hide();
    pw = Fl::first_window();
  }
91
}}
Edward Vigmond's avatar
Edward Vigmond committed
92 93 94 95 96 97
        xywh {0 0 455 455}
        code0 {\#include "TBmeshWin.h"}
        class TBmeshWin
      }
    }
    code {winny->resizable(trackballwin);
98
winny->size_range(50,50,1600,1600,5,5,1);
Edward Vigmond's avatar
Edward Vigmond committed
99
trackballwin->mode(FL_RGB|FL_DOUBLE|FL_DEPTH|FL_ALPHA|FL_OPENGL3|FL_MULTISAMPLE);} {}
Edward Vigmond's avatar
Edward Vigmond committed
100
  }
101 102
  Function {~Meshwin()} {open return_type virtual
  } {
103 104
    code {if(trackballwin) {
  delete trackballwin;
105 106
}} {}
  }
107
}
Edward Vigmond's avatar
Edward Vigmond committed
108

Edward Vigmond's avatar
Edward Vigmond committed
109 110
class Controls {open
} {
Edward Vigmond's avatar
Edward Vigmond committed
111 112
  decl {std::list<pair <string,Fl_Callback*>>recentLst;} {private local
  }
Edward Vigmond's avatar
Edward Vigmond committed
113 114
  decl {friend class ObjProps;} {private local
  }
115 116
  Function {Controls()} {open
  } {
Edward Vigmond's avatar
Edward Vigmond committed
117
    Fl_Window window {
118
      label {Meshalyzer Controls} open
vigmond's avatar
vigmond committed
119
      xywh {234 64 350 705} type Double box UP_BOX
120
      code0 {\#include <FL/Fl_Color_Chooser.H>}
121
      code1 {\#include "VecData.h"} visible
Edward Vigmond's avatar
Edward Vigmond committed
122
    } {
vigmond's avatar
vigmond committed
123
      Fl_Menu_Bar mainbar {
124
        xywh {0 0 350 30} labelcolor 1
Edward Vigmond's avatar
Edward Vigmond committed
125
      } {
Edward Vigmond's avatar
 
Edward Vigmond committed
126
        Submenu {} {
127
          label File
Edward Vigmond's avatar
Edward Vigmond committed
128 129
          xywh {0 0 100 20}
        } {
Edward Vigmond's avatar
 
Edward Vigmond committed
130
          MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
131
            label {Add surface}
132
            callback {char *fn=fl_file_chooser("Surface", "*.{tris,surf,tri}",NULL);
Edward Vigmond's avatar
Edward Vigmond committed
133
int sn;
134 135 136 137 138
if( fn != NULL ) {
  if( (sn=mwtb->add_surface(fn))>0 ) {
    for( int s=0; s<sn; s++ ) {
      surflist->add(mwtb->model->surface(surflist->nitems())->label().c_str(),1);
    }
139
    elehi->activate();
140
    elehi->maximum(mwtb->model->number(SurfEle)-1);
141
    mwtb->redraw(VBO_Visible);
142
    surflist->redraw();
Edward Vigmond's avatar
Edward Vigmond committed
143
  }
144 145 146 147 148
}}
            xywh {0 0 100 20}
          }
          MenuItem {} {
            label {Compute surfaces}
Edward Vigmond's avatar
Edward Vigmond committed
149 150 151
            callback {fl_cursor( FL_CURSOR_WAIT ); 
Fl::check();
int nsa=mwtb->model->add_region_surfaces();
152 153 154 155
int ns = mwtb->model->numSurf();
for( int i=ns-nsa; i<ns; i++ )  
  surflist->add( mwtb->model->surface(i)->label().c_str(),1);
surflist->redraw();
Edward Vigmond's avatar
Edward Vigmond committed
156 157
fl_cursor( FL_CURSOR_DEFAULT );
Fl::check();
158 159
write_surfaces(ns-nsa);
if( nsa) mwtb->redraw(VBO_Visible);}
vigmond's avatar
vigmond committed
160
            xywh {0 0 30 20}
Edward Vigmond's avatar
Edward Vigmond committed
161
          }
Edward Vigmond's avatar
Edward Vigmond committed
162
          MenuItem readASCIIbut {
163
            label {Read ASCII data}
Edward Vigmond's avatar
Edward Vigmond committed
164 165 166 167 168 169
            user_data NULL
            callback {char *fn;
if( !v ) 
  fn = fl_file_chooser("Data file","*{out,dat}*",NULL);
else
  fn = (char *)v;   
170 171
if(fn && !mwtb->get_data(fn,tmslider) ) 
    add_recent(fn, ASCII );
Edward Vigmond's avatar
Edward Vigmond committed
172
mincolval->value(mwtb->cs->min());
Edward Vigmond's avatar
Edward Vigmond committed
173
maxcolval->value(mwtb->cs->max());}
Edward Vigmond's avatar
Edward Vigmond committed
174
            xywh {0 0 100 20}
175
            code0 {\#include <FL/Fl_File_Chooser.H>}
Edward Vigmond's avatar
Edward Vigmond committed
176
          }
Edward Vigmond's avatar
Edward Vigmond committed
177
          MenuItem readIGBbut {
Edward Vigmond's avatar
Edward Vigmond committed
178
            label {Read IGB data}
Edward Vigmond's avatar
Edward Vigmond committed
179 180 181 182 183
            callback {char *fn;
if( !v ) 
  fn = fl_file_chooser("Data file","*igb*",NULL);
else
  fn = (char *)v;
184 185 186
if(fn != NULL) {
  fl_cursor(FL_CURSOR_WAIT);
  Fl::check();
187
  int ret = mwtb->get_data(fn,tmslider);
188 189
  fl_cursor(FL_CURSOR_DEFAULT);
  Fl::check();
190
  if( !ret ) add_recent( fn, IGB );
191
}
Edward Vigmond's avatar
Edward Vigmond committed
192
mincolval->value(mwtb->cs->min());
193
maxcolval->value(mwtb->cs->max());}
Edward Vigmond's avatar
Edward Vigmond committed
194
            xywh {20 20 100 20}
195
            code0 {\#include <FL/Fl_File_Chooser.H>}
Edward Vigmond's avatar
Edward Vigmond committed
196
          }
Edward Vigmond's avatar
Edward Vigmond committed
197
          MenuItem readVECbut {
Edward Vigmond's avatar
Edward Vigmond committed
198 199 200 201
            label {Read Vector Data}
            callback {if( !mwtb->getVecData(tmslider) ) {
  vectorgrp->activate();
  tabwidget->value(vectorgrp);
202 203 204
}}
            xywh {0 0 100 20}
          }
Edward Vigmond's avatar
Edward Vigmond committed
205
          MenuItem readAUXbut {
206
            label {Read Aux Grid}
Edward Vigmond's avatar
Edward Vigmond committed
207 208 209 210 211
            callback {char *fn;
if( v ) 
  fn = (char *)v;
else
  fn = fl_file_chooser( "Auxiliary Grid", "*.pts_t", NULL );
212
if( fn && !mwtb->readAuxGrid(tmslider,fn) ) {
213 214
  auxgridgrp->activate();
  tabwidget->value(auxgridgrp);
215
  float val;
216
  if( mwtb->auxGrid->highlight_vertex(0,val)) {
217
     auxvertval->value(val);
218 219 220 221 222 223
     auxDataGrp->activate();
     mwtb->auxGrid->optimize_cs(0);
     auxmincolval->value(mwtb->auxGrid->cs.min());
     auxmaxcolval->value(mwtb->auxGrid->cs.max());
     mwtb->auxGrid->autocolor(auxautocalibratebut->value());
   } else { 
224
     auxvertval->value(0); 
225 226
     auxDataGrp->deactivate();auxvertval->value(0); 
   } 
Edward Vigmond's avatar
Edward Vigmond committed
227
   auxhivert->value(0);
Edward Vigmond's avatar
Edward Vigmond committed
228
   add_recent( fn, AUX );
Edward Vigmond's avatar
Edward Vigmond committed
229
}}
Edward Vigmond's avatar
Edward Vigmond committed
230 231
            xywh {0 0 100 20}
          }
Edward Vigmond's avatar
Edward Vigmond committed
232
          MenuItem readDYNPTSbut {
Edward Vigmond's avatar
Edward Vigmond committed
233
            label {Read Dyn Pts}
Edward Vigmond's avatar
Edward Vigmond committed
234 235 236 237 238 239 240 241 242
            callback {char *fn;
if( v )
  fn = (char*)v;
else
  fn = fl_file_chooser("Dynamic Points", "*.dynpt", NULL );
if( fn ){
  mwtb->read_dynamic_pts( fn, tmslider );
  add_recent( fn, DYN_PTS );
}}
Edward Vigmond's avatar
Edward Vigmond committed
243 244
            xywh {0 0 30 20}
          }
Edward Vigmond's avatar
Edward Vigmond committed
245 246
          MenuItem hdfreadbut {
            label {Read  HDF5 Data}
Edward Vigmond's avatar
Edward Vigmond committed
247
            callback {\#ifdef USE_HDF5
Edward Vigmond's avatar
Edward Vigmond committed
248 249 250 251 252 253 254
char *fn;
if( v ) 
  fn = (char *)v;
else
  fn =  fl_file_chooser("Choose HDF5 data file", "*.datH5", NULL );
HDF5DataBrowser *brow =  new HDF5DataBrowser( fn, mwtb );
add_recent( HDF5 );
255
\#endif}
Edward Vigmond's avatar
Edward Vigmond committed
256 257
            xywh {0 0 30 20}
          }
Edward Vigmond's avatar
Edward Vigmond committed
258
          MenuItem {} {
259
            label {Recent...}
vigmond's avatar
vigmond committed
260
            xywh {0 0 33 21}
Edward Vigmond's avatar
Edward Vigmond committed
261 262 263 264
            code0 {o->flags|=FL_SUBMENU_POINTER;}
            code1 {o->user_data(new Fl_Menu_Item[MaxRecentSz+1]);}
            code2 {memset( o->user_data(),0,sizeof(Fl_Menu_Item));}
          }
Edward Vigmond's avatar
 
Edward Vigmond committed
265
          MenuItem read_recalibrate {
Edward Vigmond's avatar
Edward Vigmond committed
266
            label {Recalibrate on read}
267 268 269 270 271
            tooltip {Recalibrate colour scale when reading a new data file} xywh {0 0 100 20} type Toggle value 1
          }
          MenuItem read_threaded {
            label {Force threaded read}
            callback {mwtb->forceThreadData(o->value());}
vigmond's avatar
vigmond committed
272
            tooltip {do not attempt to read whole data file into memroy} xywh {0 0 100 20} type Toggle value 1
Edward Vigmond's avatar
Edward Vigmond committed
273
          }
Edward Vigmond's avatar
 
Edward Vigmond committed
274
          MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
275 276 277 278 279 280 281
            label {Save transform}
            callback {char*fn;
fn=fl_file_chooser("Save Xfrm","*.xfrm",NULL);
if( fn != NULL )
 mwtb->trackball.save(fn);}
            xywh {0 0 100 20}
          }
Edward Vigmond's avatar
 
Edward Vigmond committed
282
          MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
283 284 285 286
            label {Read transform}
            callback {char *fn = fl_file_chooser("Xfrm file","*.xfrm",NULL);
if( fn != NULL ){
  mwtb->trackball.read(fn);
287
  mwtb->redraw(VBO_View);
Edward Vigmond's avatar
Edward Vigmond committed
288
}}
vigmond's avatar
vigmond committed
289
            xywh {0 0 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
290
          }
Edward Vigmond's avatar
 
Edward Vigmond committed
291
          MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
292 293 294 295
            label {Save state}
            callback {save_state();}
            xywh {0 0 100 20}
          }
Edward Vigmond's avatar
 
Edward Vigmond committed
296
          MenuItem {} {
297 298
            label {Restore state}
            callback {restore_state();}
vigmond's avatar
vigmond committed
299
            xywh {10 10 100 20}
300
          }
301
          MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
302
            label Link
303 304
            callback {mwtb->mk_tmlink();
mwtb->tmLink->list_mesh_pids();
305
mwtb->tmLink->window->show();
306
mwtb->tmLink->pid->value(std::to_string(getpid()).c_str());}
vigmond's avatar
vigmond committed
307
            xywh {0 0 30 20}
308 309
            code0 {\#include <sys/types.h>}
            code1 {\#include <unistd.h>}
310
          }
Edward Vigmond's avatar
 
Edward Vigmond committed
311
          MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
312
            label Quit
313 314 315 316 317
            callback {Fl_Window *pw = Fl::first_window();
while (pw){
  pw->hide();
  pw = Fl::first_window();
}}
Edward Vigmond's avatar
Edward Vigmond committed
318 319 320
            xywh {0 0 100 20}
          }
        }
Edward Vigmond's avatar
 
Edward Vigmond committed
321
        Submenu imgmenu {
vigmond's avatar
vigmond committed
322
          label Image open
Edward Vigmond's avatar
Edward Vigmond committed
323 324
          xywh {0 0 100 20}
        } {
Edward Vigmond's avatar
 
Edward Vigmond committed
325
          MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
326 327 328 329
            label {Reset transform}
            callback {mwtb->trackball.Reset();
float md = mwtb->get_maxdim();
mwtb->trackball.mouse.SetOglPosAndSize(-md, md, 2*md, 2*md );
Edward Vigmond's avatar
Edward Vigmond committed
330 331 332
mwtb->trackball.size = md;
const GLfloat* po=mwtb->model->pt_offset();
mwtb->trackball.SetOrigin(-po[0],-po[1],-po[2]);
333
mwtb->redraw(VBO_View);}
Edward Vigmond's avatar
Edward Vigmond committed
334 335
            xywh {0 0 100 20}
          }
336 337
          MenuItem {} {
            label {Raise window}
Edward Vigmond's avatar
Edward Vigmond committed
338
            callback {mwtb->parent()->show();}
339 340
            xywh {0 0 33 23}
          }
Edward Vigmond's avatar
 
Edward Vigmond committed
341
          Submenu {} {
vigmond's avatar
vigmond committed
342
            label View
Edward Vigmond's avatar
Edward Vigmond committed
343 344
            xywh {0 0 100 20}
          } {
Edward Vigmond's avatar
 
Edward Vigmond committed
345
            Submenu {} {
vigmond's avatar
vigmond committed
346
              label {+X}
Edward Vigmond's avatar
Edward Vigmond committed
347 348
              xywh {0 0 100 20}
            } {
Edward Vigmond's avatar
 
Edward Vigmond committed
349
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
350
                callback {set_rot('X',0,0);}
351
                image {images/ppaxis.png} xywh {0 0 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
352
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
353
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
354 355
                label item
                callback {set_rot('X',0,1);}
356
                image {images/npaxis.png} xywh {10 10 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
357
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
358
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
359 360
                label item
                callback {set_rot('X',0,2);}
361
                image {images/nnaxis.png} xywh {20 20 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
362
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
363
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
364 365
                label item
                callback {set_rot('X',0,3);}
366
                image {images/pnaxis.png} xywh {30 30 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
367 368
              }
            }
Edward Vigmond's avatar
 
Edward Vigmond committed
369
            Submenu {} {
Edward Vigmond's avatar
Edward Vigmond committed
370 371 372
              label {+Y}
              xywh {5 5 100 20}
            } {
Edward Vigmond's avatar
 
Edward Vigmond committed
373
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
374
                callback {set_rot('Y',0,0);}
375
                image {images/ppaxis.png} xywh {10 10 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
376
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
377
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
378 379
                label item
                callback {set_rot('Y',0,1);}
380
                image {images/npaxis.png} xywh {20 20 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
381
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
382
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
383 384
                label item
                callback {set_rot('Y',0,2);}
385
                image {images/nnaxis.png} xywh {30 30 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
386
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
387
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
388 389
                label item
                callback {set_rot('Y',0,3);}
390
                image {images/pnaxis.png} xywh {40 40 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
391 392
              }
            }
Edward Vigmond's avatar
 
Edward Vigmond committed
393
            Submenu {} {
Edward Vigmond's avatar
Edward Vigmond committed
394 395 396
              label {+Z}
              xywh {20 20 100 20}
            } {
Edward Vigmond's avatar
 
Edward Vigmond committed
397
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
398
                callback {set_rot('Z',0,0);}
399
                image {images/ppaxis.png} xywh {20 20 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
400
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
401
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
402 403
                label item
                callback {set_rot('Z',0,1);}
404
                image {images/npaxis.png} xywh {30 30 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
405
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
406
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
407 408
                label item
                callback {set_rot('Z',0,2);}
409
                image {images/nnaxis.png} xywh {40 40 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
410
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
411
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
412 413
                label item
                callback {set_rot('Z',0,3);}
414
                image {images/pnaxis.png} xywh {50 50 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
415 416
              }
            }
Edward Vigmond's avatar
 
Edward Vigmond committed
417
            Submenu {} {
Edward Vigmond's avatar
Edward Vigmond committed
418 419 420
              label {-X}
              xywh {25 25 100 20}
            } {
Edward Vigmond's avatar
 
Edward Vigmond committed
421
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
422
                callback {set_rot('X',1,0);}
423
                image {images/ppaxis.png} xywh {10 10 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
424
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
425
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
426 427
                label item
                callback {set_rot('X',1,1);}
428
                image {images/npaxis.png} xywh {20 20 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
429
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
430
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
431 432
                label item
                callback {set_rot('X',1,2);}
433
                image {images/nnaxis.png} xywh {30 30 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
434
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
435
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
436 437
                label item
                callback {set_rot('X',1,3);}
438
                image {images/pnaxis.png} xywh {40 40 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
439 440
              }
            }
Edward Vigmond's avatar
 
Edward Vigmond committed
441
            Submenu {} {
Edward Vigmond's avatar
Edward Vigmond committed
442 443 444
              label {-Y}
              xywh {35 35 100 20}
            } {
Edward Vigmond's avatar
 
Edward Vigmond committed
445
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
446
                callback {set_rot('Y',1,0);}
447
                image {images/ppaxis.png} xywh {20 20 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
448
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
449
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
450 451
                label item
                callback {set_rot('Y',1,1);}
452
                image {images/npaxis.png} xywh {30 30 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
453
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
454
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
455 456
                label item
                callback {set_rot('Y',1,2);}
457
                image {images/nnaxis.png} xywh {40 40 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
458
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
459
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
460 461
                label item
                callback {set_rot('Y',1,3);}
462
                image {images/pnaxis.png} xywh {50 50 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
463 464
              }
            }
Edward Vigmond's avatar
 
Edward Vigmond committed
465
            Submenu {} {
Edward Vigmond's avatar
Edward Vigmond committed
466 467 468
              label {-Z}
              xywh {45 45 100 20}
            } {
Edward Vigmond's avatar
 
Edward Vigmond committed
469
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
470
                callback {set_rot('Z',1,0);}
471
                image {images/ppaxis.png} xywh {30 30 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
472
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
473
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
474 475
                label item
                callback {set_rot('Z',1,1);}
476
                image {images/npaxis.png} xywh {40 40 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
477
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
478
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
479 480
                label item
                callback {set_rot('Z',1,2);}
481
                image {images/nnaxis.png} xywh {50 50 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
482
              }
Edward Vigmond's avatar
 
Edward Vigmond committed
483
              MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
484 485
                label item
                callback {set_rot('Z',1,3);}
486
                image {images/pnaxis.png} xywh {60 60 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
487 488 489
              }
            }
          }
Edward Vigmond's avatar
 
Edward Vigmond committed
490
          Submenu {} {
vigmond's avatar
vigmond committed
491
            label {Randomly colour} open
Edward Vigmond's avatar
Edward Vigmond committed
492 493
            xywh {0 0 100 20}
          } {
Edward Vigmond's avatar
 
Edward Vigmond committed
494
            MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
495 496 497 498
              label vertices
              callback {mwtb->randomize_color(Vertex);}
              xywh {15 15 100 20}
            }
vigmond's avatar
vigmond committed
499 500 501 502 503
            MenuItem {} {
              label cnnx
              callback {mwtb->randomize_color(Cnnx);}
              xywh {15 15 100 20}
            }
Edward Vigmond's avatar
 
Edward Vigmond committed
504
            MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
505 506
              label cables
              callback {mwtb->randomize_color(Cable);}
vigmond's avatar
vigmond committed
507
              xywh {0 0 33 21}
Edward Vigmond's avatar
Edward Vigmond committed
508
            }
Edward Vigmond's avatar
 
Edward Vigmond committed
509
            MenuItem {} {
510
              label {surface eles}
Edward Vigmond's avatar
Edward Vigmond committed
511 512 513
              callback {mwtb->randomize_color(SurfEle);}
              xywh {0 0 100 20}
            }
Edward Vigmond's avatar
 
Edward Vigmond committed
514
            MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
515 516 517 518
              label surfaces
              callback {mwtb->randomize_color(Surface);}
              xywh {5 5 100 20}
            }
Edward Vigmond's avatar
 
Edward Vigmond committed
519
            MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
520
              label voxele
521
              callback {mwtb->randomize_color(VolEle);}
Edward Vigmond's avatar
Edward Vigmond committed
522 523 524
              xywh {0 0 30 20}
            }
          }
Edward Vigmond's avatar
 
Edward Vigmond committed
525
          Submenu {} {
Edward Vigmond's avatar
Edward Vigmond committed
526 527 528
            label {Background colour}
            xywh {0 0 100 20}
          } {
Edward Vigmond's avatar
 
Edward Vigmond committed
529
            MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
530 531 532 533
              label White
              callback {mwtb->bgd(1);}
              xywh {0 0 100 20}
            }
Edward Vigmond's avatar
 
Edward Vigmond committed
534
            MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
535 536 537 538
              label Gray
              callback {mwtb->bgd(0.6);}
              xywh {10 10 100 20}
            }
Edward Vigmond's avatar
 
Edward Vigmond committed
539
            MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
540 541 542 543 544
              label Black
              callback {mwtb->bgd(0);}
              xywh {20 20 100 20}
            }
          }
Edward Vigmond's avatar
Edward Vigmond committed
545 546 547 548 549
          MenuItem norot {
            label {No rotation}
            user_data norot
            callback {mwtb->norot(((Fl_Menu_Item*)v)->checked());}
            xywh {0 0 30 20} type Toggle
Edward Vigmond's avatar
Edward Vigmond committed
550
          }
Edward Vigmond's avatar
 
Edward Vigmond committed
551
          MenuItem revdraworder {
Edward Vigmond's avatar
Edward Vigmond committed
552
            label {Reverse draw order}
553 554
            user_data revdraworder
            callback {mwtb->revdraworder(((Fl_Menu_Item*)v)->checked());}
Edward Vigmond's avatar
Edward Vigmond committed
555 556
            xywh {0 0 100 20} type Toggle
          }
557
          Submenu {} {
Edward Vigmond's avatar
Edward Vigmond committed
558
            label Sync
559 560 561
            xywh {0 0 70 20}
          } {
            MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
562
              label Viewport
563 564 565 566
              callback {mwtb->SendViewportSyncMessage();}
              xywh {5 5 30 20}
            }
            MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
567
              label {Colour Scale}
568 569 570
              callback {mwtb->SendColourSyncMessage();}
              xywh {5 5 30 20}
            }
Edward Vigmond's avatar
Edward Vigmond committed
571 572
            MenuItem {} {
              label Time
573 574 575
              callback {mwtb->SendTimeSyncMessage();}
              xywh {0 0 33 23}
            }
576 577
            MenuItem {} {
              label Clipping
578
              callback {mwtb->SendClipSyncMessage();}
vigmond's avatar
vigmond committed
579
              xywh {0 0 33 23}
580 581 582 583
            }
            MenuItem {} {
              label {Reference view}
              callback {mwtb->trackball.qRot=mwtb->model->syncRefRot();
584
mwtb->redraw(VBO_View);}
585 586
              xywh {0 0 33 23}
            }
587 588 589
            MenuItem {} {
              label {Set reference view}
              callback {mwtb->model->syncRefRot(mwtb->trackball.GetRotation());}
Edward Vigmond's avatar
Edward Vigmond committed
590 591
              xywh {0 0 33 23}
            }
Edward Vigmond's avatar
Edward Vigmond committed
592
          }
Edward Vigmond's avatar
Edward Vigmond committed
593
        }
Edward Vigmond's avatar
 
Edward Vigmond committed
594
        Submenu {} {
595
          label Data
Edward Vigmond's avatar
Edward Vigmond committed
596 597
          xywh {0 0 100 20}
        } {
Edward Vigmond's avatar
 
Edward Vigmond committed
598
          MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
599 600
            label Opacity
            callback {mwtb->dataopac->window->show();}
601
            tooltip {Set opacity based on data values} xywh {0 0 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
602
          }
Edward Vigmond's avatar
 
Edward Vigmond committed
603
          MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
604
            label Clipping
605
            callback {mwtb->cplane->window->show();}
606
            tooltip {manage clipping planes} xywh {10 10 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
607
          }
608 609 610
          MenuItem {} {
            label Isosurf
            callback {mwtb->isosurfwin->isowin->show();}
611
            tooltip {isoline and isosurface display} xywh {0 0 31 20}
612
          }
613 614 615
          MenuItem {} {
            label {Dead range}
            callback {mwtb->deadData->window->show();}
616
            tooltip {Ignore ranges of data} xywh {0 0 34 20}
617
          }
618
          Submenu brcut {
Edward Vigmond's avatar
Edward Vigmond committed
619
            label {Branch cut} open
620
            tooltip {Do not interpolate over a branch cut} xywh {0 0 70 20}
621
          } {
622
            MenuItem brcutNone {
623 624 625 626
              label None
              callback {mwtb->branch_cut(0,0,0);}
              xywh {0 0 34 20} type Radio value 1
            }
627
            MenuItem brcutPM1 {
628 629 630 631
              label {[-1,1)}
              callback {mwtb->branch_cut(-1,1,0.2);}
              xywh {0 0 34 20} type Radio
            }
632
            MenuItem brcut01 {
633 634 635 636
              label {[0,1)}
              callback {mwtb->branch_cut(0,1,0.2);}
              xywh {0 0 34 20} type Radio
            }
637
            MenuItem brcutPMpi {
638 639 640 641
              label {[-pi,pi)}
              callback {mwtb->branch_cut(-M_PI,M_PI,.2);}
              xywh {0 0 34 20} type Radio
            }
642
            MenuItem brcut02pi {
643 644 645 646 647
              label {[0,2pi)}
              callback {mwtb->branch_cut(0,2*M_PI,.2);}
              xywh {0 0 34 20} type Radio
            }
          }
Edward Vigmond's avatar
Edward Vigmond committed
648
        }
Edward Vigmond's avatar
 
Edward Vigmond committed
649
        Submenu outmenu {
650
          label Output
Edward Vigmond's avatar
Edward Vigmond committed
651 652
          xywh {0 0 100 20}
        } {
Edward Vigmond's avatar
 
Edward Vigmond committed
653
          Submenu {} {
654
            label PNG
Edward Vigmond's avatar
Edward Vigmond committed
655 656
            xywh {5 5 100 20}
          } {
Edward Vigmond's avatar
 
Edward Vigmond committed
657
            MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
658 659 660 661 662 663
              label Image
              callback {char *fn = fl_file_chooser("PNG image", "*.png", "image.png" );
if( fn!=NULL)
mwtb->output_png(fn);}
              xywh {10 10 100 20}
            }
Edward Vigmond's avatar
 
Edward Vigmond committed
664
            MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
665 666 667 668 669 670
              label Sequence
              callback {Sequence *s=new Sequence( mwtb );
s->window->show();}
              xywh {20 20 100 20}
              code0 {\#include "Sequence.h"}
            }
671 672
            MenuItem transBgd {
              label {Transparent Bgd}
673
              user_data transBgd
674
              callback {mwtb->transBgd( transBgd->value() );}
675
              xywh {0 0 30 20} type Toggle
676
            }
Edward Vigmond's avatar
Edward Vigmond committed
677
          }
Edward Vigmond's avatar
 
Edward Vigmond committed
678
          MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
679 680 681 682 683 684
            label EPS
            callback {char* fn = fl_file_chooser("EPS file name", "*.eps", "image.eps");
if( fn==NULL) return;
mwtb->output_pdf( fn, false );}
            xywh {5 5 100 20}
          }
685 686 687 688
          MenuItem {} {
            label {Colour Bar}
            callback {char *fn = fl_file_chooser("colour bar image", "*.png", "colour_bar.png" );
if( fn!=NULL)
689
mwtb->cs->output_png(fn);}
690
            tooltip {output the colour bar as an image file} xywh {0 0 34 20}
691
          }
692 693
          MenuItem {} {
            label {Fly By}
694
            callback {flyby->fb_win->show();}
695 696
            xywh {0 0 31 20}
          }
Edward Vigmond's avatar
 
Edward Vigmond committed
697
          MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
698 699
            label {Visible vertices}
            callback {mwtb->dump_vertices();}
700
            tooltip {output the indices of the visible vertices} xywh {0 0 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
701
          }
Edward Vigmond's avatar
 
Edward Vigmond committed
702
          Submenu recordmenu {
703
            label Record
704
            tooltip {take an image snapshot each time something changes} xywh {0 0 100 20}
Edward Vigmond's avatar
Edward Vigmond committed
705
          } {
Edward Vigmond's avatar
 
Edward Vigmond committed
706
            MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
707 708 709 710 711 712 713 714 715 716 717 718
              label start
              callback {if( !mwtb->recording ) {
  char* fn=fl_file_chooser( "Pick base name", "*.png", "frame.png" );
  if( fn != NULL ) {
    outmenu->labelcolor(FL_GREEN);
    redrawbut->show();
    mwtb->recording=true;
    mwtb->record_events( fn );
  }
}}
              xywh {0 0 100 20}
            }
Edward Vigmond's avatar
 
Edward Vigmond committed
719
            MenuItem {} {
Edward Vigmond's avatar
Edward Vigmond committed
720 721 722 723 724 725 726 727 728
              label stop
              callback {mwtb->recording = false;
outmenu->labelcolor(FL_BLACK);
redrawbut->hide();
mainbar->redraw();}
              xywh {0 0 100 20}
            }
          }
        }
Edward Vigmond's avatar
 
Edward Vigmond committed
729
        MenuItem redrawbut {
Edward Vigmond's avatar
Edward Vigmond committed
730
          label Redraw
731
          callback {mwtb->redraw(VBO_All);}
Edward Vigmond's avatar
Edward Vigmond committed
732 733
          xywh {0 0 100 20} labelcolor 180 hide
        }
734 735 736 737 738 739 740 741 742 743 744 745 746
        MenuItem {} {
          label item
          xywh {0 0 30 20} labeltype NO_LABEL
        }
        MenuItem {} {
          label item
          xywh {0 0 30 20} labeltype NO_LABEL
        }
        MenuItem {} {
          label About
          callback {proginfo->show();}
          xywh {0 0 30 20}
        }
Edward Vigmond's avatar
Edward Vigmond committed
747
      }
748
      Fl_Menu_Button datadest {
vigmond's avatar
vigmond committed
749
        label {Data on:} open
750
        tooltip {Object types to datigy} xywh {10 50 170 30} color 26
Edward Vigmond's avatar
Edward Vigmond committed
751
      } {
752
        MenuItem vertdisp {
Edward Vigmond's avatar
Edward Vigmond committed
753
          label Vertices
754 755 756 757
          user_data vertdisp
          callback {if(((Fl_Menu_Item*)v)->checked()) mwtb->datify(Vertex);
else mwtb->undatify(Vertex);}
          xywh {0 0 30 20} type Toggle
Edward Vigmond's avatar
Edward Vigmond committed
758
        }
759 760 761 762 763 764
        MenuItem cnnxdisp {
          label Cnnx
          user_data cnnxdisp
          callback {if(((Fl_Menu_Item*)v)->checked()) mwtb->datify(Cnnx);
else mwtb->undatify(Cnnx);}
          xywh {0 0 30 20} type Toggle
Edward Vigmond's avatar
Edward Vigmond committed
765
        }
766 767 768 769 770 771
        MenuItem surfedgedisp {
          label {Surface edges}
          user_data surfedgedisp
          callback {if(((Fl_Menu_Item*)v)->checked() ) mwtb->datify(SurfEle);
else mwtb->undatify(SurfEle);}
          xywh {0 0 30 20} type Toggle
Edward Vigmond's avatar
Edward Vigmond committed
772
        }
773 774 775 776 777 778
        MenuItem surfdisp {
          label {Surface Elements}
          user_data surfdisp
          callback {if(((Fl_Menu_Item*)v)->checked() ) mwtb->datify(Surface);
else mwtb->undatify(Surface);}
          xywh {0 0 30 20} type Toggle value 1
Edward Vigmond's avatar
Edward Vigmond committed
779
        }
780 781 782 783
        MenuItem voldisp {
          label {Volume Elements}
          user_data voldisp
          callback {if(((Fl_Menu_Item*)v)->checked() ) mwtb->datify(VolEle);
784
else mwtb->undatify(VolEle);}
785
          xywh {0 0 30 20} type Toggle
Edward Vigmond's avatar
Edward Vigmond committed
786
        }
Edward Vigmond's avatar
 
Edward Vigmond committed
787
        MenuItem {} {
788 789 790 791 792 793 794 795
          label ALL
          callback {mwtb->datify(All);
vertdisp->check();
cnnxdisp->check();
surfedgedisp->check();
surfdisp->check();
voldisp->check();}
          xywh {0 0 30 20}
Edward Vigmond's avatar
Edward Vigmond committed
796
        }
Edward Vigmond's avatar
 
Edward Vigmond committed
797
        MenuItem {} {
798 799 800 801 802 803 804 805
          label NONE
          callback {mwtb->undatify(All);
vertdisp->uncheck();
cnnxdisp->uncheck();
surfedgedisp->uncheck();
surfdisp->uncheck();
voldisp->uncheck();}
          xywh {0 0 30 20}
Edward Vigmond's avatar
Edward Vigmond committed
806 807 808 809
        }
      }
      Fl_Light_Button draw_axes {
        label Axes
Edward Vigmond's avatar
Edward Vigmond committed
810
        callback {mwtb->axes(o->value());}
811
        tooltip {toggle axs display} xywh {10 85 65 25}
Edward Vigmond's avatar
Edward Vigmond committed
812
      }
Edward Vigmond's avatar
Edward Vigmond committed
813
      Fl_Button voxeleColor {
Edward Vigmond's avatar
Edward Vigmond committed
814
        label {Voxele  colour}
815 816
        callback {static colourChoice* cc=NULL;
cc=pickcolor(VolEle, "Voxele colour",cc);}
817
        xywh {80 85 100 25} labelsize 13
Edward Vigmond's avatar
Edward Vigmond committed
818
      }
819
      Fl_Group dispAs {
820
        label {Display as:}
Edward Vigmond's avatar
Edward Vigmond committed
821 822
        xywh {190 50 150 60} box ENGRAVED_BOX
      } {
Edward Vigmond's avatar
Edward Vigmond committed
823
        Fl_Check_Button dispAsSurf {
Edward Vigmond's avatar
Edward Vigmond committed
824 825 826 827
          label Surfaces
          callback {mwtb->dispmode(asSurface);}
          xywh {195 55 90 25} type Radio down_box DIAMOND_DOWN_BOX value 1
        }
Edward Vigmond's avatar
Edward Vigmond committed
828
        Fl_Check_Button dispAsVol {
829
          label {Volume Mesh}
Edward Vigmond's avatar
Edward Vigmond committed
830 831 832 833 834
          callback {mwtb->dispmode(asTetMesh);}
          xywh {195 80 140 25} type Radio down_box DIAMOND_DOWN_BOX
        }
      }
      Fl_Group regiondisp {
835
        label Region open
Edward Vigmond's avatar
Edward Vigmond committed
836 837 838 839 840 841
        xywh {10 120 330 145} box ENGRAVED_BOX align 17
      } {
        Fl_Light_Button vertbut {
          label Vertices
          callback {bool *selreg = regselected();
mwtb->showobj(Vertex,selreg,static_cast<bool>(o->value()));
842 843 844 845
if(o->value())
  pickvert->activate();
else
  pickvert->deactivate();
Edward Vigmond's avatar
Edward Vigmond committed
846
free(selreg);}
847
          xywh {160 145 75 25} when 1
Edward Vigmond's avatar
Edward Vigmond committed
848 849 850 851 852
        }
        Fl_Light_Button cnnxbut {
          label Connections
          callback {bool* selreg=regselected();
mwtb->showobj(Cnnx,selreg,static_cast<bool>(o->value()));
Edward Vigmond's avatar
Edward Vigmond committed
853
free(selreg);}
854
          xywh {160 170 100 25}
Edward Vigmond's avatar
Edward Vigmond committed
855
        }
Edward Vigmond's avatar
Edward Vigmond committed
856
        Fl_Button vertprop {
Edward Vigmond's avatar
Edward Vigmond committed
857
          label props
Edward Vigmond's avatar
Edward Vigmond committed
858 859 860 861 862 863
          callback {if( !objprops[Vertex] )
  objprops[Vertex] = new ObjProps( mwtb, Vertex );
else {
 objprops[Vertex]->update();
}
objprops[Vertex]->win->show();}
vigmond's avatar
vigmond committed
864
          tooltip {vertex properties} xywh {260 145 70 25} labelsize 12
Edward Vigmond's avatar
Edward Vigmond committed
865
        }
Edward Vigmond's avatar
Edward Vigmond committed
866
        Fl_Button connprop {
867
          label props
Edward Vigmond's avatar
Edward Vigmond committed
868 869 870 871 872 873
          callback {if( !objprops[Cnnx] )
  objprops[Cnnx] = new ObjProps( mwtb, Cnnx );
else {
 objprops[Cnnx]->update();
} 
objprops[Cnnx]->win->show();}
vigmond's avatar
vigmond committed
874
          tooltip {connection properties} xywh {260 170 70 25} labelsize 12
Edward Vigmond's avatar
Edward Vigmond committed
875 876 877 878 879
        }
        Fl_Light_Button visbut {
          label visible
          callback {bool *selreg=regselected();
mwtb->visibility(selreg, o->value());
Edward Vigmond's avatar
Edward Vigmond committed
880
free(selreg);}
881
          xywh {160 195 100 20} value 1
Edward Vigmond's avatar
Edward Vigmond committed
882 883 884
        }
        Fl_Button {} {
          label {select all}
Edward Vigmond's avatar
Edward Vigmond committed
885
          callback {reglist->check_all();
Edward Vigmond's avatar
Edward Vigmond committed
886
reglist->do_callback();}
887
          xywh {160 230 90 20}
Edward Vigmond's avatar
Edward Vigmond committed
888
        }
889
        Fl_Check_Browser reglist {
Edward Vigmond's avatar
Edward Vigmond committed
890 891
          callback {if( objprops[Vertex] ) objprops[Vertex]->update();
if( objprops[Cnnx] )   objprops[Cnnx]->update();
892 893
if( objprops[Cable] )  objprops[Cable]->update();
mwtb->redraw(VBO_Visible);}
Edward Vigmond's avatar
Edward Vigmond committed
894
          xywh {25 130 120 125} when 1
Edward Vigmond's avatar
Edward Vigmond committed
895
        }
896
        Fl_Button {} {
897
          label invert
898
          callback {for( int i=0; i<=reglist->nitems(); i++ )
Edward Vigmond's avatar
Edward Vigmond committed
899 900
  reglist->checked( i, !reglist->checked(i) );
reglist->do_callback();}
901
          xywh {250 230 80 20} color 0 labelcolor 49
Edward Vigmond's avatar
Edward Vigmond committed
902
        }
vigmond's avatar
vigmond committed
903
        Fl_Check_Button vertDispAll {
904
          label All
vigmond's avatar
vigmond committed
905
          callback {mwtb->draw_all_pts(o->value());}
906 907
          tooltip {draw all points; otherwise only those part of displayed objects} xywh {235 145 25 25} box UP_BOX down_box DOWN_BOX align 33
        }
Edward Vigmond's avatar
Edward Vigmond committed
908
      }
909
      Fl_Tabs tabwidget {open
910
        xywh {10 270 330 260} align 0
Edward Vigmond's avatar
Edward Vigmond committed
911 912
      } {
        Fl_Group hilightgrp {
vigmond's avatar
vigmond committed
913 914
          label Highlight selected
          xywh {10 305 330 225} color 11 labelfont 1 labelsize 12 labelcolor 121 align 4
Edward Vigmond's avatar
Edward Vigmond committed
915 916
        } {
          Fl_Value_Input tethi {