NEURON
graph.h
Go to the documentation of this file.
1 #ifndef graph_h
2 #define graph_h
3 
4 #include <ivstream.h>
5 #include <OS/list.h>
6 #include <OS/string.h>
7 #include <InterViews/observe.h>
8 #include "scenevie.h"
9 
10 class DataVec;
11 class Color;
12 class Brush;
13 struct Symbol;
14 class Symlist;
15 class GraphLine;
16 class GLabel;
17 class GPolyLine;
18 class SymChooser;
19 class Event;
20 class GraphVector;
21 class HocCommand;
22 class LineExtension;
23 class TelltaleState;
24 struct Object;
25 
27 
28 // all Glyphs added to Graph must be enclosed in a GraphItem
29 class GraphItem: public MonoGlyph {
30  public:
31  enum { ERASE_LINE = 1, ERASE_AXIS };
32  GraphItem(Glyph* g, bool = true, bool pick = true);
33  virtual ~GraphItem();
34  virtual void pick(Canvas*, const Allocation&, int depth, Hit&);
35  virtual void save(std::ostream&, Coord, Coord);
36  virtual void erase(Scene*, GlyphIndex, int erase_type);
37  bool save() {
38  return save_;
39  }
40  void save(bool s) {
41  save_ = s;
42  }
43  virtual bool is_polyline();
44  virtual bool is_mark();
45  virtual bool is_fast() {
46  return false;
47  }
48  virtual bool is_graphVector() {
49  return false;
50  }
51 
52  private:
53  bool save_;
54  bool pick_;
55 };
56 
57 class Graph: public Scene { // Scene of GraphLines labels and polylines
58  public:
60  Graph(bool = true); // true means map a new default view
61  virtual ~Graph();
63  float min,
64  float max,
65  float pos = 0.,
66  int ntics = -1,
67  int nminor = 0,
68  int invert = 0,
69  bool number = true);
70  GraphLine* add_var(const char*,
71  const Color*,
72  const Brush*,
73  bool usepointer,
74  int fixtype = 1,
75  double* p = NULL,
76  const char* lab = NULL,
77  Object* obj = NULL);
78  void x_expr(const char*, bool usepointer);
81  void begin();
82  void plot(float);
83  void flush();
84  void fast_flush();
85  void begin_line(const char* s = NULL);
86  void begin_line(const Color*, const Brush*, const char* s = NULL);
87  void line(Coord x, Coord y);
88  void mark(Coord x,
89  Coord y,
90  char style = '+',
91  float size = 12,
92  const Color* = NULL,
93  const Brush* = NULL);
94  void erase();
95  virtual void erase_all();
96  void erase_lines(); // all GPolylines
97  virtual void delete_label(GLabel*);
98  virtual bool change_label(GLabel*, const char*, GLabel* gl = NULL);
99  virtual void help();
100  void keep_lines();
102  void family(bool);
103  void family(const char*);
105  void new_axis();
106  void erase_axis();
107  void view_axis();
108  void view_box();
109  void change_prop();
110  void color(int);
111  void brush(int);
112  const Color* color() const {
113  return color_;
114  }
115  const Brush* brush() const {
116  return brush_;
117  }
118  void set_cross_action(const char*, Object*, bool vectorcopy = false);
119  void cross_action(char, GPolyLine*, int);
120  void cross_action(char, Coord, Coord);
121  void simgraph(); // faintly analogous to Vector.record for localstep plotting
122 
123  virtual void draw(Canvas*, const Allocation&) const;
124  virtual void pick(Canvas*, const Allocation&, int depth, Hit&);
125  virtual GlyphIndex glyph_index(const Glyph*);
126  virtual void new_size(Coord x1, Coord y1, Coord x2, Coord y2);
127  virtual void wholeplot(Coord& x1, Coord& y1, Coord& x2, Coord& y2) const;
128 
129  // label info
130  GLabel* label(float x,
131  float y,
132  const char* s,
133  int fixtype,
134  float scale,
135  float x_align,
136  float y_align,
137  const Color*);
138  GLabel* label(float x, float y, const char* s, float n = 0, int fixtype = -1);
139  GLabel* label(const char* s, int fixtype = -1);
141  void fixed(float scale);
142  void vfixed(float scale);
143  void relative(float scale);
144  void align(float x, float y);
145  void choose_sym();
146  void name(char*);
149  void update_ptrs();
150 
151  virtual void save_phase1(std::ostream&);
152  virtual void save_phase2(std::ostream&);
153  int labeltype() const {
154  return label_fixtype_;
155  }
156  static bool label_chooser(const char*, char*, GLabel*, Coord x = 400., Coord y = 400.);
157 
158  virtual void see_range_plot(GraphVector*);
159  static void ascii(std::ostream*);
160  static std::ostream* ascii();
161 
162  private:
165  void ascii_save(std::ostream& o) const;
166  void family_value();
167 
168  private:
170  LineList line_list_;
171  int loc_;
175  static SymChooser* fsc_;
178 
179  const Color* color_;
180  const Brush* brush_;
188  double family_val_;
192 
194  double* x_pval_;
195 
197  static std::ostream* ascii_;
198 };
199 
200 class DataVec: public Resource { // info for single dimension
201  public:
202  DataVec(int size);
203  DataVec(const DataVec*);
204  virtual ~DataVec();
205  void add(float);
206  float max() const, min() const;
207  float max(int low, int high), min(int, int);
208  int loc_max() const, loc_min() const;
209  void erase();
210  int count() const {
211  return count_;
212  }
213  void write();
214  float get_val(int i) const {
215  return y_[i];
216  } // y[(i<count_)?i:count_-1)];
217  int size() const {
218  return size_;
219  }
220  const Coord* vec() {
221  return y_;
222  }
224  float running_max();
225  float running_min();
226  Object** new_vect(GLabel* g = NULL) const;
227 
228  private:
231  float* y_;
232 };
233 
234 class DataPointers: public Resource { // vector of pointers
235  public:
236  DataPointers(int size = 50);
237  virtual ~DataPointers();
238  void add(double*);
239  void erase() {
240  count_ = 0;
241  }
242  int size() {
243  return size_;
244  }
245  int count() {
246  return count_;
247  }
248  double* p(int i) {
249  return px_[i];
250  }
251  void update_ptrs();
252 
253  private:
254  int count_, size_;
255  double** px_;
256 };
257 
258 class GPolyLine: public Glyph {
259  public:
260  GPolyLine(DataVec* x, const Color* = NULL, const Brush* = NULL);
261  GPolyLine(DataVec* x, DataVec* y, const Color* = NULL, const Brush* = NULL);
263  virtual ~GPolyLine();
264 
265  virtual void request(Requisition&) const;
266  virtual void allocate(Canvas*, const Allocation&, Extension&);
267  virtual void draw(Canvas*, const Allocation&) const;
268  virtual void draw_specific(Canvas*, const Allocation&, int, int) const;
269  virtual void print(Printer*, const Allocation&) const;
270  virtual void pick(Canvas*, const Allocation&, int depth, Hit&);
271  virtual void save(std::ostream&);
272  virtual void pick_vector();
273 
274  void plot(Coord x, Coord y);
275  void erase() {
276  y_->erase();
277  }
278  virtual void erase_line(Scene*, GlyphIndex); // Erase by menu command
279 
280  void color(const Color*);
281  void brush(const Brush*);
282  const Color* color() const {
283  return color_;
284  }
285  const Brush* brush() const {
286  return brush_;
287  }
288 
289  Coord x(int index) const {
290  return x_->get_val(index);
291  }
292  Coord y(int index) const {
293  return y_->get_val(index);
294  }
295  const DataVec* x_data() const {
296  return x_;
297  }
298  const DataVec* y_data() const {
299  return y_;
300  }
301 
302  GLabel* label() const {
303  return glabel_;
304  }
305  void label(GLabel*);
306  void label_loc(Coord& x, Coord& y) const;
307 
308  // screen coords
309  bool near(Coord, Coord, float, const Transformer&) const;
310  // model coords input but checking relative to screen coords
311  int nearest(Coord, Coord, const Transformer&, int index = -1) const;
312  bool keepable() {
313  return keepable_;
314  }
315 
316  private:
317  void init(DataVec*, DataVec*, const Color*, const Brush*);
318 
319  protected:
322  const Color* color_;
323  const Brush* brush_;
325  bool keepable_;
326 };
327 
328 class GraphLine: public GPolyLine, public Observer { // An oc variable to plot
329  public:
330  GraphLine(const char*,
331  DataVec* x,
332  Symlist**,
333  const Color* = NULL,
334  const Brush* = NULL,
335  bool usepointer = 0,
336  double* pd = NULL,
337  Object* obj = NULL);
338  virtual ~GraphLine();
339 
340  virtual void pick(Canvas*, const Allocation&, int depth, Hit&);
341  virtual void save(std::ostream&);
342 
343  void plot();
344 
345  const char* name() const;
346  LineExtension* extension() {
347  return extension_;
348  }
351  const Color* save_color() const {
352  return save_color_;
353  }
354  const Brush* save_brush() const {
355  return save_brush_;
356  }
357  void save_color(const Color*);
358  void save_brush(const Brush*);
359  bool change_expr(const char*, Symlist**);
360  virtual void update(Observable*);
361  bool valid(bool check = false);
362  virtual void erase_line(Scene*, GlyphIndex) {
363  erase();
364  } // Erase by menu command
365  void simgraph_activate(bool);
367  void simgraph_continuous(double);
368  void update_ptrs();
369 
371  double* pval_;
373 
374  private:
375  LineExtension* extension_;
378  bool valid_;
380 };
381 
382 class GraphVector: public GPolyLine, public Observer { // fixed x and vector of pointers
383  public:
384  GraphVector(const char*, const Color* = NULL, const Brush* = NULL);
385  virtual ~GraphVector();
386  virtual void request(Requisition&) const;
387  void begin();
388  void add(float, double*);
389  virtual void save(std::ostream&);
390  const char* name() const;
391  bool trivial() const;
392 
393  virtual bool choose_sym(Graph*);
394  virtual void update(Observable*);
396  return dp_;
397  }
398  void update_ptrs();
401 
402  private:
406 };
407 
408 class GPolyLineItem: public GraphItem {
409  public:
411  : GraphItem(g) {}
412  virtual ~GPolyLineItem(){};
413  virtual bool is_polyline();
414  virtual void save(std::ostream& o, Coord, Coord) {
415  ((GPolyLine*) body())->save(o);
416  }
417  virtual void erase(Scene* s, GlyphIndex i, int type) {
418  if (type & GraphItem::ERASE_LINE) {
419  s->remove(i);
420  }
421  }
422 };
423 
424 class GLabel: public Glyph {
425  public:
426  GLabel(const char* s,
427  const Color*,
428  int fixtype = 1,
429  float size = 12,
430  float x_align = 0.,
431  float y_align = 0.);
432  virtual ~GLabel();
433  virtual Glyph* clone() const;
434 
435  virtual void request(Requisition&) const;
436  virtual void allocate(Canvas*, const Allocation&, Extension&);
437  virtual void draw(Canvas*, const Allocation&) const;
438  virtual void save(std::ostream&, Coord, Coord);
439  virtual void pick(Canvas*, const Allocation&, int depth, Hit&);
440 
441  void text(const char*);
442  void fixed(float scale);
443  void vfixed(float scale);
444  void relative(float scale);
445  void align(float x, float y);
446  void color(const Color*);
447 
448  bool fixed() const {
449  return fixtype_ == 1;
450  }
451  float scale() const {
452  return scale_;
453  }
454  const char* text() const {
455  return text_.string();
456  }
457  int fixtype() const {
458  return fixtype_;
459  }
460  float x_align() const {
461  return x_align_;
462  }
463  float y_align() const {
464  return y_align_;
465  }
466  const Color* color() const {
467  return color_;
468  }
469  bool erase_flag() {
470  return erase_flag_;
471  }
472  void erase_flag(bool b) {
473  erase_flag_ = b;
474  }
475 
477  return gpl_;
478  }
479 
480  private:
481  void need(Canvas*, const Allocation&, Extension&) const;
482  friend void GPolyLine::label(GLabel*);
483 
484  private:
485  int fixtype_;
486  float scale_;
490  const Color* color_;
493 };
494 
496  public:
498  virtual ~ColorPalette();
499  const Color* color(int) const;
500  const Color* color(int, const char*);
501  const Color* color(int, const Color*);
502  int color(const Color*) const;
503  // enum {COLOR_SIZE = 20};
504  // ZFM: changed to allow more colors
505  enum { COLOR_SIZE = 100 };
506 
507  private:
509 };
511  public:
513  virtual ~BrushPalette();
514  const Brush* brush(int) const;
515  const Brush* brush(int index, int pattern, Coord width);
516  int brush(const Brush*) const;
517  enum { BRUSH_SIZE = 25 };
518 
519  private:
521 };
522 extern ColorPalette* colors;
523 extern BrushPalette* brushes;
524 
525 #endif
#define TelltaleState
Definition: _defines.h:296
#define Color
Definition: _defines.h:74
#define Transformer
Definition: _defines.h:316
#define Canvas
Definition: _defines.h:65
#define Coord
Definition: _defines.h:19
#define Brush
Definition: _defines.h:59
#define Hit
Definition: _defines.h:147
#define Printer
Definition: _defines.h:211
#define MonoGlyph
Definition: _defines.h:181
#define GlyphIndex
Definition: _defines.h:23
#define Event
Definition: _defines.h:107
#define Glyph
Definition: _defines.h:132
short index
Definition: cabvars.h:10
short type
Definition: cabvars.h:9
const Brush * brush_palette[BRUSH_SIZE]
Definition: graph.h:520
virtual ~BrushPalette()
@ BRUSH_SIZE
Definition: graph.h:517
int brush(const Brush *) const
const Brush * brush(int) const
const Brush * brush(int index, int pattern, Coord width)
int color(const Color *) const
const Color * color_palette[COLOR_SIZE]
Definition: graph.h:508
const Color * color(int) const
@ COLOR_SIZE
Definition: graph.h:505
const Color * color(int, const char *)
virtual ~ColorPalette()
const Color * color(int, const Color *)
void add(double *)
double ** px_
Definition: graph.h:255
void erase()
Definition: graph.h:239
int count()
Definition: graph.h:245
void update_ptrs()
DataPointers(int size=50)
int count_
Definition: graph.h:254
double * p(int i)
Definition: graph.h:248
int size_
Definition: graph.h:254
int size()
Definition: graph.h:242
virtual ~DataPointers()
Definition: graph.h:200
const Coord * vec()
Definition: graph.h:220
void running_start()
int running_max_loc_
Definition: graph.h:230
float running_min()
void add(float)
int running_min_loc_
Definition: graph.h:230
DataVec(int size)
float running_max()
Object ** new_vect(GLabel *g=NULL) const
float get_val(int i) const
Definition: graph.h:214
float min() const
DataVec(const DataVec *)
int loc_min() const
void write()
float max() const
int loc_max() const
void erase()
int iMinLoc_
Definition: graph.h:229
int size_
Definition: graph.h:229
virtual ~DataVec()
int count_
Definition: graph.h:229
float * y_
Definition: graph.h:231
int size() const
Definition: graph.h:217
int count() const
Definition: graph.h:210
int iMaxLoc_
Definition: graph.h:229
Definition: graph.h:424
void text(const char *)
float y_align_
Definition: graph.h:487
int fixtype_
Definition: graph.h:485
float scale() const
Definition: graph.h:451
void fixed(float scale)
const Color * color_
Definition: graph.h:490
void need(Canvas *, const Allocation &, Extension &) const
Glyph * label_
Definition: graph.h:489
virtual ~GLabel()
virtual void draw(Canvas *, const Allocation &) const
void align(float x, float y)
virtual void allocate(Canvas *, const Allocation &, Extension &)
virtual void pick(Canvas *, const Allocation &, int depth, Hit &)
int fixtype() const
Definition: graph.h:457
float y_align() const
Definition: graph.h:463
void erase_flag(bool b)
Definition: graph.h:472
void relative(float scale)
const char * text() const
Definition: graph.h:454
GPolyLine * labeled_line() const
Definition: graph.h:476
GLabel(const char *s, const Color *, int fixtype=1, float size=12, float x_align=0., float y_align=0.)
virtual void save(std::ostream &, Coord, Coord)
bool erase_flag_
Definition: graph.h:492
void color(const Color *)
bool erase_flag()
Definition: graph.h:469
float scale_
Definition: graph.h:486
GPolyLine * gpl_
Definition: graph.h:491
void vfixed(float scale)
virtual void request(Requisition &) const
CopyString text_
Definition: graph.h:488
float x_align() const
Definition: graph.h:460
virtual Glyph * clone() const
bool fixed() const
Definition: graph.h:448
const Color * color() const
Definition: graph.h:466
float x_align_
Definition: graph.h:487
virtual void request(Requisition &) const
bool keepable()
Definition: graph.h:312
void init(DataVec *, DataVec *, const Color *, const Brush *)
Coord x(int index) const
Definition: graph.h:289
void brush(const Brush *)
const DataVec * y_data() const
Definition: graph.h:298
void erase()
Definition: graph.h:275
void label(GLabel *)
const Brush * brush() const
Definition: graph.h:285
GLabel * glabel_
Definition: graph.h:324
virtual void allocate(Canvas *, const Allocation &, Extension &)
const DataVec * x_data() const
Definition: graph.h:295
const Color * color() const
Definition: graph.h:282
virtual void print(Printer *, const Allocation &) const
void color(const Color *)
void plot(Coord x, Coord y)
bool keepable_
Definition: graph.h:325
const Brush * brush_
Definition: graph.h:323
virtual void pick(Canvas *, const Allocation &, int depth, Hit &)
GPolyLine(DataVec *x, const Color *=NULL, const Brush *=NULL)
DataVec * y_
Definition: graph.h:320
GLabel * label() const
Definition: graph.h:302
Coord y(int index) const
Definition: graph.h:292
virtual ~GPolyLine()
virtual void save(std::ostream &)
virtual void draw_specific(Canvas *, const Allocation &, int, int) const
bool near(Coord, Coord, float, const Transformer &) const
virtual void erase_line(Scene *, GlyphIndex)
int nearest(Coord, Coord, const Transformer &, int index=-1) const
const Color * color_
Definition: graph.h:322
virtual void draw(Canvas *, const Allocation &) const
GPolyLine(DataVec *x, DataVec *y, const Color *=NULL, const Brush *=NULL)
GPolyLine(GPolyLine *)
virtual void pick_vector()
DataVec * x_
Definition: graph.h:321
void label_loc(Coord &x, Coord &y) const
virtual ~GPolyLineItem()
Definition: graph.h:412
virtual void save(std::ostream &o, Coord, Coord)
Definition: graph.h:414
virtual void erase(Scene *s, GlyphIndex i, int type)
Definition: graph.h:417
GPolyLineItem(Glyph *g)
Definition: graph.h:410
virtual bool is_polyline()
Definition: graph.h:57
CopyString * var_name_
Definition: graph.h:176
void new_axis()
void change_line_color(GPolyLine *)
const Color * color() const
Definition: graph.h:112
virtual void new_size(Coord x1, Coord y1, Coord x2, Coord y2)
float label_scale_
Definition: graph.h:182
void erase()
SymChooser * sc_
Definition: graph.h:174
virtual ~Graph()
int loc_
Definition: graph.h:171
static std::ostream * ascii_
Definition: graph.h:197
int labeltype() const
Definition: graph.h:153
static SymChooser * fsc_
Definition: graph.h:175
float label_y_align_
Definition: graph.h:183
void cross_action(char, GPolyLine *, int)
void choose_sym()
const Brush * brush() const
Definition: graph.h:115
void family(const char *)
virtual bool change_label(GLabel *, const char *, GLabel *gl=NULL)
void name(char *)
double * x_pval_
Definition: graph.h:194
static void ascii(std::ostream *)
Graph(bool=true)
void extension_start()
void keep_lines()
void line(Coord x, Coord y)
int label_fixtype_
Definition: graph.h:181
virtual GlyphIndex glyph_index(const Glyph *)
GraphVector * rvp_
Definition: graph.h:196
void family(bool)
float label_x_
Definition: graph.h:184
Symlist * symlist_
Definition: graph.h:169
void ascii_save(std::ostream &o) const
float label_x_align_
Definition: graph.h:183
GraphLine * add_var(const char *, const Color *, const Brush *, bool usepointer, int fixtype=1, double *p=NULL, const char *lab=NULL, Object *obj=NULL)
void add_polyline(GPolyLine *)
bool vector_copy_
Definition: graph.h:191
TelltaleState * keep_lines_toggle_
Definition: graph.h:185
virtual void see_range_plot(GraphVector *)
static bool label_chooser(const char *, char *, GLabel *, Coord x=400., Coord y=400.)
void update_ptrs()
void erase_lines()
void erase_axis()
void fixed(float scale)
void family_label_chooser()
double family_val_
Definition: graph.h:188
bool family_on_
Definition: graph.h:186
void begin_line(const char *s=NULL)
virtual void save_phase2(std::ostream &)
void cross_action(char, Coord, Coord)
GLabel * label(const char *s, int fixtype=-1)
void view_axis()
void change_label_color(GLabel *)
virtual void help()
void color(int)
void add_graphVector(GraphVector *)
virtual void save_phase1(std::ostream &)
void x_expr(const char *, bool usepointer)
DataVec * x_
Definition: graph.h:172
GLabel * new_proto_label() const
virtual void delete_label(GLabel *)
void fast_flush()
virtual void wholeplot(Coord &x1, Coord &y1, Coord &x2, Coord &y2) const
void flush()
GPolyLine * current_polyline_
Definition: graph.h:177
void simgraph()
void plot(float)
float label_y_
Definition: graph.h:184
void relative(float scale)
HocCommand * cross_action_
Definition: graph.h:190
Symbol * x_expr_
Definition: graph.h:193
LineList line_list_
Definition: graph.h:170
void begin()
void align(float x, float y)
virtual void erase_all()
void family_value()
void view_box()
virtual void draw(Canvas *, const Allocation &) const
void keep_lines_toggle()
@ CROSSHAIR
Definition: graph.h:59
@ PICK
Definition: graph.h:59
@ EXTRAGRAPHTOOL
Definition: graph.h:59
@ CHANGELABEL
Definition: graph.h:59
int family_cnt_
Definition: graph.h:189
void mark(Coord x, Coord y, char style='+', float size=12, const Color *=NULL, const Brush *=NULL)
bool extension_flushed_
Definition: graph.h:173
GLabel * label(float x, float y, const char *s, float n=0, int fixtype=-1)
float label_n_
Definition: graph.h:184
void begin_line(const Color *, const Brush *, const char *s=NULL)
const Brush * brush_
Definition: graph.h:180
void extension_continue()
GLabel * label(float x, float y, const char *s, int fixtype, float scale, float x_align, float y_align, const Color *)
void vfixed(float scale)
void change_prop()
static std::ostream * ascii()
GLabel * family_label_
Definition: graph.h:187
void axis(DimensionName, float min, float max, float pos=0., int ntics=-1, int nminor=0, int invert=0, bool number=true)
void set_cross_action(const char *, Object *, bool vectorcopy=false)
const Color * color_
Definition: graph.h:179
virtual void pick(Canvas *, const Allocation &, int depth, Hit &)
void brush(int)
void save(bool s)
Definition: graph.h:40
virtual void pick(Canvas *, const Allocation &, int depth, Hit &)
virtual void erase(Scene *, GlyphIndex, int erase_type)
virtual bool is_graphVector()
Definition: graph.h:48
virtual bool is_mark()
bool save()
Definition: graph.h:37
virtual void save(std::ostream &, Coord, Coord)
GraphItem(Glyph *g, bool=true, bool pick=true)
bool pick_
Definition: graph.h:54
virtual ~GraphItem()
bool save_
Definition: graph.h:53
@ ERASE_LINE
Definition: graph.h:31
@ ERASE_AXIS
Definition: graph.h:31
virtual bool is_polyline()
virtual bool is_fast()
Definition: graph.h:45
bool valid(bool check=false)
LineExtension * extension_
Definition: graph.h:375
const Brush * save_brush_
Definition: graph.h:377
void simgraph_init()
void update_ptrs()
const Color * save_color_
Definition: graph.h:376
const Color * save_color() const
Definition: graph.h:351
void save_color(const Color *)
bool valid_
Definition: graph.h:378
GraphLine(const char *, DataVec *x, Symlist **, const Color *=NULL, const Brush *=NULL, bool usepointer=0, double *pd=NULL, Object *obj=NULL)
LineExtension * extension()
Definition: graph.h:346
bool change_expr(const char *, Symlist **)
virtual void save(std::ostream &)
void plot()
virtual void update(Observable *)
void extension_start()
const char * name() const
Object * obj_
Definition: graph.h:372
void save_brush(const Brush *)
virtual void erase_line(Scene *, GlyphIndex)
Definition: graph.h:362
void extension_continue()
double * pval_
Definition: graph.h:371
virtual void pick(Canvas *, const Allocation &, int depth, Hit &)
virtual ~GraphLine()
void simgraph_continuous(double)
void simgraph_activate(bool)
const Brush * save_brush() const
Definition: graph.h:354
Symbol * expr_
Definition: graph.h:370
DataVec * simgraph_x_sav_
Definition: graph.h:379
void update_ptrs()
virtual void save(std::ostream &)
virtual bool choose_sym(Graph *)
const char * name() const
CopyString name_
Definition: graph.h:404
GraphVector(const char *, const Color *=NULL, const Brush *=NULL)
DataPointers * py_data()
Definition: graph.h:395
virtual ~GraphVector()
void record_uninstall()
void record_install()
DataPointers * dp_
Definition: graph.h:403
virtual void request(Requisition &) const
void add(float, double *)
virtual void update(Observable *)
void begin()
bool trivial() const
bool disconnect_defer_
Definition: graph.h:405
virtual Coord y2() const
Definition: scenevie.h:366
virtual Coord y1() const
Definition: scenevie.h:363
virtual Coord x2() const
Definition: scenevie.h:360
virtual void remove(GlyphIndex)
@ EXTRATOOL
Definition: scenevie.h:258
virtual Coord x1() const
Definition: scenevie.h:357
const char * string() const
Definition: string.h:139
unsigned int DimensionName
Definition: geometry.h:40
BrushPalette * brushes
declarePtrList(LineList, GraphLine)
ColorPalette * colors
#define min(a, b)
Definition: matrix.h:157
#define max(a, b)
Definition: matrix.h:154
#define i
Definition: md1redef.h:12
invert
Definition: extdef.h:9
static double check(double t, Daspk *ida)
Definition: nrndaspk.cpp:209
int const size_t const size_t n
Definition: nrngsl.h:11
size_t p
static char * pattern
Definition: regexp.cpp:82
#define g
Definition: passive0.cpp:21
o
Definition: seclist.cpp:175
#define NULL
Definition: sptree.h:16
Definition: hocdec.h:227
Definition: model.h:57
Definition: hocdec.h:84