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