Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/g4tools/include/tools/sg/style

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /externals/g4tools/include/tools/sg/style (Version 11.3.0) and /externals/g4tools/include/tools/sg/style (Version 11.1.3)


  1 // Copyright (C) 2010, Guy Barrand. All rights      1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
  2 // See the file tools.license for terms.            2 // See the file tools.license for terms.
  3                                                     3 
  4 #ifndef tools_sg_style                              4 #ifndef tools_sg_style
  5 #define tools_sg_style                              5 #define tools_sg_style
  6                                                     6 
  7 // fields of style_parser but put as sf on a n      7 // fields of style_parser but put as sf on a node.
  8                                                     8 
  9 #include "node"                                     9 #include "node"
 10                                                    10 
 11 #include "style_parser"                            11 #include "style_parser"
 12 #include "sf_string"                               12 #include "sf_string"
 13 #include "sf_vec3f"                                13 #include "sf_vec3f"
 14 #include "sf_enum"                                 14 #include "sf_enum"
 15                                                    15 
 16 namespace tools {                                  16 namespace tools {
 17 namespace sg {                                     17 namespace sg {
 18                                                    18 
 19 class style : public node {                        19 class style : public node {
 20   TOOLS_NODE(style,tools::sg::style,node)          20   TOOLS_NODE(style,tools::sg::style,node)
 21 public:                                            21 public:
 22   sf_vec<colorf,float> color;                      22   sf_vec<colorf,float> color;
 23   sf_vec<colorf,float> highlight_color;            23   sf_vec<colorf,float> highlight_color;
 24   sf_vec<colorf,float> back_color;                 24   sf_vec<colorf,float> back_color;
 25   sf<float> line_width;                            25   sf<float> line_width;
 26   sf<float> marker_size;                           26   sf<float> marker_size;
 27   sf<float> point_size;                            27   sf<float> point_size;
 28   sf<float> font_size;                             28   sf<float> font_size;
 29   sf_enum<sg::font_modeling> font_modeling;        29   sf_enum<sg::font_modeling> font_modeling;
 30   sf_enum<winding_type> front_face;                30   sf_enum<winding_type> front_face;
 31   sf<lpat> line_pattern;                           31   sf<lpat> line_pattern;
 32   sf_enum<sg::marker_style> marker_style;          32   sf_enum<sg::marker_style> marker_style;
 33   sf_enum<sg::area_style> area_style;              33   sf_enum<sg::area_style> area_style;
 34   sf_string modeling;                              34   sf_string modeling;
 35   sf_string light_model;                           35   sf_string light_model;
 36   sf_string tick_modeling;                         36   sf_string tick_modeling;
 37   sf_string encoding;                              37   sf_string encoding;
 38   sf<bool> smoothing;                              38   sf<bool> smoothing;
 39   sf<bool> hinting;                                39   sf<bool> hinting;
 40   sf_string cut;                                   40   sf_string cut;
 41   sf_enum<sg::painting_policy> painting;           41   sf_enum<sg::painting_policy> painting;
 42   sf_enum<sg::hatching_policy> hatching;           42   sf_enum<sg::hatching_policy> hatching;
 43   sf_enum<sg::projection_type> projection;         43   sf_enum<sg::projection_type> projection;
 44   sf_string font;                                  44   sf_string font;
 45   sf<int> multi_node_limit;                        45   sf<int> multi_node_limit;
 46   sf<int> divisions;                               46   sf<int> divisions;
 47   sf<unsigned int> rotation_steps;                 47   sf<unsigned int> rotation_steps;
 48   sf<float> spacing;                               48   sf<float> spacing;
 49   sf<float> angle;                                 49   sf<float> angle;
 50   sf<float> scale;                                 50   sf<float> scale;
 51   sf<float> offset;                                51   sf<float> offset;
 52   sf<float> strip_width;                           52   sf<float> strip_width;
 53   sf<bool> visible;                                53   sf<bool> visible;
 54   sf<float> bar_offset;                            54   sf<float> bar_offset;
 55   sf<float> bar_width;                             55   sf<float> bar_width;
 56   sf<bool> editable;                               56   sf<bool> editable;
 57   sf<bool> pickable;                               57   sf<bool> pickable;
 58   sf<bool> automated;                              58   sf<bool> automated;
 59   sf_string options;                               59   sf_string options;
 60   sf_string color_mapping;                         60   sf_string color_mapping;
 61   sf<bool> enforced;                               61   sf<bool> enforced;
 62   sf_vec3f translation;                            62   sf_vec3f translation;
 63   sf_string coloring;                              63   sf_string coloring;
 64   sf_string title;                                 64   sf_string title;
 65 public:                                            65 public:
 66   virtual const desc_fields& node_desc_fields(     66   virtual const desc_fields& node_desc_fields() const {
 67     TOOLS_FIELD_DESC_NODE_CLASS(tools::sg::sty     67     TOOLS_FIELD_DESC_NODE_CLASS(tools::sg::style)
 68     static const desc_fields s_v(parent::node_     68     static const desc_fields s_v(parent::node_desc_fields(),43, //WARNING : take care of count.
 69       TOOLS_ARG_FIELD_DESC(color),  //1            69       TOOLS_ARG_FIELD_DESC(color),  //1
 70       TOOLS_ARG_FIELD_DESC(highlight_color),       70       TOOLS_ARG_FIELD_DESC(highlight_color),
 71       TOOLS_ARG_FIELD_DESC(back_color),            71       TOOLS_ARG_FIELD_DESC(back_color),
 72       TOOLS_ARG_FIELD_DESC(line_width),            72       TOOLS_ARG_FIELD_DESC(line_width),
 73       TOOLS_ARG_FIELD_DESC(marker_size),           73       TOOLS_ARG_FIELD_DESC(marker_size),
 74       TOOLS_ARG_FIELD_DESC(point_size),            74       TOOLS_ARG_FIELD_DESC(point_size),
 75       TOOLS_ARG_FIELD_DESC(font_size),             75       TOOLS_ARG_FIELD_DESC(font_size),
 76       TOOLS_ARG_FIELD_DESC(font_modeling),         76       TOOLS_ARG_FIELD_DESC(font_modeling),
 77       TOOLS_ARG_FIELD_DESC(front_face),            77       TOOLS_ARG_FIELD_DESC(front_face),
 78       TOOLS_ARG_FIELD_DESC(line_pattern),   //     78       TOOLS_ARG_FIELD_DESC(line_pattern),   //10
 79                                                    79 
 80       TOOLS_ARG_FIELD_DESC(marker_style),          80       TOOLS_ARG_FIELD_DESC(marker_style),
 81       TOOLS_ARG_FIELD_DESC(area_style),            81       TOOLS_ARG_FIELD_DESC(area_style),
 82       TOOLS_ARG_FIELD_DESC(modeling),              82       TOOLS_ARG_FIELD_DESC(modeling),
 83       TOOLS_ARG_FIELD_DESC(light_model),           83       TOOLS_ARG_FIELD_DESC(light_model),
 84       TOOLS_ARG_FIELD_DESC(tick_modeling),         84       TOOLS_ARG_FIELD_DESC(tick_modeling),
 85       TOOLS_ARG_FIELD_DESC(encoding),              85       TOOLS_ARG_FIELD_DESC(encoding),
 86       TOOLS_ARG_FIELD_DESC(smoothing),             86       TOOLS_ARG_FIELD_DESC(smoothing),
 87       TOOLS_ARG_FIELD_DESC(hinting),               87       TOOLS_ARG_FIELD_DESC(hinting),
 88       TOOLS_ARG_FIELD_DESC(cut),                   88       TOOLS_ARG_FIELD_DESC(cut),
 89       TOOLS_ARG_FIELD_DESC(painting),  //20        89       TOOLS_ARG_FIELD_DESC(painting),  //20
 90                                                    90 
 91       TOOLS_ARG_FIELD_DESC(hatching),              91       TOOLS_ARG_FIELD_DESC(hatching),
 92       TOOLS_ARG_FIELD_DESC(projection),            92       TOOLS_ARG_FIELD_DESC(projection),
 93       TOOLS_ARG_FIELD_DESC(font),                  93       TOOLS_ARG_FIELD_DESC(font),
 94       TOOLS_ARG_FIELD_DESC(multi_node_limit),      94       TOOLS_ARG_FIELD_DESC(multi_node_limit),
 95       TOOLS_ARG_FIELD_DESC(divisions),             95       TOOLS_ARG_FIELD_DESC(divisions),
 96       TOOLS_ARG_FIELD_DESC(rotation_steps),        96       TOOLS_ARG_FIELD_DESC(rotation_steps),
 97       TOOLS_ARG_FIELD_DESC(spacing),               97       TOOLS_ARG_FIELD_DESC(spacing),
 98       TOOLS_ARG_FIELD_DESC(angle),                 98       TOOLS_ARG_FIELD_DESC(angle),
 99       TOOLS_ARG_FIELD_DESC(scale),                 99       TOOLS_ARG_FIELD_DESC(scale),
100       TOOLS_ARG_FIELD_DESC(offset),  //30         100       TOOLS_ARG_FIELD_DESC(offset),  //30
101                                                   101 
102       TOOLS_ARG_FIELD_DESC(strip_width),          102       TOOLS_ARG_FIELD_DESC(strip_width),
103       TOOLS_ARG_FIELD_DESC(visible),              103       TOOLS_ARG_FIELD_DESC(visible),
104       TOOLS_ARG_FIELD_DESC(bar_offset),           104       TOOLS_ARG_FIELD_DESC(bar_offset),
105       TOOLS_ARG_FIELD_DESC(bar_width),            105       TOOLS_ARG_FIELD_DESC(bar_width),
106       TOOLS_ARG_FIELD_DESC(editable),             106       TOOLS_ARG_FIELD_DESC(editable),
107       TOOLS_ARG_FIELD_DESC(pickable),             107       TOOLS_ARG_FIELD_DESC(pickable),
108       TOOLS_ARG_FIELD_DESC(automated),            108       TOOLS_ARG_FIELD_DESC(automated),
109       TOOLS_ARG_FIELD_DESC(options),              109       TOOLS_ARG_FIELD_DESC(options),
110       TOOLS_ARG_FIELD_DESC(color_mapping),        110       TOOLS_ARG_FIELD_DESC(color_mapping),
111       TOOLS_ARG_FIELD_DESC(enforced),   //40      111       TOOLS_ARG_FIELD_DESC(enforced),   //40
112                                                   112 
113       TOOLS_ARG_FIELD_DESC(translation),          113       TOOLS_ARG_FIELD_DESC(translation),
114       TOOLS_ARG_FIELD_DESC(coloring),             114       TOOLS_ARG_FIELD_DESC(coloring),
115       TOOLS_ARG_FIELD_DESC(title)                 115       TOOLS_ARG_FIELD_DESC(title)
116     );                                            116     );
117     return s_v;                                   117     return s_v;
118   }                                               118   }
119 private:                                          119 private:
120   void add_fields(){                              120   void add_fields(){
121     add_field(&color);                            121     add_field(&color);
122     add_field(&highlight_color);                  122     add_field(&highlight_color);
123     add_field(&back_color);                       123     add_field(&back_color);
124     add_field(&line_width);                       124     add_field(&line_width);
125     add_field(&marker_size);                      125     add_field(&marker_size);
126     add_field(&point_size);                       126     add_field(&point_size);
127     add_field(&font_size);                        127     add_field(&font_size);
128     add_field(&font_modeling);                    128     add_field(&font_modeling);
129     add_field(&front_face);                       129     add_field(&front_face);
130     add_field(&line_pattern);                     130     add_field(&line_pattern);
131     add_field(&marker_style);                     131     add_field(&marker_style);
132     add_field(&area_style);                       132     add_field(&area_style);
133     add_field(&modeling);                         133     add_field(&modeling);
134     add_field(&light_model);                      134     add_field(&light_model);
135     add_field(&tick_modeling);                    135     add_field(&tick_modeling);
136     add_field(&encoding);                         136     add_field(&encoding);
137     add_field(&smoothing);                        137     add_field(&smoothing);
138     add_field(&hinting);                          138     add_field(&hinting);
139     add_field(&cut);                              139     add_field(&cut);
140     add_field(&painting);                         140     add_field(&painting);
141     add_field(&hatching);                         141     add_field(&hatching);
142     add_field(&projection);                       142     add_field(&projection);
143     add_field(&font);                             143     add_field(&font);
144     add_field(&multi_node_limit);                 144     add_field(&multi_node_limit);
145     add_field(&divisions);                        145     add_field(&divisions);
146     add_field(&rotation_steps);                   146     add_field(&rotation_steps);
147     add_field(&spacing);                          147     add_field(&spacing);
148     add_field(&angle);                            148     add_field(&angle);
149     add_field(&scale);                            149     add_field(&scale);
150     add_field(&offset);                           150     add_field(&offset);
151     add_field(&strip_width);                      151     add_field(&strip_width);
152     add_field(&visible);                          152     add_field(&visible);
153     add_field(&bar_offset);                       153     add_field(&bar_offset);
154     add_field(&bar_width);                        154     add_field(&bar_width);
155     add_field(&editable);                         155     add_field(&editable);
156     add_field(&pickable);                         156     add_field(&pickable);
157     add_field(&automated);                        157     add_field(&automated);
158     add_field(&options);                          158     add_field(&options);
159     add_field(&color_mapping);                    159     add_field(&color_mapping);
160     add_field(&enforced);                         160     add_field(&enforced);
161     add_field(&translation);                      161     add_field(&translation);
162     add_field(&coloring);                         162     add_field(&coloring);
163     add_field(&title);                            163     add_field(&title);
164   }                                               164   }
165 public:                                           165 public:
166   style()                                         166   style()
167   :parent()                                       167   :parent()
168   ,color(colorf_black())                          168   ,color(colorf_black())
169   ,highlight_color(colorf_black())                169   ,highlight_color(colorf_black())
170   ,back_color(colorf_white())                     170   ,back_color(colorf_white())
171   ,line_width(1)                                  171   ,line_width(1)
172   ,marker_size(1)                                 172   ,marker_size(1)
173   ,point_size(1)                                  173   ,point_size(1)
174   ,font_size(10)                                  174   ,font_size(10)
175   ,font_modeling(font_filled)                     175   ,font_modeling(font_filled)
176   ,front_face(winding_ccw)                        176   ,front_face(winding_ccw)
177   ,line_pattern(line_solid)                       177   ,line_pattern(line_solid)
178   ,marker_style(marker_dot)                       178   ,marker_style(marker_dot)
179   ,area_style(area_solid)                         179   ,area_style(area_solid)
180   ,modeling(modeling_boxes())                     180   ,modeling(modeling_boxes())
181   ,light_model(light_model_phong())               181   ,light_model(light_model_phong())
182   ,tick_modeling(tick_modeling_hippo())           182   ,tick_modeling(tick_modeling_hippo())
183   ,encoding(encoding_none())                      183   ,encoding(encoding_none())
184   ,smoothing(false)                               184   ,smoothing(false)
185   ,hinting(false)                                 185   ,hinting(false)
186   ,cut()                                          186   ,cut()
187   ,painting(painting_uniform)                     187   ,painting(painting_uniform)
188   ,hatching(hatching_none)                        188   ,hatching(hatching_none)
189   ,projection(projection_none)                    189   ,projection(projection_none)
190   ,font(font_hershey())                           190   ,font(font_hershey())
191   ,multi_node_limit(style_parser::no_limit())     191   ,multi_node_limit(style_parser::no_limit())
192   ,divisions(510) //Same as ROOT/TAttAxis         192   ,divisions(510) //Same as ROOT/TAttAxis
193   ,rotation_steps(24) //Same as SbPolyhedron d    193   ,rotation_steps(24) //Same as SbPolyhedron default.
194   ,spacing(0.05F)                                 194   ,spacing(0.05F)
195   ,angle(fpi()/4.0F)                              195   ,angle(fpi()/4.0F)
196   ,scale(1)                                       196   ,scale(1)
197   ,offset(0)                                      197   ,offset(0)
198   ,strip_width(0)                                 198   ,strip_width(0)
199   ,visible(true)                                  199   ,visible(true)
200   ,bar_offset(0.25F)                              200   ,bar_offset(0.25F)
201   ,bar_width(0.5F)                                201   ,bar_width(0.5F)
202   ,editable(false)                                202   ,editable(false)
203   ,pickable(false)                                203   ,pickable(false)
204   ,automated(true)                                204   ,automated(true)
205   ,options()                                      205   ,options()
206   ,color_mapping()                                206   ,color_mapping()
207   ,enforced(false)                                207   ,enforced(false)
208   ,translation(vec3f(0,0,0))                      208   ,translation(vec3f(0,0,0))
209   ,coloring()                                     209   ,coloring()
210   ,title()                                        210   ,title()
211   {                                               211   {
212     add_fields();                                 212     add_fields();
213   }                                               213   }
214   virtual ~style(){}                              214   virtual ~style(){}
215 public:                                           215 public:
216   style(const style& a_from)                      216   style(const style& a_from)
217   :parent(a_from)                                 217   :parent(a_from)
218   ,color(a_from.color)                            218   ,color(a_from.color)
219   ,highlight_color(a_from.highlight_color)        219   ,highlight_color(a_from.highlight_color)
220   ,back_color(a_from.back_color)                  220   ,back_color(a_from.back_color)
221   ,line_width(a_from.line_width)                  221   ,line_width(a_from.line_width)
222   ,marker_size(a_from.marker_size)                222   ,marker_size(a_from.marker_size)
223   ,point_size(a_from.point_size)                  223   ,point_size(a_from.point_size)
224   ,font_size(a_from.font_size)                    224   ,font_size(a_from.font_size)
225   ,font_modeling(a_from.font_modeling)            225   ,font_modeling(a_from.font_modeling)
226   ,front_face(a_from.front_face)                  226   ,front_face(a_from.front_face)
227   ,line_pattern(a_from.line_pattern)              227   ,line_pattern(a_from.line_pattern)
228   ,marker_style(a_from.marker_style)              228   ,marker_style(a_from.marker_style)
229   ,area_style(a_from.area_style)                  229   ,area_style(a_from.area_style)
230   ,modeling (a_from.modeling )                    230   ,modeling (a_from.modeling )
231   ,light_model(a_from.light_model)                231   ,light_model(a_from.light_model)
232   ,tick_modeling(a_from.tick_modeling)            232   ,tick_modeling(a_from.tick_modeling)
233   ,encoding(a_from.encoding)                      233   ,encoding(a_from.encoding)
234   ,smoothing(a_from.smoothing)                    234   ,smoothing(a_from.smoothing)
235   ,hinting(a_from.hinting)                        235   ,hinting(a_from.hinting)
236   ,cut(a_from.cut)                                236   ,cut(a_from.cut)
237   ,painting(a_from.painting)                      237   ,painting(a_from.painting)
238   ,hatching(a_from.hatching)                      238   ,hatching(a_from.hatching)
239   ,projection(a_from.projection)                  239   ,projection(a_from.projection)
240   ,font(a_from.font)                              240   ,font(a_from.font)
241   ,multi_node_limit(a_from.multi_node_limit)      241   ,multi_node_limit(a_from.multi_node_limit)
242   ,divisions(a_from.divisions)                    242   ,divisions(a_from.divisions)
243   ,rotation_steps(a_from.rotation_steps)          243   ,rotation_steps(a_from.rotation_steps)
244   ,spacing(a_from.spacing)                        244   ,spacing(a_from.spacing)
245   ,angle(a_from.angle)                            245   ,angle(a_from.angle)
246   ,scale(a_from.scale)                            246   ,scale(a_from.scale)
247   ,offset(a_from.offset)                          247   ,offset(a_from.offset)
248   ,strip_width(a_from.strip_width)                248   ,strip_width(a_from.strip_width)
249   ,visible(a_from.visible)                        249   ,visible(a_from.visible)
250   ,bar_offset(a_from.bar_offset)                  250   ,bar_offset(a_from.bar_offset)
251   ,bar_width(a_from.bar_width)                    251   ,bar_width(a_from.bar_width)
252   ,editable(a_from.editable)                      252   ,editable(a_from.editable)
253   ,pickable(a_from.pickable)                      253   ,pickable(a_from.pickable)
254   ,automated(a_from.automated)                    254   ,automated(a_from.automated)
255   ,options(a_from.options)                        255   ,options(a_from.options)
256   ,color_mapping(a_from.color_mapping)            256   ,color_mapping(a_from.color_mapping)
257   ,enforced(a_from.enforced)                      257   ,enforced(a_from.enforced)
258   ,translation(a_from.translation)                258   ,translation(a_from.translation)
259   ,coloring(a_from.coloring)                      259   ,coloring(a_from.coloring)
260   ,title(a_from.title)                            260   ,title(a_from.title)
261   {                                               261   {
262     add_fields();                                 262     add_fields();
263   }                                               263   }
264   style& operator=(const style& a_from){          264   style& operator=(const style& a_from){
265     parent::operator=(a_from);                    265     parent::operator=(a_from);
266                                                   266 
267     color = a_from.color;                         267     color = a_from.color;
268     highlight_color = a_from.highlight_color;     268     highlight_color = a_from.highlight_color;
269     back_color = a_from.back_color;               269     back_color = a_from.back_color;
270     line_width = a_from.line_width;               270     line_width = a_from.line_width;
271     marker_size = a_from.marker_size;             271     marker_size = a_from.marker_size;
272     point_size = a_from.point_size;               272     point_size = a_from.point_size;
273     font_size = a_from.font_size;                 273     font_size = a_from.font_size;
274     font_modeling = a_from.font_modeling;         274     font_modeling = a_from.font_modeling;
275     front_face = a_from.front_face;               275     front_face = a_from.front_face;
276     line_pattern = a_from.line_pattern;           276     line_pattern = a_from.line_pattern;
277     marker_style = a_from.marker_style;           277     marker_style = a_from.marker_style;
278     area_style = a_from.area_style;               278     area_style = a_from.area_style;
279     modeling  = a_from.modeling ;                 279     modeling  = a_from.modeling ;
280     light_model = a_from.light_model;             280     light_model = a_from.light_model;
281     tick_modeling = a_from.tick_modeling;         281     tick_modeling = a_from.tick_modeling;
282     encoding = a_from.encoding;                   282     encoding = a_from.encoding;
283     smoothing = a_from.smoothing;                 283     smoothing = a_from.smoothing;
284     hinting = a_from.hinting;                     284     hinting = a_from.hinting;
285     cut = a_from.cut;                             285     cut = a_from.cut;
286     painting = a_from.painting;                   286     painting = a_from.painting;
287     hatching = a_from.hatching;                   287     hatching = a_from.hatching;
288     projection = a_from.projection;               288     projection = a_from.projection;
289     font = a_from.font;                           289     font = a_from.font;
290     multi_node_limit = a_from.multi_node_limit    290     multi_node_limit = a_from.multi_node_limit;
291     divisions = a_from.divisions;                 291     divisions = a_from.divisions;
292     rotation_steps = a_from.rotation_steps;       292     rotation_steps = a_from.rotation_steps;
293     spacing = a_from.spacing;                     293     spacing = a_from.spacing;
294     angle = a_from.angle;                         294     angle = a_from.angle;
295     scale = a_from.scale;                         295     scale = a_from.scale;
296     offset = a_from.offset;                       296     offset = a_from.offset;
297     strip_width = a_from.strip_width;             297     strip_width = a_from.strip_width;
298     visible = a_from.visible;                     298     visible = a_from.visible;
299     bar_offset = a_from.bar_offset;               299     bar_offset = a_from.bar_offset;
300     bar_width = a_from.bar_width;                 300     bar_width = a_from.bar_width;
301     editable = a_from.editable;                   301     editable = a_from.editable;
302     pickable = a_from.pickable;                   302     pickable = a_from.pickable;
303     automated = a_from.automated;                 303     automated = a_from.automated;
304     options = a_from.options;                     304     options = a_from.options;
305     color_mapping = a_from.color_mapping;         305     color_mapping = a_from.color_mapping;
306     enforced = a_from.enforced;                   306     enforced = a_from.enforced;
307     translation = a_from.translation;             307     translation = a_from.translation;
308     coloring = a_from.coloring;                   308     coloring = a_from.coloring;
309     title = a_from.title;                         309     title = a_from.title;
310                                                   310 
311     return *this;                                 311     return *this;
312   }                                               312   }
313 public:                                           313 public:
314   void reset() {                                  314   void reset() {
315     color = colorf_black();                       315     color = colorf_black();
316     highlight_color = colorf_black();             316     highlight_color = colorf_black();
317     back_color = colorf_white();                  317     back_color = colorf_white();
318     line_width = 1;                               318     line_width = 1;
319     marker_size = 1;                              319     marker_size = 1;
320     point_size = 1;                               320     point_size = 1;
321     font_size = 10;                               321     font_size = 10;
322     font_modeling = font_filled;                  322     font_modeling = font_filled;
323     front_face = winding_ccw;                     323     front_face = winding_ccw;
324     line_pattern = line_solid;                    324     line_pattern = line_solid;
325     marker_style = marker_dot;                    325     marker_style = marker_dot;
326     area_style = area_solid;                      326     area_style = area_solid;
327     modeling = modeling_boxes();                  327     modeling = modeling_boxes();
328     light_model = light_model_phong();            328     light_model = light_model_phong();
329     tick_modeling = tick_modeling_hippo();        329     tick_modeling = tick_modeling_hippo();
330     encoding = encoding_none();                   330     encoding = encoding_none();
331     smoothing = false;                            331     smoothing = false;
332     hinting = false;                              332     hinting = false;
333     cut = "";                                     333     cut = "";
334     painting = painting_uniform;                  334     painting = painting_uniform;
335     hatching = hatching_none;                     335     hatching = hatching_none;
336     projection = projection_none;                 336     projection = projection_none;
337     font = font_hershey();                        337     font = font_hershey();
338     multi_node_limit = style_parser::no_limit(    338     multi_node_limit = style_parser::no_limit();
339     divisions = 510;                              339     divisions = 510;
340     rotation_steps = 24;                          340     rotation_steps = 24;
341     spacing = 0.05F;                              341     spacing = 0.05F;
342     angle = fpi()/4.0F;                           342     angle = fpi()/4.0F;
343     scale = 1;                                    343     scale = 1;
344     offset = 0;                                   344     offset = 0;
345     strip_width = 0;                              345     strip_width = 0;
346     visible = true;                               346     visible = true;
347     bar_offset = 0.25F;                           347     bar_offset = 0.25F;
348     bar_width = 0.5F;                             348     bar_width = 0.5F;
349     editable = false;                             349     editable = false;
350     pickable = false;                             350     pickable = false;
351     automated = true;                             351     automated = true;
352     options = "";                                 352     options = "";
353     color_mapping = "";                           353     color_mapping = "";
354     enforced = false;                             354     enforced = false;
355     translation = vec3f(0,0,0);                   355     translation = vec3f(0,0,0);
356     coloring = "";                                356     coloring = "";
357     title = "";                                   357     title = "";
358   }                                               358   }
359                                                   359 
360   bool from_string(std::ostream& a_out,const c    360   bool from_string(std::ostream& a_out,const cmaps_t& a_cmaps,const std::string& a_s) {
361     style_parser sp;                              361     style_parser sp;
362                                                   362 
363     sp.color(color.value());                      363     sp.color(color.value());
364     sp.highlight_color(highlight_color.value()    364     sp.highlight_color(highlight_color.value());
365     sp.back_color(back_color.value());            365     sp.back_color(back_color.value());
366     sp.line_width(line_width.value());            366     sp.line_width(line_width.value());
367     sp.marker_size(marker_size.value());          367     sp.marker_size(marker_size.value());
368     sp.point_size(point_size.value());            368     sp.point_size(point_size.value());
369     sp.font_size(font_size.value());              369     sp.font_size(font_size.value());
370     sp.font_modeling(font_modeling.value());      370     sp.font_modeling(font_modeling.value());
371     sp.front_face(front_face.value());            371     sp.front_face(front_face.value());
372     sp.line_pattern(line_pattern.value());        372     sp.line_pattern(line_pattern.value());
373     sp.marker_style(marker_style.value());        373     sp.marker_style(marker_style.value());
374     sp.area_style(area_style.value());            374     sp.area_style(area_style.value());
375     sp.modeling(modeling.value());                375     sp.modeling(modeling.value());
376     sp.light_model(light_model.value());          376     sp.light_model(light_model.value());
377     sp.tick_modeling(tick_modeling.value());      377     sp.tick_modeling(tick_modeling.value());
378     sp.encoding(encoding.value());                378     sp.encoding(encoding.value());
379     sp.smoothing(smoothing.value());              379     sp.smoothing(smoothing.value());
380     sp.hinting(hinting.value());                  380     sp.hinting(hinting.value());
381     sp.cut(cut.value());                          381     sp.cut(cut.value());
382     sp.painting(painting.value());                382     sp.painting(painting.value());
383     sp.hatching(hatching.value());                383     sp.hatching(hatching.value());
384     sp.projection(projection.value());            384     sp.projection(projection.value());
385     sp.font(font.value());                        385     sp.font(font.value());
386     sp.multi_node_limit(multi_node_limit.value    386     sp.multi_node_limit(multi_node_limit.value());
387     sp.divisions(divisions.value());              387     sp.divisions(divisions.value());
388     sp.rotation_steps(rotation_steps.value());    388     sp.rotation_steps(rotation_steps.value());
389   //sp.transparency(transparency.value());        389   //sp.transparency(transparency.value());
390   //sp.back_transparency(back_transparency.val    390   //sp.back_transparency(back_transparency.value());
391     sp.spacing(spacing.value());                  391     sp.spacing(spacing.value());
392     sp.angle(angle.value());                      392     sp.angle(angle.value());
393     sp.scale(scale.value());                      393     sp.scale(scale.value());
394     sp.offset(offset.value());                    394     sp.offset(offset.value());
395     sp.strip_width(strip_width.value());          395     sp.strip_width(strip_width.value());
396     sp.visible(visible.value());                  396     sp.visible(visible.value());
397     sp.bar_offset(bar_offset.value());            397     sp.bar_offset(bar_offset.value());
398     sp.bar_width(bar_width.value());              398     sp.bar_width(bar_width.value());
399     sp.editable(editable.value());                399     sp.editable(editable.value());
400     sp.pickable(pickable.value());                400     sp.pickable(pickable.value());
401     sp.automated(automated.value());              401     sp.automated(automated.value());
402     sp.options(options.value());                  402     sp.options(options.value());
403     sp.color_mapping(color_mapping.value());      403     sp.color_mapping(color_mapping.value());
404     sp.enforced(enforced.value());                404     sp.enforced(enforced.value());
405     sp.translation(translation.value());          405     sp.translation(translation.value());
406     sp.coloring(coloring.value());                406     sp.coloring(coloring.value());
407     sp.title(title.value());                      407     sp.title(title.value());
408                                                   408 
409     //if(!sp.parse(a_s,style_parser::def_error    409     //if(!sp.parse(a_s,style_parser::def_error_func))
410     //  return false;                             410     //  return false;
411                                                   411 
412     if(!sp.parse(a_out,a_cmaps,a_s)) {            412     if(!sp.parse(a_out,a_cmaps,a_s)) {
413       a_out << "tools::sg::style::from_string     413       a_out << "tools::sg::style::from_string :"
414             << " parse failed."                   414             << " parse failed."
415             << std::endl;                         415             << std::endl;
416       return false;                               416       return false;
417     }                                             417     }
418                                                   418 
419     color.value(sp.color());                      419     color.value(sp.color());
420     highlight_color.value(sp.highlight_color()    420     highlight_color.value(sp.highlight_color());
421     back_color.value(sp.back_color());            421     back_color.value(sp.back_color());
422     line_width.value(sp.line_width());            422     line_width.value(sp.line_width());
423     marker_size.value(sp.marker_size());          423     marker_size.value(sp.marker_size());
424     point_size.value(sp.point_size());            424     point_size.value(sp.point_size());
425     font_size.value(sp.font_size());              425     font_size.value(sp.font_size());
426     font_modeling.value(sp.font_modeling());      426     font_modeling.value(sp.font_modeling());
427     front_face = sp.front_face();                 427     front_face = sp.front_face();
428     line_pattern.value(sp.line_pattern());        428     line_pattern.value(sp.line_pattern());
429     marker_style.value(sp.marker_style());        429     marker_style.value(sp.marker_style());
430     area_style.value(sp.area_style());            430     area_style.value(sp.area_style());
431     modeling.value(sp.modeling());                431     modeling.value(sp.modeling());
432     light_model.value(sp.light_model());          432     light_model.value(sp.light_model());
433     tick_modeling.value(sp.tick_modeling());      433     tick_modeling.value(sp.tick_modeling());
434     encoding.value(sp.encoding());                434     encoding.value(sp.encoding());
435     smoothing.value(sp.smoothing());              435     smoothing.value(sp.smoothing());
436     hinting.value(sp.hinting());                  436     hinting.value(sp.hinting());
437     cut.value(sp.cut());                          437     cut.value(sp.cut());
438     painting.value(sp.painting());                438     painting.value(sp.painting());
439     hatching.value(sp.hatching());                439     hatching.value(sp.hatching());
440     projection.value(sp.projection());            440     projection.value(sp.projection());
441     font.value(sp.font());                        441     font.value(sp.font());
442     multi_node_limit.value(sp.multi_node_limit    442     multi_node_limit.value(sp.multi_node_limit());
443     divisions.value(sp.divisions());              443     divisions.value(sp.divisions());
444     rotation_steps.value(sp.rotation_steps());    444     rotation_steps.value(sp.rotation_steps());
445   //transparency.value(sp.transparency());        445   //transparency.value(sp.transparency());
446   //back_transparency.value(sp.back_transparen    446   //back_transparency.value(sp.back_transparency());
447     spacing.value(sp.spacing());                  447     spacing.value(sp.spacing());
448     angle.value(sp.angle());                      448     angle.value(sp.angle());
449     scale.value(sp.scale());                      449     scale.value(sp.scale());
450     offset.value(sp.offset());                    450     offset.value(sp.offset());
451     strip_width.value(sp.strip_width());          451     strip_width.value(sp.strip_width());
452     visible.value(sp.visible());                  452     visible.value(sp.visible());
453     bar_offset.value(sp.bar_offset());            453     bar_offset.value(sp.bar_offset());
454     bar_width.value(sp.bar_width());              454     bar_width.value(sp.bar_width());
455     editable.value(sp.editable());                455     editable.value(sp.editable());
456     pickable.value(sp.pickable());                456     pickable.value(sp.pickable());
457     automated.value(sp.automated());              457     automated.value(sp.automated());
458     options.value(sp.options());                  458     options.value(sp.options());
459     color_mapping.value(sp.color_mapping());      459     color_mapping.value(sp.color_mapping());
460     enforced.value(sp.enforced());                460     enforced.value(sp.enforced());
461     translation.value(sp.translation());          461     translation.value(sp.translation());
462     coloring.value(sp.coloring());                462     coloring.value(sp.coloring());
463     title.value(sp.title());                      463     title.value(sp.title());
464                                                   464 
465     return true;                                  465     return true;
466   }                                               466   }
467                                                   467 
468 };                                                468 };
469                                                   469 
470 }}                                                470 }}
471                                                   471 
472 #endif                                            472 #endif