* added all Geometries test method for the consign.
[hkl.git] / bouml / hkl / hkl.prj
blob2bab4a13a7050a17f16587a3d8ffe493bd3ae971
1 format 40
2 "hkl"
3   revision 89
4   modified_by 2 "picca"
5   cpp_root_dir "../../"
8   
9   // class settings
10   default_attribute_visibility protected default_relation_visibility protected default_operation_visibility public
11   //class diagram settings
12   draw_all_relations yes hide_attributes no hide_operations no show_members_full_definition yes show_members_visibility yes show_members_stereotype no show_parameter_dir yes show_parameter_name yes package_name_in_tab yes class_drawing_mode class drawing_language c++ show_context_mode namespace auto_label_position yes show_infonote no shadow yes
13   //use case diagram settings
14   package_name_in_tab no show_context no auto_label_position yes draw_all_relations yes shadow yes
15   //sequence diagram settings
16   show_full_operations_definition no write_horizontally yes class_drawing_mode natural drawing_language c++ draw_all_relations yes shadow yes
17   //collaboration diagram settings
18   show_full_operations_definition no show_hierarchical_rank no write_horizontally yes drawing_language c++ package_name_in_tab no show_context no draw_all_relations yes shadow yes
19   //object diagram settings
20    write_horizontally yes package_name_in_tab no show_context no auto_label_position yes draw_all_relations yes shadow yes
21   //component diagram settings
22   package_name_in_tab no show_context no auto_label_position yes draw_all_relations yes shadow yes
23   draw_component_as_icon no show_component_req_prov no show_component_rea no
24   //deployment diagram settings
25   package_name_in_tab no show_context no write_horizontally yes auto_label_position yes draw_all_relations yes shadow yes
26   draw_component_as_icon no show_component_req_prov no show_component_rea no
27   //state diagram settings
28   package_name_in_tab no show_context no auto_label_position yes write_trans_label_horizontally yes show_trans_definition no draw_all_relations yes shadow yes
29   show_activities yes region_horizontally yes drawing_language uml
30   //activity diagram settings
31   package_name_in_tab no show_context no show_opaque_action_definition no auto_label_position yes write_flow_label_horizontally no draw_all_relations yes shadow yes
32   show_infonote yes drawing_language c++
33   
34   class_color yellow duration_color transparent continuation_color gray note_color blue fragment_color transparent subject_color transparent usecase_color yellow package_color transparent component_color green artifact_color green deploymentnode_color gray state_color yellow stateaction_color transparent activity_color transparent activityregion_color transparent activityaction_color transparent parameterpin_color white 
35   font_size 10
36   diagram_format A4
38   mark_for_import
39   
40   cpp_h_dir "include/hkl/"
41   cpp_src_dir "src/"
42   cpp_namespace "hkl"
43   package_ref 134018 // std
45   classview 128117 "class view hkl"
46     //class diagram settings
47     draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
48     //collaboration diagram settings
49     show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default
50     //object diagram settings
51      write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default
52     //sequence diagram settings
53     show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default
54     //state diagram settings
55     package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
56     show_activities default region_horizontally default drawing_language default
57     //class settings
58     //activity diagram settings
59     package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
60     show_infonote default drawing_language default
61     
62     associated_deployment_view deploymentview_ref 128060 // Deployment hkl
63     comment "*
64   @the base class of the hkl library"
65     classdiagram 128188 "Diagram_1"
66       draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
67       size A0-Landscape
68     end
70     classdiagram 128002 "Diagram_2"
71       draw_all_relations no hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
72       comment "Source
73 Lattice
74 Geometries"
75       size A0
76     end
78     classdiagram 128130 "Diagram_3"
79       draw_all_relations no hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
80       comment "PseudoAxes"
81       size A0
82     end
84     classdiagram 128898 "Diagram_4"
85       draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
86       comment "Mode"
87       size A0
88     end
90     classdiagram 129922 "Diagram_5"
91       draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
92       comment "Diffractometer"
93       size A4
94     end
96     classdiagram 131458 "Diagram_6"
97       draw_all_relations no hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
98       comment "Axe"
99       size A4
100     end
102     classdiagram 132738 "Diagram_7"
103       draw_all_relations no hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
104       comment "Holder"
105       size A4
106     end
108     class 142466 "Affinement"
109       abstract visibility package 
110       cpp_decl "${description}${template}class ${name}${inherit} {
111 ${members}};
112 ${inlines}
114       java_decl ""
115       idl_decl ""
116       explicit_switch_type ""
117       
118       classrelation 152450 // <generalisation>
119         relation 152066 ---|>
120           a public
121             cpp default "${type}"
122             classrelation_ref 152450 // <generalisation>
123           b multiplicity "" parent class_ref 129410 // Object
124       end
126       attribute 142850 "_nb_max_iterations"
127         protected explicit_type "uint"
128         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
130         java_decl ""
131         idl_decl ""
132         get_oper operation_ref 221570 // get_nb_max_iterations
133         set_oper operation_ref 221698 // set_nb_max_iterations
134       end
136       attribute 142978 "_nb_iterations"
137         protected explicit_type "uint"
138         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
140         java_decl ""
141         idl_decl ""
142         get_oper operation_ref 221826 // get_nb_iterations
143         set_oper operation_ref 221954 // set_nb_iterations
144       end
146       attribute 143106 "_fitness"
147         protected explicit_type "double"
148         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
150         java_decl ""
151         idl_decl ""
152         get_oper operation_ref 222082 // get_fitness
153         set_oper operation_ref 222210 // set_fitness
154       end
156       operation 221186 "Affinement"
157         public explicit_return_type ""
158         nparams 2
159           param in name "name" type class_ref 129026 // string
160           param in name "description" type class_ref 129026 // string
161         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw};
163         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw} :
164   Object(name, description),
165   _nb_max_iterations(2500),
166   _nb_iterations(0),
167   _fitness(0)
169   ${body}}
171         
172         
173         comment "/**
174  * @brief the default constructor protected because the class is abstrait
175  * @param ${p0} The name of the ${class}.
176  * @param ${p1} The description of the ${class}.
177  */
179       end
181       operation 221314 "~Affinement"
182         cpp_virtual public explicit_return_type ""
183         nparams 0
184         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
186         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
188   ${body}}
190         
191         
192       end
194       operation 221442 "fit"
195         abstract cpp_virtual public explicit_return_type "void"
196         nparams 1
197           param inout name "fitParameterList" type class_ref 131330 // FitParameterList
198         nexceptions 1
199           exception class_ref 128182 // HKLException
200         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
202         
203         
204         comment "/**
205  * @brief fit the parameter of an objects 
206  * @param ${p0} The ${t0} to fit.
208  * this function modify the object.
209  */
211       end
213       operation 221570 "get_nb_max_iterations"
214         const cpp_inline public explicit_return_type "uint"
215         nparams 0
216         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} ${name}${(}${)}${const}${volatile}${throw};
218         cpp_def "${description}${inline}const ${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
220   return _nb_max_iterations;
223         cpp_name_spec "get${name}"
224         final 
225         java_name_spec "get${name}"
226         
227         idl_name_spec "get${name}"
228         get_of_attribute attribute_ref 142850 // _nb_max_iterations
229       end
231       operation 221698 "set_nb_max_iterations"
232         public explicit_return_type "void"
233         nparams 1
234           param in name "value" explicit_type "uint"
235         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} ${p0}${)}${const}${volatile}${throw};
237         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}
239   _nb_max_iterations = ${p0};
242         cpp_name_spec "set${name}"
243         
244         java_name_spec "set${name}"
245         
246         idl_name_spec "set${name}"
247         set_of_attribute attribute_ref 142850 // _nb_max_iterations
248       end
250       operation 221826 "get_nb_iterations"
251         const cpp_inline public explicit_return_type "uint"
252         nparams 0
253         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} ${name}${(}${)}${const}${volatile}${throw};
255         cpp_def "${description}${inline}const ${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
257   return _nb_iterations;
260         cpp_name_spec "get${name}"
261         final 
262         java_name_spec "get${name}"
263         
264         idl_name_spec "get${name}"
265         get_of_attribute attribute_ref 142978 // _nb_iterations
266       end
268       operation 221954 "set_nb_iterations"
269         public explicit_return_type "void"
270         nparams 1
271           param in name "value" explicit_type "uint"
272         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} ${p0}${)}${const}${volatile}${throw};
274         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}
276   _nb_iterations = ${p0};
279         cpp_name_spec "set${name}"
280         
281         java_name_spec "set${name}"
282         
283         idl_name_spec "set${name}"
284         set_of_attribute attribute_ref 142978 // _nb_iterations
285       end
287       operation 222082 "get_fitness"
288         const cpp_inline public explicit_return_type "double"
289         nparams 0
290         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} ${name}${(}${)}${const}${volatile}${throw};
292         cpp_def "${description}${inline}const ${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
294   return _fitness;
297         cpp_name_spec "get${name}"
298         final 
299         java_name_spec "get${name}"
300         
301         idl_name_spec "get${name}"
302         get_of_attribute attribute_ref 143106 // _fitness
303       end
305       operation 222210 "set_fitness"
306         public explicit_return_type "void"
307         nparams 1
308           param in name "value" explicit_type "double"
309         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} ${p0}${)}${const}${volatile}${throw};
311         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}
313   _fitness = ${p0};
316         cpp_name_spec "set${name}"
317         
318         java_name_spec "set${name}"
319         
320         idl_name_spec "set${name}"
321         set_of_attribute attribute_ref 143106 // _fitness
322       end
324       operation 222338 "printToStream"
325         const public return_type class_ref 152194 // ostream
326         nparams 1
327           param inout name "flux" type class_ref 152194 // ostream
328         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
330         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
332   ${body}}
334         
335         
336         comment "/**
337  * @brief print the ${class} into a flux
338  * @param ${p0} The stream to print into.
339  * @return The modified flux.
340  */"
341       end
343       operation 222466 "toStream"
344         const public return_type class_ref 152194 // ostream
345         nparams 1
346           param inout name "flux" type class_ref 152194 // ostream
347         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
349         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
351   ${body}}
353         
354         
355         comment "/**
356  * @brief print on a stream the content of the ${class}
357  * @param flux the ostream to modify.
358  * @return the modified ostream
359  */"
360       end
362       operation 222594 "fromStream"
363         public return_type class_ref 152322 // istream
364         nparams 1
365           param inout name "flux" type class_ref 152322 // istream
366         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
368         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
370   ${body}}
372         
373         
374         comment "/**
375  * @brief restore the content of the ${class} from an istream
376  * @param flux the istream.
377  * @return the modified istream.
378  * @todo problem of security here.
379  */"
380       end
381     end
383     class 142978 "AffinementList"
384       visibility package 
385       cpp_decl "${description}${template}class ${name}${inherit} {
386 ${members}};
387 ${inlines}
389       java_decl ""
390       idl_decl ""
391       explicit_switch_type ""
392       
393       classrelation 152962 // _current (<directional aggregation>)
394         relation 152578 o-->
395           a role_name "_current" multiplicity "1" protected
396             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
398             classrelation_ref 152962 // _current (<directional aggregation>)
399           b multiplicity "" parent class_ref 142466 // Affinement
400       end
402       classrelation 153090 // _affinements (<directional aggregation>)
403         relation 152706 o-->
404           stereotype "vector"
405           a role_name "_affinements" multiplicity "*" protected
406             cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type} *> ${name}${value};
408             classrelation_ref 153090 // _affinements (<directional aggregation>)
409           b multiplicity "" parent class_ref 142466 // Affinement
410       end
412       class 143106 "iterator"
413         visibility package stereotype "typedef" explicit_base_type "std::vector<Affinement *>::iterator"
414         cpp_decl "${description}typedef ${type} ${name};
416         java_decl ""
417         idl_decl "${comment}typedef ${type} ${name};
419         explicit_switch_type ""
420         
421       end
423       class 143234 "const_iterator"
424         visibility package stereotype "typedef" explicit_base_type "std::vector<Affinement *>::const_iterator"
425         cpp_decl "${description}typedef ${type} ${name};
427         java_decl ""
428         idl_decl "${comment}typedef ${type} ${name};
430         explicit_switch_type ""
431         
432       end
434       operation 223362 "AffinementList"
435         public explicit_return_type ""
436         nparams 0
437         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
439         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
441   ${body}}
443         
444         
445         comment "/**
446  * @brief Default constructor of the ${class} class.
447  */
449       end
451       operation 223490 "~AffinementList"
452         cpp_virtual public explicit_return_type ""
453         nparams 0
454         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
456         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
458   ${body}}
460         
461         
462         comment "/**
463  * @brief The default destructor.
464  */
466       end
468       operation 223618 "add"
469         public return_type class_ref 142466 // Affinement
470         nparams 1
471           param in name "affinement" type class_ref 142466 // Affinement
472         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${abstract};
474         cpp_def "${description}${inline}${type} * ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}
476   ${body}}
478         
479         
480         comment "/**
481  * @brief Add a mode to the ${class}.
482  * @param ${p0} The ${t0} to add.
483  * @return NULL if the ${t0} can not be add or a Pointer on the added ${t0}
484  */"
485       end
487       operation 223746 "erase"
488         public return_type class_ref 143106 // iterator
489         nparams 1
490           param inout name "pos" type class_ref 143106 // iterator
491         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
493         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
495   ${body}}
497         
498         
499         comment "/**
500  * @brief Remove a Mode from the ${class}.
501  * @param ${p0} The ${t0} position of the Sample.
502  * @throw HKLException If the sample is not present. 
503  */"
504       end
506       operation 223874 "clear"
507         public explicit_return_type "void"
508         nparams 0
509         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
511         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
513   ${body}}
515         
516         
517         comment "/**
518  * @brief Remove all sample from the SampleList.
519  */"
520       end
522       operation 224002 "set_current"
523         public return_type class_ref 142466 // Affinement
524         nparams 1
525           param in name "name" type class_ref 129026 // string
526         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
528         cpp_def "${description}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
530   ${body}}
532         
533         
534         comment "/**
535  * @brief Set the nth Mode as the current Mode.
536  * @param ${p0} The name of the Mode to set as current.
537  * @return NULL if the mode is not present in the list but do not change the _current.
538  */"
539       end
541       operation 224130 "get_current"
542         const public return_type class_ref 142466 // Affinement
543         nparams 0
544         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
546         cpp_def "${description}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
548   ${body}}
550         
551         
552         comment "/**
553  * @brief Get the current Mode
554  * @return A pointer on the current Mode.
555  */"
556       end
558       operation 224258 "current"
559         public return_type class_ref 142466 // Affinement
560         nparams 0
561         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
563         cpp_def "${description}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
565   ${body}}
567         
568         
569         comment "/**
570  * @brief Get the current sample
571  * @return A pointer on the current sample.
572  */"
573       end
575       operation 224386 "get_names"
576         const public explicit_return_type "std::vector<std::string>"
577         nparams 0
578         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
580         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
582   ${body}}
584         
585         
586         comment "/**
587  * @brief Return the names of all samples.
588  */
590       end
592       operation 224514 "size"
593         const public explicit_return_type "uint"
594         nparams 0
595         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
597         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
599   ${body}}
601         
602         
603       end
605       operation 224642 "operator[]"
606         public return_type class_ref 142466 // Affinement
607         nparams 1
608           param in name "name" type class_ref 129026 // string
609         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
611         cpp_def "${description}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
613   ${body}}
615         
616         
617         comment "/**
618  * @return the Mode * named
619  * @param ${p0} The name of the Mode we are looking for in the ${class}.
620  * @return The mode or NULL if the mode is not present in the ${class}.
621  */"
622       end
624       operation 224770 "begin"
625         public return_type class_ref 143106 // iterator
626         nparams 0
627         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
629         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
631   ${body}}
633         
634         
635         comment "/**
636  * @brief Get an iterator on the first element of ReflectionList.
637  * @return The iterator.
638  */
640       end
642       operation 224898 "end"
643         public return_type class_ref 143106 // iterator
644         nparams 0
645         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
647         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
649   ${body}}
651         
652         
653         comment "/**
654  * @brief Get an iterator on the end of ReflectionList.
655  * @return The iterator.
656  */
658       end
660       operation 225026 "begin"
661         const public return_type class_ref 143234 // const_iterator
662         nparams 0
663         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
665         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
667   ${body}}
669         
670         
671         comment "/**
672  * @brief Get an iterator on the first element of ReflectionList.
673  * @return The iterator.
674  */
676       end
678       operation 225154 "end"
679         const public return_type class_ref 143234 // const_iterator
680         nparams 0
681         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
683         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
685   ${body}}
687         
688         
689         comment "/**
690  * @brief Get an iterator on the end of ReflectionList.
691  * @return The iterator.
692  */
694       end
696       operation 225282 "operator=="
697         const public explicit_return_type "bool"
698         nparams 1
699           param in name "affinementList" type class_ref 142978 // AffinementList
700         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
702         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
704   ${body}}
706         
707         
708         comment "/**
709  * \\brief Are two ${class} equals ?
710  * \\param ${p0} the ${t0} to compare with.
711  * \\return true if both are equals flase otherwise.
712  */"
713       end
715       operation 225410 "printToStream"
716         const public return_type class_ref 152194 // ostream
717         nparams 1
718           param inout name "flux" type class_ref 152194 // ostream
719         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
721         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
723   ${body}}
725         
726         
727         comment "/**
728  * @brief print the ${class} into a flux
729  * @param ${p0} The stream to print into.
730  * @return The modified flux.
731  */"
732       end
734       operation 225538 "toStream"
735         const public return_type class_ref 152194 // ostream
736         nparams 1
737           param inout name "flux" type class_ref 152194 // ostream
738         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
740         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
742   ${body}}
744         
745         
746         comment "/**
747  * @brief print on a stream the content of the ${class}
748  * @param flux the ostream to modify.
749  * @return the modified ostream
750  */"
751       end
753       operation 225666 "fromStream"
754         public return_type class_ref 152322 // istream
755         nparams 1
756           param inout name "flux" type class_ref 152322 // istream
757         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
759         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
761   ${body}}
763         
764         
765         comment "/**
766  * @brief restore the content of the ${class} from an istream
767  * @param flux the istream.
768  * @return the modified istream.
769  * @todo problem of security here.
770  */"
771       end
772     end
774     class 145282 "Axe"
775       abstract visibility package 
776       cpp_decl "${comment}${template}class ${name}${inherit} {
777 ${members}};
778 ${inlines}
780       java_decl ""
781       idl_decl ""
782       explicit_switch_type ""
783       
784       classrelation 178434 // <generalisation>
785         relation 176770 ---|>
786           a public
787             cpp default "${type}"
788             classrelation_ref 178434 // <generalisation>
789           b multiplicity "" parent class_ref 130178 // FitParameter
790       end
792       classrelation 164482 // <generalisation>
793         relation 163842 ---|>
794           a public
795             cpp default "${type}"
796             classrelation_ref 164482 // <generalisation>
797           b multiplicity "" parent class_ref 129666 // Observable
798       end
800       operation 234114 "Axe"
801         stereotype "constructor"
802         public explicit_return_type ""
803         nparams 5
804           param in name "name" type class_ref 129026 // string
805           param in name "description" type class_ref 129026 // string
806           param in name "min" type class_ref 128060 // Value
807           param in name "current" type class_ref 128060 // Value
808           param in name "max" type class_ref 128060 // Value
809         nexceptions 1
810           exception class_ref 128182 // HKLException
811         cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}, const ${t4} & ${p4}${)}${volatile}${throw};
813         cpp_def "${comment}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}, const ${t4} & ${p4}${)}${volatile}${throw} :
814   hkl::FitParameter(${p0}, ${p1}, ${p2}, ${p3}, ${p4}, true, hkl::constant::math::epsilon)
816   ${body}}
818         
819         
820         comment "@brief constructor
821 @param ${p0} The name of the ${class}.
822 @param ${p1} The description of the ${class}.
823 @param ${p2} The minimum part of the ${class}.
824 @param ${p3} The ${p3} ${t3} of the ${class}.
825 @param ${p4} The maximum ${t4} of the ${class}.
827       end
829       operation 235650 "~Axe"
830         stereotype "destructor"
831         cpp_virtual public explicit_return_type ""
832         nparams 0
833         cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
835         cpp_def "${comment}${inline}${class}::${name}${(}${)}${volatile}${throw} 
837   ${body}}
839         
840         
841       end
843       operation 252802 "get_type"
844         abstract const cpp_virtual public return_type class_ref 151042 // AxeType
845         nparams 0
846         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
848         
849         
850       end
852       operation 255874 "set_min"
853         cpp_virtual cpp_inline public explicit_return_type "void"
854         nparams 1
855           param in name "value" type class_ref 128060 // Value
856         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
858         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
860   ${body}}
862         
863         
864       end
866       operation 255746 "set_current"
867         cpp_virtual cpp_inline public explicit_return_type "void"
868         nparams 1
869           param in name "value" type class_ref 128060 // Value
870         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
872         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
874   ${body}}
876         
877         
878       end
880       operation 260098 "set_consign"
881         cpp_virtual cpp_inline public explicit_return_type "void"
882         nparams 1
883           param in name "value" type class_ref 128060 // Value
884         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
886         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
888   ${body}}
890         
891         
892       end
894       operation 256002 "set_max"
895         cpp_virtual cpp_inline public explicit_return_type "void"
896         nparams 1
897           param in name "value" type class_ref 128060 // Value
898         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
900         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
902   ${body}}
904         
905         
906       end
908       operation 235522 "clone"
909         abstract const cpp_virtual public return_type class_ref 145282 // Axe
910         nparams 0
911         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
913         
914         
915       end
917       operation 245378 "apply"
918         abstract cpp_virtual public return_type class_ref 128770 // Quaternion
919         nparams 1
920           param inout name "q" type class_ref 128770 // Quaternion
921         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
923         
924         
925         comment "@brief Applie to a ${t0}, the ${class}.
926 @return The modified ${t0}"
927       end
929       operation 260226 "apply_consign"
930         abstract cpp_virtual public return_type class_ref 128770 // Quaternion
931         nparams 1
932           param inout name "q" type class_ref 128770 // Quaternion
933         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
935         
936         
937         comment "@brief Applie to a ${t0}, the ${class}.
938 @return The modified ${t0}"
939       end
941       operation 245762 "get_distance"
942         abstract const cpp_virtual public explicit_return_type "double"
943         nparams 1
944           param in name "axe" type class_ref 145282 // Axe
945         nexceptions 1
946           exception class_ref 128182 // HKLException
947         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
949         
950         
951         comment "@brief Compute the read distance between two ${class}.
952 @param ${p0} The ${t0} to compute the distance from. 
953 @return The distance between the two ${class}."
954       end
956       operation 260354 "get_distance_consign"
957         abstract const cpp_virtual public explicit_return_type "double"
958         nparams 1
959           param in name "axe" type class_ref 145282 // Axe
960         nexceptions 1
961           exception class_ref 128182 // HKLException
962         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
964         
965         
966         comment "@brief Compute the read distance between two ${class}.
967 @param ${p0} The ${t0} to compute the distance from. 
968 @return The distance between the two ${class}."
969       end
971       operation 236162 "printToStream"
972         const cpp_virtual public return_type class_ref 152194 // ostream
973         nparams 1
974           param inout name "flux" type class_ref 152194 // ostream
975         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
977         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
979   ${body}}
981         
982         
983         comment "/**
984  * @brief print the ${class} into a flux
985  * @param ${p0} The stream to print into.
986  * @return The modified flux.
987  */"
988       end
990       operation 236034 "toStream"
991         const cpp_virtual public return_type class_ref 152194 // ostream
992         nparams 1
993           param inout name "flux" type class_ref 152194 // ostream
994         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
996         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
998   ${body}}
1000         
1001         
1002         comment "/**
1003  * @brief print on a stream the content of the ${class}
1004  * @param flux the ostream to modify.
1005  * @return the modified ostream
1006  */"
1007       end
1009       operation 235906 "fromStream"
1010         cpp_virtual public return_type class_ref 152322 // istream
1011         nparams 1
1012           param inout name "flux" type class_ref 152322 // istream
1013         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
1015         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
1017   ${body}}
1019         
1020         
1021         comment "/**
1022  * @brief restore the content of the ${class} from an istream
1023  * @param flux the istream.
1024  * @return the modified istream.
1025  * @todo problem of security here.
1026  */"
1027       end
1028     end
1030     class 150914 "AxeFactory"
1031       visibility package 
1032       cpp_decl "${description}${template}class ${name}${inherit} {
1033 ${members}};
1034 ${inlines}
1036       java_decl ""
1037       idl_decl ""
1038       explicit_switch_type ""
1039       
1040       operation 252674 "create"
1041         class_operation package return_type class_ref 145282 // Axe
1042         nparams 2
1043           param in name "type" type class_ref 151042 // AxeType
1044           param in name "name" type class_ref 129026 // string
1045         nexceptions 1
1046           exception class_ref 128182 // HKLException
1047         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} ${p0}, const ${t1} & ${p1}${)}${const}${volatile}${throw}${abstract};
1049         cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${t0} ${p0}, const ${t1} & ${p1}${)}${const}${volatile}${throw}${staticnl}
1051   ${body}}
1053         
1054         
1055         comment "@brief Create a new reflection.
1056 @param ${p0} The type of the Axe to create.
1057 @param ${p1} The name of the Axe to add.
1058 @return The created Reflection.
1060 This method is only use in the holderList fromStream Method.
1062       end
1064       classrelation 177154 // <dependency>
1065         relation 175490 -_->
1066           a default
1067             cpp default "#include in header"
1068             classrelation_ref 177154 // <dependency>
1069           b multiplicity "" parent class_ref 130050 // Rotation
1070       end
1071     end
1073     class 145410 "AxeList"
1074       visibility package 
1075       cpp_decl "${comment}${template}class ${name}${inherit} {
1076 ${members}};
1077 ${inlines}
1079       java_decl ""
1080       idl_decl ""
1081       explicit_switch_type ""
1082       
1083       comment "@todo use a factory to create the different axes."
1084       classrelation 165890 // axes (<directional aggregation>)
1085         relation 165250 o-->
1086           stereotype "vector"
1087           a role_name "axes" multiplicity "*" protected
1088             cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type} *> _${name}${value};
1090             classrelation_ref 165890 // axes (<directional aggregation>)
1091           b multiplicity "" parent class_ref 145282 // Axe
1092       end
1094       class 145538 "iterator"
1095         visibility public stereotype "typedef" explicit_base_type "std::vector<hkl::Axe *>::iterator"
1096         cpp_decl "${description}typedef ${type} ${name};
1098         java_decl ""
1099         idl_decl "${comment}typedef ${type} ${name};
1101         explicit_switch_type ""
1102         
1103       end
1105       class 145666 "const_iterator"
1106         visibility public stereotype "typedef" explicit_base_type "std::vector<hkl::Axe *>::const_iterator"
1107         cpp_decl "${description}typedef ${type} ${name};
1109         java_decl ""
1110         idl_decl "${comment}typedef ${type} ${name};
1112         explicit_switch_type ""
1113         
1114       end
1116       operation 237954 "push_back"
1117         public explicit_return_type "void"
1118         nparams 1
1119           param inout name "axe" type class_ref 145282 // Axe
1120         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${abstract};
1122         cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}
1124   ${body}}
1126         
1127         
1128         comment "@brief Add an ${t0} to the ${class}.
1129 @param ${p0} The added ${t0}.
1131       end
1133       operation 254338 "has_axe"
1134         const public explicit_return_type "bool"
1135         nparams 1
1136           param in name "name" type class_ref 129026 // string
1137         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
1139         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
1141   ${body}}
1143         
1144         
1145         comment "@brief Check if an axe with the name ${name} is already in the ${class}
1146 @param ${p0} The ${t0} with the name of the axe to check for.
1147 @return true if the axe is already present in the Axe"
1148       end
1150       operation 238210 "size"
1151         const public explicit_return_type "uint"
1152         nparams 0
1153         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
1155         cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
1157   ${body}}
1159         
1160         
1161         comment "@return The number of axe in the ${class}.
1163       end
1165       operation 248962 "get_distance"
1166         const public explicit_return_type "double"
1167         nparams 1
1168           param in name "axeList" type class_ref 145410 // AxeList
1169         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
1171         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
1173   ${body}}
1175         
1176         
1177         comment "@brief compute the distance between two AxeList.
1178 @param ${p0} The ${t0} to compare with.
1179 @return the distance."
1180       end
1182       operation 262146 "get_distance_consign"
1183         const public explicit_return_type "double"
1184         nparams 1
1185           param in name "axeList" type class_ref 145410 // AxeList
1186         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
1188         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
1190   ${body}}
1192         
1193         
1194         comment "@brief compute the distance between two AxeList.
1195 @param ${p0} The ${t0} to compare with.
1196 @return the distance."
1197       end
1199       operation 238466 "operator[]"
1200         public explicit_return_type "Axe"
1201         nparams 1
1202           param in name "name" type class_ref 129026 // string
1203         nexceptions 1
1204           exception class_ref 128182 // HKLException
1205         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
1207         cpp_def "${comment}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
1209   ${body}}
1211         
1212         
1213         comment "@brief Return the axe named.
1214 @param name of the returned Reflection.
1215 @throw HKLException if the Axe is not in the ${class}. 
1216 @return The axe.
1218       end
1220       operation 242178 "operator[]"
1221         const public explicit_return_type "Axe"
1222         nparams 1
1223           param in name "name" type class_ref 129026 // string
1224         nexceptions 1
1225           exception class_ref 128182 // HKLException
1226         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
1228         cpp_def "${comment}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
1230   ${body}}
1232         
1233         
1234         comment "@brief Return the axe named.
1235 @param name of the returned Reflection.
1236 @throw HKLException if the Axe is not in the ${class}. 
1237 @return The axe.
1239       end
1241       operation 241794 "operator[]"
1242         public explicit_return_type "Axe"
1243         nparams 1
1244           param in name "idx" explicit_type "uint"
1245         nexceptions 1
1246           exception class_ref 128182 // HKLException
1247         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
1249         cpp_def "${comment}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
1251   ${body}}
1253         
1254         
1255         comment "@brief Return the axe named.
1256 @param ${p0} of the returned Reflection.
1257 @throw HKLException if the Axe is not in the ${class}. 
1258 @return The axe.
1260       end
1262       operation 241922 "operator[]"
1263         const public explicit_return_type "Axe"
1264         nparams 1
1265           param in name "idx" explicit_type "uint"
1266         nexceptions 1
1267           exception class_ref 128182 // HKLException
1268         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
1270         cpp_def "${comment}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
1272   ${body}}
1274         
1275         
1276         comment "@brief Return the axe named.
1277 @param ${p0} of the returned Reflection.
1278 @throw HKLException if the Axe is not in the ${class}. 
1279 @return The axe.
1281       end
1283       operation 238594 "begin"
1284         public return_type class_ref 145538 // iterator
1285         nparams 0
1286         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
1288         cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
1290   ${body}}
1292         
1293         
1294         comment "@brief Get an iterator on the first element of ${class}.
1295 @return The iterator.
1297       end
1299       operation 238722 "end"
1300         public return_type class_ref 145538 // iterator
1301         nparams 0
1302         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
1304         cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
1306   ${body}}
1308         
1309         
1310         comment "@brief Get an iterator on the end of ${class}.
1311 @return The iterator.
1313       end
1315       operation 239618 "begin"
1316         const public return_type class_ref 145666 // const_iterator
1317         nparams 0
1318         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
1320         cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
1322   ${body}}
1324         
1325         
1326         comment "@brief Get an const_iterator on the first element of ${class}.
1327 @return The iterator.
1329       end
1331       operation 239746 "end"
1332         const public return_type class_ref 145666 // const_iterator
1333         nparams 0
1334         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
1336         cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
1338   ${body}}
1340         
1341         
1342         comment "@brief Get an const_iterator on the end of ${class}.
1343 @return The iterator.
1345       end
1347       operation 253186 "clear"
1348         public explicit_return_type "void"
1349         nparams 0
1350         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
1352         cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
1354   ${body}}
1356         
1357         
1358       end
1360       operation 238850 "operator=="
1361         const public explicit_return_type "bool"
1362         nparams 1
1363           param in name "axeList" type class_ref 145410 // AxeList
1364         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
1366         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
1368   ${body}}
1370         
1371         
1372         comment "@brief Are two ${class} equals ?
1373 @param ${p0} the ${t0} to compare with.
1374 @return true if both are equals false otherwise.
1376       end
1378       operation 238978 "printToStream"
1379         const public return_type class_ref 152194 // ostream
1380         nparams 1
1381           param inout name "flux" type class_ref 152194 // ostream
1382         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
1384         cpp_def "${comment}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
1386   ${body}}
1388         
1389         
1390         comment "@brief print the ${class} into a flux
1391 @param ${p0} The stream to print into.
1392 @return The modified flux.
1394       end
1396       operation 239106 "toStream"
1397         const public return_type class_ref 152194 // ostream
1398         nparams 1
1399           param inout name "flux" type class_ref 152194 // ostream
1400         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
1402         cpp_def "${comment}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
1404   ${body}}
1406         
1407         
1408         comment "@brief print on a stream the content of the ${class}
1409 @param flux the ostream to modify.
1410 @return the modified ostream
1412       end
1414       operation 239234 "fromStream"
1415         public return_type class_ref 152322 // istream
1416         nparams 1
1417           param inout name "flux" type class_ref 152322 // istream
1418         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
1420         cpp_def "${comment}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
1422   ${body}}
1424         
1425         
1426         comment "@brief restore the content of the ${class} from an istream
1427 @param flux the istream.
1428 @return the modified istream.
1429 @todo problem of security here.
1431       end
1432     end
1434     class 151042 "AxeType"
1435       visibility package stereotype "enum"
1436       cpp_decl "${description}enum ${name} {
1437 ${items}};
1439       java_decl "${comment}${@}${public}${final}${abstract}enum ${name}${implements} {
1440 ${items};
1441 ${members}}
1443       idl_decl "${comment}enum ${name} {
1444 ${items}};
1446       explicit_switch_type ""
1447       
1448       attribute 148226 "AXE_ROTATION"
1449         public explicit_type ""
1450         cpp_decl "  ${name}${value},${comment}"
1451         java_decl ""
1452         idl_decl ""
1453       end
1454     end
1456     class 128130 "constant"
1457       visibility package 
1458       cpp_decl "${description}${template}class ${name}${inherit} {
1459 ${members}};
1460 ${inlines}
1462       java_decl ""
1463       idl_decl ""
1464       explicit_switch_type ""
1465       
1466       class 128258 "math"
1467         visibility package 
1468         cpp_decl "${description}${template}class ${name}${inherit} {
1469 ${members}};
1470 #define SOLUTION 1
1471 ${inlines}
1473         java_decl ""
1474         idl_decl ""
1475         explicit_switch_type ""
1476         
1477         attribute 128386 "epsilon"
1478           class_attribute package explicit_type "double"
1479           init_value "= 1e-6"
1480           cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
1482           java_decl ""
1483           idl_decl ""
1484         end
1486         attribute 130306 "tiny"
1487           class_attribute package explicit_type "double"
1488           init_value "= 1e-7"
1489           cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
1491           java_decl ""
1492           idl_decl ""
1493         end
1495         attribute 129666 "precision"
1496           class_attribute package explicit_type "int"
1497           init_value "= 7"
1498           cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
1500           java_decl ""
1501           idl_decl ""
1502         end
1504         attribute 130050 "pi"
1505           class_attribute package explicit_type "double"
1506           init_value "= 3.14159265358979323846"
1507           cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
1509           java_decl ""
1510           idl_decl ""
1511         end
1513         attribute 129794 "degToRad"
1514           class_attribute package explicit_type "double"
1515           init_value "= 0.01745329251994330"
1516           cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
1518           java_decl ""
1519           idl_decl ""
1520         end
1522         attribute 129922 "radToDeg"
1523           class_attribute package explicit_type "double"
1524           init_value "= 57.2957795130823208"
1525           cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
1527           java_decl ""
1528           idl_decl ""
1529         end
1531         extra_member 128002 "eulerian_to_kappa"
1532           
1533           cpp "
1534 " "inline void eulerian_to_kappa(double const & omega, double const & chi, double const & phi, double const & alpha, double & komega, double & kappa, double & kphi, bool solution = SOLUTION) throw (HKLException)
1536     if (chi < alpha * 2)
1537       {
1538         double p = asin(tan(chi/2.)/tan(alpha));
1540         if (solution)
1541           {
1542             komega = omega - p + hkl::constant::math::pi/2.;
1543             if (komega > hkl::constant::math::pi + hkl::constant::math::epsilon)
1544               komega -= 2 * hkl::constant::math::pi;
1545             kappa = 2 * asin(sin(chi/2.)/sin(alpha));
1546             kphi = phi - p - hkl::constant::math::pi/2.;
1547             if (kphi <  -hkl::constant::math::pi - hkl::constant::math::epsilon)
1548               kphi += 2 * hkl::constant::math::pi;
1549           }
1550         else
1551           {
1552             komega = omega + p - hkl::constant::math::pi/2.;
1553             if (komega <  -hkl::constant::math::pi - hkl::constant::math::epsilon)
1554               komega += 2 * hkl::constant::math::pi;
1555             kappa = -2 * asin(sin(chi/2.)/sin(alpha));
1556             kphi = phi + p + hkl::constant::math::pi/2.;
1557             if (kphi > hkl::constant::math::pi + hkl::constant::math::epsilon)
1558               kphi -= 2 * hkl::constant::math::pi;
1559           }
1560 #ifdef DEBUG
1561           std::cout << \"omega, chi, phi -> komega, kappa, kphi : (\" 
1562                     << omega * constant::math::radToDeg << \", \"
1563                     << chi * hkl::constant::math::radToDeg << \", \"
1564                     << phi * hkl::constant::math::radToDeg << \"), (\"
1565                     << komega * constant::math::radToDeg << \", \"
1566                     << kappa * hkl::constant::math::radToDeg << \", \"
1567                     << kphi * hkl::constant::math::radToDeg << \")\" << std::endl;
1568 #endif
1569       }
1570     else
1571         HKLEXCEPTION(\"Can not set such a Chi value\", \"must be < 2 * alpha.\");
1573 " inline
1574           java ""
1575           idl ""
1576           comment "@brief Compute the eulerian -> kappa angle conversion"
1577         end
1579         extra_member 128130 "kappa_to_eulerian"
1580           
1581           cpp "" "inline void kappa_to_eulerian(double const & komega, double const & kappa, double const & kphi, double const & alpha, double & omega, double & chi, double & phi, bool solution = SOLUTION)
1583     double p = atan(tan(kappa/2.) * cos(alpha));
1585     if (solution)
1586       {
1587         omega = komega + p - constant::math::pi/2.;
1588         if (omega < -hkl::constant::math::pi - hkl::constant::math::epsilon)
1589           omega += 2 * hkl::constant::math::pi;
1591         chi = 2 * asin(sin(kappa/2.) * sin(alpha));
1592         
1593         phi = kphi + p + constant::math::pi/2.;
1594         if (phi > hkl::constant::math::pi + hkl::constant::math::epsilon)
1595           phi -= 2 * hkl::constant::math::pi;
1596       }
1597     else
1598       {
1599         omega = komega + p + constant::math::pi/2.;
1600         if (omega > hkl::constant::math::pi + hkl::constant::math::epsilon)
1601           omega -= 2 * hkl::constant::math::pi;
1603         chi = -2 * asin(sin(kappa/2.) * sin(alpha));
1604         phi = kphi + p - constant::math::pi/2.;
1605         if (phi < -hkl::constant::math::pi - hkl::constant::math::epsilon)
1606           phi += 2 * hkl::constant::math::pi;
1607       }
1608 #ifdef DEBUG
1609     std::cout << \"komega, kappa, kphi -> omega, chi, phi : (\" 
1610               << komega * constant::math::radToDeg << \", \"
1611               << kappa * constant::math::radToDeg << \", \"
1612               << kphi * constant::math::radToDeg << \"), (\"
1613               << omega * constant::math::radToDeg << \", \"
1614               << chi * hkl::constant::math::radToDeg << \", \"
1615               << phi * hkl::constant::math::radToDeg << \")\" << std::endl;
1616 #endif
1618 " inline
1619           java ""
1620           idl ""
1621           comment "@brief Compute the eulerian -> kappa angle conversion"
1622         end
1624         classrelation 178562 // <dependency>
1625           relation 176898 -_->
1626             a default
1627               cpp default "#include in header"
1628               classrelation_ref 178562 // <dependency>
1629             b multiplicity "" parent class_ref 128182 // HKLException
1630         end
1631       end
1633       class 128386 "physic"
1634         visibility package 
1635         cpp_decl "${description}${template}class ${name}${inherit} {
1636 ${members}};
1637 ${inlines}
1639         java_decl ""
1640         idl_decl ""
1641         explicit_switch_type ""
1642         
1643         attribute 130178 "tau"
1644           class_attribute package explicit_type "double"
1645           init_value "= 2 * 3.14159265358979323846"
1646           cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
1648           java_decl ""
1649           idl_decl ""
1650         end
1651       end
1652     end
1654     class 143362 "Diffractometer"
1655       visibility package 
1656       cpp_decl "${description}${template}class ${name}${inherit} {
1657 ${members}};
1658 ${inlines}
1660       java_decl ""
1661       idl_decl ""
1662       explicit_switch_type ""
1663       
1664       comment "/**
1666  * \\mainpage
1668  * L'objectif de cette librairie est de mêtre Ã  disposition l'ensemble des outils permettant de piloter
1669  * un diffractomètre. L'ensemble des calcules présents dans cette librairie sont basés sur une Ã©quation
1670  * fondamentale.
1672  * @ref Diffractometer
1673  * 
1674  * @ref Diffractometer_eulerian_4C
1676  * @ref Diffractometer_eulerian_6C
1678  * @ref Diffractometer_kappa_4C
1679  */
1682  * @page Diffractometer Généralité.
1684  * \\section Equation_fondamentales Equations fondamentales
1685  * 
1686  * Le problème que nous devons résoudre est de calculer pour une famille de plan (h,k,l) donné,
1687  * les angles de rotation du diffractomètre qui permettent de le mettre en condition de diffraction.
1688  * Il faut donc exprimer les relations mathématiques qui lient les différents angles entre eux lorsque
1689  * la condition de Bragg est vérifiée. L'équation fondamentale est la suivante:
1690  * \\f[
1691  *    \\left( \\prod_i S_i \\right) \\cdot U \\cdot B \\cdot \\vec{h} = \\left( \\prod_i D_i - I \\right)
1692  * \\f]
1693  * \\f[
1694  *    R \\cdot U \\cdot B \\cdot \\vec{h} = \\vec{Q}
1695  * \\f]
1696  * où \\f$ \\vec{h} \\f$ est le vecteur (h,k,l) , \\f$ \\vec{k_i} \\f$ est le vecteur incident,  \\f$ S_i \\f$ les
1697  * matrices de rotations des mouvements liés Ã  l'échantillon, \\f$ D_j \\f$  les matrices de rotation
1698  * des mouvements liés au détecteur,
1699  * \\a I  la matrice identité, \\a U  la matrice d'orientation du cristal par rapport au repère de l'axe
1700  * sur lequel ce dernier est monté et \\a B  la matrice de passage d'un repère non orthonormé
1701  * (celui du crystal réciproque) Ã  un repère orthonormé. 
1702  * 
1703  * L'équation fondamentale nous permet d'écrire:
1704  * \\f[
1705  *    U \\cdot B \\cdot \\vec{h} = \\tilde{R} \\cdot \\vec{Q}.
1706  * \\f]
1707  * 
1708  * Cette Ã©quation est de 4 ou 6 inconnues pour seulement 3 Ã©quations.
1709  * Il faut donc imposer des contraintes pour résoudre ce système et ainsi orienter le diffractomètre.
1710  * Ces différentes contraintes définissent les modes de fonctionnement des diffractomètres.
1711  * 
1712  * \\section Calcule_de_B Calcule de B.
1714  * Si l'on connaît les paramètres cristallins du cristal Ã©tudié, il est très simple de calculer
1715  * cette matrice \\a B :
1716  * \\f[ 
1717  *    B=\\left(
1718  *        \\begin{matrix}
1719  *          a^{*} & b^{*}\\cos\\gamma^{*} & c^{*}\\cos\\beta^{*} \\\\
1720  *              0 & b^{*}\\sin\\gamma^{*} & -c^{*} \\sin\\beta^{*} \\cos\\alpha \\\\
1721  *              0 &                   0 & 1/c
1722  *        \\end{matrix}
1723  *      \\right)
1724  * \\f]
1725  * 
1726  * Le calcule de \\f$ a^\\star \\f$, \\f$ b^\\star \\f$ et \\f$ c^\\star \\f$
1727  * est obtenu de la façon suivante:
1728  * \\f{eqnarray*}
1729  *    a^\\star & = & \\tau \\frac{\\sin\\alpha}{aD} \\\\
1730  *    b^\\star & = & \\tau \\frac{\\sin\\beta}{bD} \\\\
1731  *    c^\\star & = & \\tau \\frac{\\sin\\gamma}{cD}
1732  * \\f}
1733  * 
1734  * ou
1736  * \\f[
1737  *    D = \\sqrt{1 - \\cos^2\\alpha - \\cos^2\\beta - \\cos^2\\gamma + 2\\cos\\alpha \\cos\\beta \\cos\\gamma}
1738  * \\f]
1739  * 
1740  * pour obtenir les angles \\f$ \\alpha^\\star \\f$, \\f$ \\beta^\\star \\f$ et \\f$ \\gamma^\\star \\f$,
1741  * on passe par le calcule des sinus et cosinus.
1742  * \\f[
1743  *  \\begin{array}{cc}
1744  *    \\cos\\alpha^\\star = \\frac{\\cos\\beta \\cos\\gamma - \\cos\\alpha}{\\sin\\beta \\sin\\gamma} 
1745  *      & \\sin\\alpha^\\star = \\frac{D}{\\sin\\beta \\sin\\gamma} \\\\
1746  *    \\cos\\beta^\\star = \\frac{\\cos\\gamma \\cos\\alpha - \\cos\\beta}{\\sin\\gamma \\sin\\alpha} 
1747  *      & \\sin\\beta^\\star = \\frac{D}{\\sin\\gamma \\sin\\alpha} \\\\
1748  *    \\cos\\gamma^\\star = \\frac{\\cos\\alpha \\cos\\beta - \\cos\\gamma}{\\sin\\alpha \\sin\\beta} 
1749  *      & \\sin\\gamma^\\star = \\frac{D}{\\sin\\alpha \\sin\\beta} \\\\
1750  *  \\end{array}
1751  * \\f]
1753  * \\section Calcule_de_U Calcule de U.
1755  * Il existe plusieurs façons de calculer \\a U. Busing et Levy en a proposé plusieurs.
1756  * Nous allons présenter celle qui nécessite la mesure de seulement deux réflections ainsi que la
1757  * connaissance des paramètres cristallins.
1758  * Cette façon de calculer la matrice d'orientation \\a U, peut Ãªtre généralisée Ã  n'importe quel
1759  * diffractomètre pour peu que la description des axes de rotation permette d'obtenir la matrice
1760  * de rotation de la machine \\a R et le vecteur de diffusion \\f$ \\vec{Q} \\f$.
1761  * Il est Ã©galement possible de calculer \\a U sans la connaîssance des paramètres cristallins.
1762  * il faut alors faire un affinement des paramètres. Cela revient Ã  minimiser une fonction.
1763  * Nous allons utiliser la méthode du simplex pour trouver ce minimum et ainsi ajuster l'ensemble
1764  * des paramètres cristallins ainsi que la matrice d'orientation.
1765  * 
1766  * \\subsection Algorithme_de_Busing_Levy Algorithme de Busing Levy.
1768  * L'idée est de se placer dans le repère de l'axe sur lequel est monté l'échantillon.
1769  * On mesure deux réflections \\f$ (\\vec{h}_1, \\vec{h}_2) \\f$ ainsi que leurs angles associés.
1770  * Cela nous permet de calculer \\a R et \\f$ \\vec{Q} \\f$ pour chacune de ces reflections.
1771  * Nous avons alors ce système:
1772  * \\f[
1773  *    U \\cdot B \\cdot \\vec{h}_1
1774  * \\f]
1775  * De façon Ã  calculer facilement \\a U, il est intéressant de définir deux trièdres orthonormé
1776  * \\f$ T_{\\vec{h}} \\f$ et \\f$ T_{\\vec{Q}} \\f$ Ã  partir des vecteurs \\f$ (B \\cdot \\vec{h}_1, B \\cdot \\vec{h}_2) \\f$
1777  * et \\f$ (\\tilde{R}_1 \\cdot \\vec{Q}_1, \\tilde{R}_2 \\cdot \\vec{Q}_2) \\f$.
1778  * On a alors très simplement:
1779  * \\f[
1780  *    U \\cdot T_{\\vec{h}} = T_{\\vec{Q}}
1781  * \\f]
1782  * Et donc:
1783  * \\f[
1784  *    U = T_{\\vec{Q}} \\cdot \\tilde{T}_{\\vec{h}}
1785  * \\f]
1787  * \\subsection Affinement_par_la_methode_du_simplex Affinement par la méthode du simplex
1789  * Dans ce cas nous ne connaissons pas la matrice \\a B, il faut alors mesurer plus de
1790  * deux réflections afin d'ajuster les 9 paramètres.
1791  * Six paramètres pour le crystal et trois pour la matrice d'orientation \\a U.
1792  * Les trois paramètres qui permennt de representer \\a U sont en fait les angles d'euler.
1793  * Il est donc nécessaire de connaitre la représentation Eulérien de la matrice \\a U et réciproquement.
1794  * \\f[
1795  *    U = X \\cdot Y \\cdot Z
1796  * \\f]
1797  * où \\a X est la matrice rotation suivant l'axe Ox et le premier angle d'Euler,
1798  * \\a Y la matrice de rotation suivant l'axe Oy et le deuxième angle d'Euler et \\a Z la matrice du troisième
1799  * angle d'Euler pour l'axe Oz.
1800  * \\f[
1801  *      \\left(
1802  *        \\begin{matrix}
1803  *          1 & 0 & 0\\\\
1804  *          0 & A & -B\\\\
1805  *          0 & B & A
1806  *        \\end{matrix}
1807  *      \\right)
1808  *      \\left(
1809  *        \\begin{matrix}
1810  *          C & 0 & D\\\\
1811  *          0 & 1 & 0\\\\
1812  *         -D & 0 & C
1813  *        \\end{matrix}
1814  *      \\right)
1815  *      \\left(
1816  *        \\begin{matrix}
1817  *          E & -F & 0\\\\
1818  *          F & E & 0\\\\
1819  *          0 & 0 & 1
1820  *        \\end{matrix}
1821  *      \\right)
1822  * \\f]
1823  * 
1824  * et donc:
1825  * 
1826  * \\f[ 
1827  *    U = \\left(
1828  *          \\begin{matrix}
1829  *                CE &     -CF & D \\\\
1830  *            BDE+AF & -BDF+AE & -BC \\\\
1831  *           -ADE+BF &  ADF+BE & AC
1832  *          \\end{matrix}
1833  *        \\right)
1834  *  \\f]
1835  */"
1836       classrelation 153218 // <generalisation>
1837         relation 152834 ---|>
1838           a public
1839             cpp default "${type}"
1840             classrelation_ref 153218 // <generalisation>
1841           b multiplicity "" parent class_ref 131202 // HKLObject
1842       end
1844       classrelation 153346 // _geometry (<directional aggregation>)
1845         relation 152962 o-->
1846           a role_name "_geometry" multiplicity "1" protected
1847             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
1849             classrelation_ref 153346 // _geometry (<directional aggregation>)
1850           b multiplicity "" parent class_ref 131714 // Geometry
1851         get_oper operation_ref 226306 // geometry
1852       end
1854       classrelation 153474 // _samples (<directional aggregation>)
1855         relation 153090 o-->
1856           a role_name "_samples" multiplicity "1" protected
1857             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
1859             classrelation_ref 153474 // _samples (<directional aggregation>)
1860           b multiplicity "" parent class_ref 134402 // SampleList
1861         get_oper operation_ref 226562 // samples
1862       end
1864       classrelation 153602 // _modes (<directional aggregation by value>)
1865         relation 153218 *-->
1866           a role_name "_modes" multiplicity "1" protected
1867             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
1869             classrelation_ref 153602 // _modes (<directional aggregation by value>)
1870           b multiplicity "" parent class_ref 139138 // ModeList
1871         get_oper operation_ref 226434 // modes
1872       end
1874       classrelation 153730 // _pseudoAxeEngines (<directional aggregation by value>)
1875         relation 153346 *-->
1876           a role_name "_pseudoAxeEngines" multiplicity "1" protected
1877             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
1879             classrelation_ref 153730 // _pseudoAxeEngines (<directional aggregation by value>)
1880           b multiplicity "" parent class_ref 135426 // PseudoAxeEngineList
1881       end
1883       classrelation 153858 // _affinements (<directional aggregation by value>)
1884         relation 153474 *-->
1885           a role_name "_affinements" multiplicity "1" protected
1886             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
1888             classrelation_ref 153858 // _affinements (<directional aggregation by value>)
1889           b multiplicity "" parent class_ref 142978 // AffinementList
1890         get_oper operation_ref 226818 // affinements
1891       end
1893       operation 226050 "Diffractometer"
1894         public explicit_return_type ""
1895         nparams 2
1896           param in name "name" type class_ref 129026 // string
1897           param in name "description" type class_ref 129026 // string
1898         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw};
1900         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw} :
1901   HKLObject(name, description) 
1903   ${body}}
1905         
1906         
1907       end
1909       operation 226178 "~Diffractometer"
1910         cpp_virtual public explicit_return_type ""
1911         nparams 0
1912         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
1914         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
1916   ${body}}
1918         
1919         
1920       end
1922       operation 226306 "geometry"
1923         cpp_inline public return_type class_ref 131714 // Geometry
1924         nparams 0
1925         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw};
1927         cpp_def "${description}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
1929   return _geometry;
1932         cpp_name_spec "geometry"
1933         final 
1934         java_name_spec "get${name}"
1935         
1936         idl_name_spec "get${name}"
1937         get_of_relation classrelation_ref 153346 // _geometry (<directional aggregation>)
1938       end
1940       operation 226562 "samples"
1941         cpp_inline public return_type class_ref 134402 // SampleList
1942         nparams 0
1943         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw};
1945         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
1947   return *_samples;
1950         cpp_name_spec "samples"
1951         final 
1952         java_name_spec "get${name}"
1953         
1954         idl_name_spec "get${name}"
1955         get_of_relation classrelation_ref 153474 // _samples (<directional aggregation>)
1956       end
1958       operation 226434 "modes"
1959         cpp_inline public return_type class_ref 139138 // ModeList
1960         nparams 0
1961         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw};
1963         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
1965   return _modes;
1968         cpp_name_spec "modes"
1969         final 
1970         java_name_spec "get${name}"
1971         
1972         idl_name_spec "get${name}"
1973         get_of_relation classrelation_ref 153602 // _modes (<directional aggregation by value>)
1974       end
1976       operation 226690 "pseudoAxes"
1977         cpp_inline public return_type class_ref 135042 // PseudoAxeList
1978         nparams 0
1979         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
1981         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
1983   ${body}}
1985         
1986         
1987         comment "/**
1988  * @brief Return the PseudoAxeList of the ${class}.
1989  * @return The PseudoAxeList of the ${class}.
1990  */
1992       end
1994       operation 226818 "affinements"
1995         cpp_inline public return_type class_ref 142978 // AffinementList
1996         nparams 0
1997         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw};
1999         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
2001   return _affinements;
2004         cpp_name_spec "affinements"
2005         final 
2006         java_name_spec "get${name}"
2007         
2008         idl_name_spec "get${name}"
2009         get_of_relation classrelation_ref 153858 // _affinements (<directional aggregation by value>)
2010       end
2012       operation 226946 "operator=="
2013         const public explicit_return_type "bool"
2014         nparams 1
2015           param in name "diffractometer" type class_ref 143362 // Diffractometer
2016         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
2018         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
2020   ${body}}
2022         
2023         
2024         comment "/**
2025  * \\brief Are two ${class} equals ?
2026  * \\param ${p0} the ${t0} to compare with.
2027  * \\return true if both are equals false otherwise.
2028  */"
2029       end
2031       operation 227074 "printToStream"
2032         const public return_type class_ref 152194 // ostream
2033         nparams 1
2034           param inout name "flux" type class_ref 152194 // ostream
2035         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
2037         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
2039   ${body}}
2041         
2042         
2043         comment "/**
2044  * @brief print the ${class} into a flux
2045  * @param ${p0} The stream to print into.
2046  * @return The modified flux.
2047  */"
2048       end
2050       operation 227202 "toStream"
2051         const public return_type class_ref 152194 // ostream
2052         nparams 1
2053           param inout name "flux" type class_ref 152194 // ostream
2054         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
2056         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
2058   ${body}}
2060         
2061         
2062         comment "/**
2063  * @brief print on a stream the content of the ${class}
2064  * @param flux the ostream to modify.
2065  * @return the modified ostream
2066  */"
2067       end
2069       operation 227330 "fromStream"
2070         public return_type class_ref 152322 // istream
2071         nparams 1
2072           param inout name "flux" type class_ref 152322 // istream
2073         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
2075         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
2077   ${body}}
2079         
2080         
2081         comment "/**
2082  * @brief restore the content of the ${class} from an istream
2083  * @param flux the istream.
2084  * @return the modified istream.
2085  * @todo problem of security here.
2086  */"
2087       end
2088     end
2090     classdiagram 131202 "Diagram35"
2091       draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
2092       comment "DiffractometerFactory"
2093       size A4
2094     end
2096     class 144386 "DiffractometerFactory"
2097       visibility package 
2098       cpp_decl "${description}${template}class ${name}${inherit} {
2099 ${members}};
2100 ${inlines}
2102       java_decl ""
2103       idl_decl ""
2104       explicit_switch_type ""
2105       
2106       operation 228994 "DiffractometerFactory"
2107         public explicit_return_type ""
2108         nparams 0
2109         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
2111         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
2113   ${body}}
2115         
2116         
2117       end
2119       operation 229122 "~DiffractometerFactory"
2120         cpp_virtual public explicit_return_type ""
2121         nparams 0
2122         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
2124         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
2126   ${body}}
2128         
2129         
2130       end
2132       operation 229250 "create"
2133         public return_type class_ref 143362 // Diffractometer
2134         nparams 2
2135           param in name "type" type class_ref 144514 // DiffractometerType
2136           param in name "parameter" explicit_type "double"
2137         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${abstract};
2139         cpp_def "${description}${inline}${type} * ${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}
2141   ${body}}
2143         
2144         
2145         comment "/**
2146  * @brief Create a new reflection.
2147  * @param ${p0} The ${t0} of the Diffractometer to create.
2148  * @param ${p1} A ${t1} use to build the Diffractometer.
2149  * @return The created Diffractometer.
2151  * This parameter has no effect for an Eulerian diffractometer.
2152  * But correspond to the alpha angle of the Kappa Geometry for the Kappa diffractometers.
2153  */
2155       end
2157       classrelation 161410 // <dependency>
2158         relation 161026 -_->
2159           a default
2160             cpp default "#include in header"
2161             classrelation_ref 161410 // <dependency>
2162           b multiplicity "" parent class_ref 143618 // Diffractometer
2163       end
2165       classrelation 161538 // <dependency>
2166         relation 161154 -_->
2167           a default
2168             cpp default "#include in header"
2169             classrelation_ref 161538 // <dependency>
2170           b multiplicity "" parent class_ref 143746 // Diffractometer
2171       end
2173       classrelation 161666 // <dependency>
2174         relation 161282 -_->
2175           a default
2176             cpp default "#include in header"
2177             classrelation_ref 161666 // <dependency>
2178           b multiplicity "" parent class_ref 143874 // Diffractometer
2179       end
2181       classrelation 161794 // <dependency>
2182         relation 161410 -_->
2183           a default
2184             cpp default "#include in header"
2185             classrelation_ref 161794 // <dependency>
2186           b multiplicity "" parent class_ref 144130 // Diffractometer
2187       end
2189       classrelation 161922 // <dependency>
2190         relation 161538 -_->
2191           a default
2192             cpp default "#include in header"
2193             classrelation_ref 161922 // <dependency>
2194           b multiplicity "" parent class_ref 144258 // Diffractometer
2195       end
2196     end
2198     class 143490 "DiffractometerTemp"
2199       visibility package 
2200       nformals 1
2201       formal name "T" type "class" explicit_default_value ""
2202         explicit_extends ""
2203       cpp_decl "${description}${template}class ${name}${inherit} {
2204 ${members}};
2205 ${inlines}
2207       java_decl ""
2208       idl_decl ""
2209       explicit_switch_type ""
2210       
2211       classrelation 153986 // <generalisation>
2212         relation 153602 ---|>
2213           a public
2214             cpp default "${type}"
2215             classrelation_ref 153986 // <generalisation>
2216           b multiplicity "" parent class_ref 143362 // Diffractometer
2217       end
2219       attribute 143234 "_geom_T"
2220         protected explicit_type "T"
2221         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} * ${name}${value};
2223         java_decl ""
2224         idl_decl ""
2225       end
2227       operation 227458 "DiffractometerTemp"
2228         public explicit_return_type ""
2229         nparams 2
2230           param in name "name" type class_ref 129026 // string
2231           param in name "description" type class_ref 129026 // string
2232         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw};
2234         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw} :
2235   hkl::Diffractometer(name, description) 
2237   ${body}}
2239         
2240         
2241       end
2243       operation 254466 "DiffractometerTemp"
2244         public explicit_return_type ""
2245         nparams 3
2246           param in name "name" type class_ref 129026 // string
2247           param in name "description" type class_ref 129026 // string
2248           param in name "alpha" explicit_type "double"
2249         cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, ${t2} ${p2}${)}${volatile}${throw};
2251         cpp_def "${comment}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, ${t2} ${p2}${)}${volatile}${throw} :
2252   hkl::Diffractometer(name, description) 
2254   ${body}}
2256         
2257         
2258       end
2260       operation 227586 "~DiffractometerTemp"
2261         cpp_virtual public explicit_return_type ""
2262         nparams 0
2263         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
2265         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
2267   ${body}}
2269         
2270         
2271       end
2272     end
2274     class 144514 "DiffractometerType"
2275       visibility package stereotype "enum"
2276       cpp_decl "${description}enum ${name} {
2277 ${items}};
2279       java_decl "${comment}${@}${public}${final}${abstract}enum ${name}${implements} {
2280 ${items};
2281 ${members}}
2283       idl_decl "${comment}enum ${name} {
2284 ${items}};
2286       explicit_switch_type ""
2287       
2288       attribute 143362 "DIFFRACTOMETER_TWOC_VERTICAL"
2289         public explicit_type ""
2290         cpp_decl "  ${name}${value},${comment}"
2291         java_decl ""
2292         idl_decl ""
2293       end
2295       attribute 143490 "DIFFRACTOMETER_EULERIAN4C_VERTICAL"
2296         public explicit_type ""
2297         cpp_decl "  ${name}${value},${comment}"
2298         java_decl ""
2299         idl_decl ""
2300       end
2302       attribute 143618 "DIFFRACTOMETER_KAPPA4C_VERTICAL"
2303         public explicit_type ""
2304         cpp_decl "  ${name}${value},${comment}"
2305         java_decl ""
2306         idl_decl ""
2307       end
2309       attribute 143746 "DIFFRACTOMETER_EULERIAN6C"
2310         public explicit_type ""
2311         cpp_decl "  ${name}${value},${comment}"
2312         java_decl ""
2313         idl_decl ""
2314       end
2316       attribute 143874 "DIFFRACTOMETER_KAPPA6C"
2317         public explicit_type ""
2318         cpp_decl "  ${name}${value},${comment}"
2319         java_decl ""
2320         idl_decl ""
2321       end
2322     end
2324     class 128310 "Error"
2325       visibility package 
2326       cpp_decl "${description}${template}class ${name}${inherit} {
2327 ${members}};
2328 ${inlines}
2330       java_decl ""
2331       idl_decl ""
2332       explicit_switch_type ""
2333       
2334       attribute 128211 "reason"
2335         public type class_ref 129026 // string
2336         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
2338         java_decl ""
2339         idl_decl ""
2340       end
2342       attribute 128339 "desc"
2343         public type class_ref 129026 // string
2344         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
2346         java_decl ""
2347         idl_decl ""
2348       end
2350       attribute 128467 "origin"
2351         public type class_ref 129026 // string
2352         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
2354         java_decl ""
2355         idl_decl ""
2356       end
2358       attribute 128595 "severity"
2359         public explicit_type "int"
2360         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
2362         java_decl ""
2363         idl_decl ""
2364       end
2366       operation 128339 "Error"
2367         public explicit_return_type ""
2368         nparams 0
2369         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
2371         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} :
2372   reason (\"unknown\"),
2373   desc (\"unknown error\"),
2374   origin (\"unknown\"),
2375   severity (ERR)
2377   ${body}}
2379         
2380         
2381       end
2383       operation 128467 "Error"
2384         public explicit_return_type ""
2385         nparams 4
2386           param in name "_reason" explicit_type "char"
2387           param in name "_desc" explicit_type "char"
2388           param in name "_origin" explicit_type "char"
2389           param in name "_severity" explicit_type "int"
2390         cpp_decl "    ${description}${inline}${name}${(}const ${t0} * ${p0}, const ${t1} * ${p1}, const ${t2} * ${p2}, ${t3} ${p3} = ERR${)}${volatile}${throw};
2392         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} * ${p0}, const ${t1} * ${p1}, const ${t2} * ${p2}, ${t3} ${p3}${)}${volatile}${throw} :
2393   reason (_reason),
2394   desc (_desc),
2395   origin (_origin),
2396   severity (_severity)
2398   ${body}}
2400         
2401         
2402       end
2404       operation 128595 "Error"
2405         public explicit_return_type ""
2406         nparams 4
2407           param in name "_reason" type class_ref 129026 // string
2408           param in name "_desc" type class_ref 129026 // string
2409           param in name "_origin" type class_ref 129026 // string
2410           param in name "_severity" explicit_type "int"
2411         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, ${t3} ${p3} = ERR${)}${volatile}${throw};
2413         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, ${t3} ${p3}${)}${volatile}${throw} : 
2414   reason (_reason),
2415   desc (_desc),
2416   origin (_origin),
2417   severity (_severity)
2419   ${body}}
2421         
2422         
2423       end
2425       operation 128723 "Error"
2426         public explicit_return_type ""
2427         nparams 1
2428           param in name "error" type class_ref 128310 // Error
2429         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
2431         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
2432     reason (error.reason),
2433     desc (error.desc),
2434     origin (error.origin),
2435     severity (error.severity)
2437   ${body}}
2439         
2440         
2441       end
2443       operation 128851 "~Error"
2444         cpp_virtual public explicit_return_type ""
2445         nparams 0
2446         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
2448         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
2450   ${body}}
2452         
2453         
2454       end
2456       operation 128979 "operator="
2457         public return_type class_ref 128310 // Error
2458         nparams 1
2459           param in name "error" type class_ref 128310 // Error
2460         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
2462         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
2464   ${body}}
2466         
2467         
2468       end
2469     end
2471     class 128211 "ErrorList"
2472       visibility package stereotype "typedef" base_type class_ref 146818 // vector
2473       nactuals 1
2474       actual class class_ref 146818 // vector
2475         rank 0 value class_ref 128310 // Error
2476       cpp_decl "${description}typedef ${type} ${name};
2478       java_decl ""
2479       idl_decl "${comment}typedef ${type} ${name};
2481       explicit_switch_type ""
2482       
2483       classrelation 168834 // <generalisation>
2484         relation 167682 ---|>
2485           a public
2486             cpp default "${type}"
2487             classrelation_ref 168834 // <generalisation>
2488           b multiplicity "" parent class_ref 146818 // vector
2489       end
2490     end
2492     class 128438 "ErrorSeverity"
2493       visibility package stereotype "enum"
2494       cpp_decl "${description}enum ${name} {
2495 ${items}};
2497       java_decl "${comment}${@}${public}${final}${abstract}enum ${name}${implements} {
2498 ${items};
2499 ${members}}
2501       idl_decl "${comment}enum ${name} {
2502 ${items}};
2504       explicit_switch_type ""
2505       
2506       attribute 128054 "WARN"
2507         public explicit_type ""
2508         cpp_decl "  ${name}${value},${comment}"
2509         java_decl ""
2510         idl_decl ""
2511       end
2513       attribute 128182 "ERR"
2514         public explicit_type ""
2515         cpp_decl "  ${name}${value},${comment}"
2516         java_decl ""
2517         idl_decl ""
2518       end
2520       attribute 128310 "PANIC"
2521         public explicit_type ""
2522         cpp_decl "  ${name}${value},${comment}"
2523         java_decl ""
2524         idl_decl ""
2525       end
2526     end
2528     class 130178 "FitParameter"
2529       visibility package 
2530       cpp_decl "${description}${template}class ${name}${inherit} {
2531 ${members}};
2532 ${inlines}
2534       java_decl ""
2535       idl_decl ""
2536       explicit_switch_type ""
2537       
2538       classrelation 130690 // <generalisation>
2539         relation 130434 ---|>
2540           a public
2541             cpp default "${type}"
2542             classrelation_ref 130690 // <generalisation>
2543           b multiplicity "" parent class_ref 129922 // Parameter
2544       end
2546       operation 153346 "FitParameter"
2547         public explicit_return_type ""
2548         nparams 7
2549           param in name "name" type class_ref 129026 // string
2550           param in name "description" type class_ref 129026 // string
2551           param in name "min" type class_ref 128060 // Value
2552           param in name "current" type class_ref 128060 // Value
2553           param in name "max" type class_ref 128060 // Value
2554           param in name "toFit" explicit_type "bool"
2555           param in name "precision" explicit_type "double"
2556         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}, const ${t4} & ${p4}, ${t5} ${p5}, ${t6} ${p6}${)}${volatile}${throw};
2558         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}, const ${t4} & ${p4}, ${t5} ${p5}, ${t6} ${p6}${)}${volatile}${throw}  :
2559   Parameter(name, description, min, current, max),
2560   _flagFit(toFit),
2561   _precision(precision),
2562   _chi2(0)
2564   ${body}}
2566         
2567         
2568         comment "/**
2569  * @brief Constructor
2570  * @param ${p0} of the ${class}.
2571  * @param ${p1} The description of the ${class}.
2572  * @param ${p2} the minimum of the ${class}.
2573  * @param ${p3} the current value of the ${class}.
2574  * @param ${p4} the maximum of the ${class}.
2575  * @param ${p5} is a fit parameter or not
2576  * @param ${p6} to fullfill for the fit.
2577  */"
2578       end
2580       attribute 131458 "_flagFit"
2581         protected explicit_type "bool"
2582         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
2584         java_decl ""
2585         idl_decl ""
2586         comment "/**
2587  * @brief This flag is true if this ${class} must be fit.
2588  */"
2589       end
2591       attribute 131586 "_precision"
2592         protected type class_ref 128060 // Value
2593         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
2595         java_decl ""
2596         idl_decl ""
2597         comment "/**
2598  * @brief The precision for the fit we expect on this ${class}.
2599  */"
2600       end
2602       attribute 131714 "_chi2"
2603         protected type class_ref 128060 // Value
2604         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
2606         java_decl ""
2607         idl_decl ""
2608         comment "/**
2609  * @brief The \\f$\\chi^2\\f$ obtained after the fit.
2610  */"
2611       end
2613       operation 153602 "get_flagFit"
2614         const public explicit_return_type "bool"
2615         nparams 0
2616         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
2618         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
2620   ${body}}
2622         
2623         
2624         comment "/**
2625  * @brief Get the flag of the ${class} class.
2626  * @return The _flagFit bool member.
2627  */"
2628       end
2630       operation 153730 "get_precision"
2631         const public return_type class_ref 128060 // Value
2632         nparams 0
2633         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
2635         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
2637   ${body}}
2639         
2640         
2641         comment "/**
2642  * @brief Get the precision of the ${class} class.
2643  * @return A constant Value ref on the _precision member.
2644  */"
2645       end
2647       operation 153858 "get_chi2"
2648         const public return_type class_ref 128060 // Value
2649         nparams 0
2650         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
2652         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
2654   ${body}}
2656         
2657         
2658         comment "/**
2659  * @brief Get the _chi2 of the ${class} class.
2660  * @return A constant Value ref on the _chi2 member.
2661  */"
2662       end
2664       operation 153986 "set_flagFit"
2665         public explicit_return_type "void"
2666         nparams 1
2667           param in name "flagFit" explicit_type "bool"
2668         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${abstract};
2670         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}
2672   ${body}}
2674         
2675         
2676         comment "/**
2677  * @brief Set the _flagFit member of the ${class} class.
2678  * @param flagFit The bool to set. 
2679  */"
2680       end
2682       operation 154114 "set_precision"
2683         public explicit_return_type "void"
2684         nparams 1
2685           param in name "precision" type class_ref 128060 // Value
2686         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${abstract};
2688         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}
2690   ${body}}
2692         
2693         
2694         comment "/**
2695  * @brief Set the _${p0} member of the ${class} class.
2696  * @param ${p0} The ${t0} to set. 
2697  */"
2698       end
2700       operation 154754 "set_chi2"
2701         public explicit_return_type "void"
2702         nparams 1
2703           param in name "chi2" type class_ref 128060 // Value
2704         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${abstract};
2706         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}
2708   ${body}}
2710         
2711         
2712         comment "/**
2713  * @brief Set the _${p0} member of the ${class} class.
2714  * @param ${p0} The ${t0} to set. 
2715  */"
2716       end
2718       operation 154882 "operator=="
2719         const public explicit_return_type "bool"
2720         nparams 1
2721           param in name "fitParameter" type class_ref 130178 // FitParameter
2722         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
2724         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
2726   ${body}}
2728         
2729         
2730         comment "/**
2731  * \\brief Are two ${class} equals ?
2732  * \\param ${p0} the ${class} to compare with.
2733  * \\return The comparison of the two ${class}.
2734  */"
2735       end
2737       operation 155010 "randomize"
2738         public explicit_return_type "void"
2739         nparams 0
2740         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
2742         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
2744   ${body}}
2746         
2747         
2748         comment "/**
2749  * @brief shuffle the ${class}.
2750  */"
2751       end
2753       operation 155138 "printToStream"
2754         const public return_type class_ref 152194 // ostream
2755         nparams 1
2756           param inout name "flux" type class_ref 152194 // ostream
2757         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
2759         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
2761   ${body}}
2763         
2764         
2765         comment "/*!
2766  * \\brief print the ${class} into a flux
2767  * \\param flux The stream to print into.
2768  */"
2769       end
2771       operation 155266 "toStream"
2772         const public return_type class_ref 152194 // ostream
2773         nparams 1
2774           param inout name "flux" type class_ref 152194 // ostream
2775         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
2777         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
2779   ${body}}
2781         
2782         
2783         comment "/*!
2784  * \\brief Save the ${class} into a stream.
2785  * \\param flux the stream to save the ${class} into.
2786  * \\return The stream with the ${class}.
2787  */"
2788       end
2790       operation 155394 "fromStream"
2791         public return_type class_ref 152322 // istream
2792         nparams 1
2793           param inout name "flux" type class_ref 152322 // istream
2794         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
2796         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
2798   ${body}}
2800         
2801         
2802         comment "/*!
2803  * \\brief Restore a ${class} from a stream.
2804  * \\param flux The stream containing the ${class} to restore.
2805  * @todo call update_observers or not ?
2806  */"
2807       end
2808     end
2810     class 131330 "FitParameterList"
2811       abstract visibility package 
2812       cpp_decl "${description}${template}class ${name}${inherit} {
2813 ${members}};
2814 ${inlines}
2816       java_decl ""
2817       idl_decl ""
2818       explicit_switch_type ""
2819       
2820       classrelation 132482 // _parameters (<directional aggregation>)
2821         relation 132098 o-->
2822           stereotype "vector"
2823           a role_name "_parameters" multiplicity "*" protected
2824             cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type} *> ${name}${value};
2826             classrelation_ref 132482 // _parameters (<directional aggregation>)
2827           b multiplicity "" parent class_ref 130178 // FitParameter
2828       end
2830       class 142722 "iterator"
2831         visibility package stereotype "typedef" explicit_base_type "std::vector<FitParameter *>::iterator"
2832         cpp_decl "${description}typedef ${type} ${name};
2834         java_decl ""
2835         idl_decl "${comment}typedef ${type} ${name};
2837         explicit_switch_type ""
2838         
2839       end
2841       class 142850 "const_iterator"
2842         visibility package stereotype "typedef" explicit_base_type "std::vector<FitParameter *>::const_iterator"
2843         cpp_decl "${description}typedef ${type} ${name};
2845         java_decl ""
2846         idl_decl "${comment}typedef ${type} ${name};
2848         explicit_switch_type ""
2849         
2850       end
2852       operation 213122 "~FitParameterList"
2853         cpp_virtual public explicit_return_type ""
2854         nparams 0
2855         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
2857         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
2859   ${body}}
2861         
2862         
2863       end
2865       operation 160130 "size"
2866         const public explicit_return_type "uint"
2867         nparams 0
2868         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
2870         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
2872   ${body}}
2874         
2875         
2876         comment "/**
2877  * @brief Get the size of the ${class}.
2878  * @return the number of element in the ${class}.
2879  */"
2880       end
2882       operation 161410 "size_to_fit"
2883         const public explicit_return_type "uint"
2884         nparams 0
2885         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
2887         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
2889   ${body}}
2891         
2892         
2893         comment "/**
2894  * @brief Get the number of Parameter to fit in the ${class}.
2895  * @return The number of Parameter with the fitFlag set to true.
2896  */"
2897       end
2899       operation 160258 "operator[]"
2900         public return_type class_ref 130178 // FitParameter
2901         nparams 1
2902           param in name "name" type class_ref 129026 // string
2903         nexceptions 1
2904           exception class_ref 128182 // HKLException
2905         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
2907         cpp_def "${description}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
2909   ${body}}
2911         
2912         
2913         comment "/**
2914  * @return the ${t0} * named
2915  * @param ${p0} The name of the ${t0} we are looking for in the ${class}.
2916  * @return A ${t0} pointer.
2917  * @throw HKLException if the ${t0} is not present n the ${class}.
2918  */"
2919       end
2921       operation 160386 "begin"
2922         public return_type class_ref 142722 // iterator
2923         nparams 0
2924         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
2926         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
2928   ${body}}
2930         
2931         
2932         comment "/**
2933  * @brief Get an iterator on the first element of the ${class}.
2934  * @return The iterator.
2935  */"
2936       end
2938       operation 160514 "end"
2939         public return_type class_ref 142722 // iterator
2940         nparams 0
2941         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
2943         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
2945   ${body}}
2947         
2948         
2949         comment "/**
2950  * @brief Get an iterator on the end of the ${class}.
2951  * @return The iterator.
2952  */"
2953       end
2955       operation 160642 "begin"
2956         const public return_type class_ref 142850 // const_iterator
2957         nparams 0
2958         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
2960         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
2962   ${body}}
2964         
2965         
2966         comment "/**
2967  * @brief Get an const_iterator on the first element of the ${class}.
2968  * @return The const_iterator.
2969  */"
2970       end
2972       operation 160770 "end"
2973         const public return_type class_ref 142850 // const_iterator
2974         nparams 0
2975         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
2977         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
2979   ${body}}
2981         
2982         
2983         comment "/**
2984  * @brief Get an const_iterator on the end of the ${class}.
2985  * @return The const_iterator.
2986  */"
2987       end
2989       operation 161538 "ready_to_fit"
2990         abstract const cpp_virtual public explicit_return_type "bool"
2991         nparams 0
2992         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
2994         
2995         
2996         comment "/**
2997  * @brief check if their is enought data to compute an affinement.
2998  * @return true if computation is possible.
2999  */"
3000       end
3002       operation 161666 "randomize"
3003         abstract cpp_virtual public explicit_return_type "void"
3004         nparams 0
3005         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
3007         
3008         
3009         comment "/**
3010  * @brief Randomize all the FitParameters in the ${class}.
3011  */"
3012       end
3014       operation 161794 "fitness"
3015         abstract cpp_virtual public explicit_return_type "double"
3016         nparams 0
3017         nexceptions 1
3018           exception class_ref 128182 // HKLException
3019         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
3021         
3022         
3023         comment "/**
3024  * @brief Calculation of the fitness.
3025  * @return the fitness calculated from the fitParameters.
3026  * @throw HKLException if their is not enought data to perform the fitness calculus.
3027  */"
3028       end
3030       operation 161922 "fitness"
3031         abstract cpp_virtual public explicit_return_type "bool"
3032         nparams 1
3033           param inout name "fitness" explicit_type "double"
3034         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3036         
3037         
3038         comment "/**
3039  * @brief Calculation of the fitness.
3040  * @param fitness A double use to store the fitness calculation.
3041  * @return True if the calculation if valid, false otherwise.
3043  * this method is use in the simplex Affinement method, and do not throw Exception if the compuation is not valid.
3044  */"
3045       end
3047       operation 162050 "update"
3048         abstract cpp_virtual public explicit_return_type "void"
3049         nparams 0
3050         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
3052         
3053         
3054         comment "/**
3055  * @brief update the fitparameterList.
3057  * The fitparameters can be changed from the fitParameterList but some
3058  * other members can depend of these Parameter. So after an update you
3059  * can be sure that the object is completly coherant.
3060  */"
3061       end
3063       operation 162178 "operator=="
3064         const public explicit_return_type "bool"
3065         nparams 1
3066           param in name "fitParameterList" type class_ref 131330 // FitParameterList
3067         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3069         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3071   ${body}}
3073         
3074         
3075         comment "/*!
3076  * \\brief Are two ${class} equals ?
3077  * \\param ${p0} the ${t0} to compare with.
3078  */
3080       end
3082       operation 161026 "printToStream"
3083         const public return_type class_ref 152194 // ostream
3084         nparams 1
3085           param inout name "flux" type class_ref 152194 // ostream
3086         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3088         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3090   ${body}}
3092         
3093         
3094         comment "/*!
3095  * \\brief print the ${class} into a flux
3096  * \\param flux The stream to print into.
3097  */"
3098       end
3100       operation 161154 "toStream"
3101         const public return_type class_ref 152194 // ostream
3102         nparams 1
3103           param inout name "flux" type class_ref 152194 // ostream
3104         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3106         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3108   ${body}}
3110         
3111         
3112         comment "/*!
3113  * \\brief Save the ${class} into a stream.
3114  * \\param flux the stream to save the ${class} into.
3115  * \\return The stream with the ${class}.
3116  */"
3117       end
3119       operation 161282 "fromStream"
3120         public return_type class_ref 152322 // istream
3121         nparams 1
3122           param inout name "flux" type class_ref 152322 // istream
3123         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3125         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3127   ${body}}
3129         
3130         
3131         comment "/*!
3132  * \\brief Restore a ${class} from a stream.
3133  * \\param flux The stream containing the ${class} to restore.
3134  * @todo call update_observers or not ?
3135  */"
3136       end
3137     end
3139     class 131714 "Geometry"
3140       visibility package 
3141       cpp_decl "${comment}${template}class ${name}${inherit} {
3142 ${members}};
3143 ${inlines}
3145       java_decl ""
3146       idl_decl ""
3147       explicit_switch_type ""
3148       
3149       classrelation 132994 // <generalisation>
3150         relation 132610 ---|>
3151           a public
3152             cpp default "${type}"
3153             classrelation_ref 132994 // <generalisation>
3154           b multiplicity "" parent class_ref 131202 // HKLObject
3155       end
3157       attribute 133506 "source"
3158         protected type class_ref 131458 // Source
3159         cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} _${name}${value};
3161         java_decl ""
3162         idl_decl ""
3163         get_oper operation_ref 167938 // get_source
3164       end
3166       classrelation 175490 // holders (<directional aggregation by value>)
3167         relation 174082 *-->
3168           a role_name "holders" multiplicity "1" protected
3169             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} _${name}${value};
3171             classrelation_ref 175490 // holders (<directional aggregation by value>)
3172           b multiplicity "" parent class_ref 149762 // HolderList
3173       end
3175       classrelation 175618 // <dependency>
3176         relation 174210 -_->
3177           a default
3178             cpp default "#include in header"
3179             classrelation_ref 175618 // <dependency>
3180           b multiplicity "" parent class_ref 148482 // Holder
3181       end
3183       operation 167426 "Geometry"
3184         stereotype "constructor"
3185         public explicit_return_type ""
3186         nparams 2
3187           param in name "name" type class_ref 129026 // string
3188           param in name "description" type class_ref 129026 // string
3189         cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw};
3191         cpp_def "${comment}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw} :
3192   HKLObject(${p0}, ${p1})
3194   ${body}}
3196         
3197         
3198         comment "@brief Create a new ${class}. 
3199 @param ${p0} The name of the ${class}.
3200 @param ${p1} The description of the ${class}.
3202       end
3204       operation 213250 "~Geometry"
3205         stereotype "destructor"
3206         cpp_virtual public explicit_return_type ""
3207         nparams 0
3208         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
3210         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
3212   ${body}}
3214         
3215         
3216       end
3218       operation 167682 "Geometry"
3219         stereotype "copy"
3220         public explicit_return_type ""
3221         nparams 1
3222           param in name "geometry" type class_ref 131714 // Geometry
3223         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
3225         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
3226   HKLObject(${p0}),
3227   _source(${p0}._source),
3228   _holders(${p0}._holders)
3230   ${body}}
3232         
3233         
3234       end
3236       operation 167938 "get_source"
3237         const cpp_inline public return_type class_ref 131458 // Source
3238         nparams 0
3239         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} ${name}${(}${)}${const}${volatile}${throw};
3241         cpp_def "${comment}${inline}const ${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
3243   return _source;
3246         cpp_name_spec "get_${name}"
3247         final 
3248         java_name_spec "get${name}"
3249         
3250         idl_name_spec "get${name}"
3251         get_of_attribute attribute_ref 133506 // source
3252         comment "@brief Get the Source store in the Diffractometer.
3253 @return A constant reference on the Source.
3255       end
3257       operation 168066 "get_source"
3258         cpp_inline public return_type class_ref 131458 // Source
3259         nparams 0
3260         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
3262         cpp_def "${comment}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
3264   ${body}}
3266         final 
3267         
3268         comment "@brief Get the Source store in the Diffractometer.
3269 @return A reference on the Source.
3271       end
3273       operation 249730 "get_axes"
3274         const cpp_inline public return_type class_ref 145410 // AxeList
3275         nparams 0
3276         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} const & ${name}${(}${)}${const}${volatile}${throw}${abstract};
3278         cpp_def "${comment}${inline}${type} const & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
3280   ${body}}
3282         
3283         
3284         comment "@brief Get a constant reference on the axes stores in all holders.
3285 @return the AxeList"
3286       end
3288       operation 249858 "axes"
3289         cpp_inline public return_type class_ref 145410 // AxeList
3290         nparams 0
3291         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
3293         cpp_def "${comment}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
3295   ${body}}
3297         
3298         
3299         comment "@brief Get a constant reference on the axes stores in all holders.
3300 @return the AxeList"
3301       end
3303       operation 168578 "get_axe"
3304         public explicit_return_type "Axe"
3305         nparams 1
3306           param in name "name" type class_ref 129026 // string
3307         nexceptions 1
3308           exception class_ref 128182 // HKLException
3309         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3311         cpp_def "${comment}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3313   ${body}}
3315         
3316         
3317         comment "@brief Get the Axe named.
3318 @param name the name of the Axe we are looking for.
3319 @return An hkl::Axe pointer.
3320 @throw hkl::HKLException if the hkl::Axe does not exist.
3322       end
3324       operation 239362 "get_axe"
3325         const public explicit_return_type "Axe"
3326         nparams 1
3327           param in name "name" type class_ref 129026 // string
3328         nexceptions 1
3329           exception class_ref 128182 // HKLException
3330         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3332         cpp_def "${comment}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3334   ${body}}
3336         
3337         
3338         comment "@brief Get the Axe named.
3339 @param name the name of the Axe we are looking for.
3340 @return An hkl::Axe pointer.
3341 @throw hkl::HKLException if the hkl::Axe does not exist.
3343       end
3345       operation 262402 "get_sample_quaternion"
3346         const public return_type class_ref 128770 // Quaternion
3347         nparams 0
3348         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
3350         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
3352   ${body}}
3354         
3355         
3356         comment "/*!
3357  * \\brief return the Rotatio matrix of the sample
3358  * \\return the quaternion corresponding to the state of the sample.
3359  */"
3360       end
3362       operation 262530 "get_sample_quaternion_consign"
3363         const public return_type class_ref 128770 // Quaternion
3364         nparams 0
3365         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
3367         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
3369   ${body}}
3371         
3372         
3373         comment "/*!
3374  * \\brief return the Rotatio matrix of the sample
3375  * \\return the quaternion corresponding to the state of the sample.
3376  */"
3377       end
3379       operation 262658 "get_sample_rotation_matrix"
3380         const public return_type class_ref 128514 // smatrix
3381         nparams 0
3382         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
3384         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
3386   ${body}}
3388         
3389         
3390         comment "/*!
3391  * \\brief return the Rotatio matrix of the sample.
3392  * \\return The rotation matrix
3394  * This method compute the rotation matrix by applying each Axe transformation from the m_samples svector.
3395  * So we can describe every diffractometer if we put the Axe in the right position into this svector
3396  */"
3397       end
3399       operation 262786 "get_sample_rotation_matrix_consign"
3400         const public return_type class_ref 128514 // smatrix
3401         nparams 0
3402         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
3404         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
3406   ${body}}
3408         
3409         
3410         comment "/*!
3411  * \\brief return the Rotatio matrix of the sample.
3412  * \\return The rotation matrix
3414  * This method compute the rotation matrix by applying each Axe transformation from the m_samples svector.
3415  * So we can describe every diffractometer if we put the Axe in the right position into this svector
3416  */"
3417       end
3419       operation 262914 "get_Q"
3420         const public return_type class_ref 128002 // svector
3421         nparams 0
3422         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
3424         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
3426   ${body}}
3428         
3429         
3430         comment "/*!
3431  * \\brief return the diffraction vector calculated from the detectors angles
3432  * \\return the Q svector
3433  */"
3434       end
3436       operation 263042 "get_Q_consign"
3437         const public return_type class_ref 128002 // svector
3438         nparams 0
3439         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
3441         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
3443   ${body}}
3445         
3446         
3447         comment "/*!
3448  * \\brief return the diffraction vector calculated from the detectors angles
3449  * \\return the Q svector
3450  */"
3451       end
3453       operation 263170 "get_kf"
3454         const public return_type class_ref 128002 // svector
3455         nparams 0
3456         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
3458         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
3460   ${body}}
3462         
3463         
3464         comment "/*!
3465  * \\brief return the diffraction vector calculated from the detectors angles
3466  * \\return the Q svector
3467  */"
3468       end
3470       operation 263298 "get_kf_consign"
3471         const public return_type class_ref 128002 // svector
3472         nparams 0
3473         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
3475         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
3477   ${body}}
3479         
3480         
3481         comment "/*!
3482  * \\brief return the diffraction vector calculated from the detectors angles
3483  * \\return the Q svector
3484  */"
3485       end
3487       operation 169858 "get_distance"
3488         const public explicit_return_type "double"
3489         nparams 1
3490           param in name "geometry" type class_ref 131714 // Geometry
3491         nexceptions 1
3492           exception class_ref 128182 // HKLException
3493         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3495         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3497   ${body}}
3499         
3500         
3501         comment "@brief compute the distance between two ${class}
3502 @param ${p0} The ${t0} to compute the distance from.
3503 @return The distance between both ${class}"
3504       end
3506       operation 262274 "get_distance_consign"
3507         const public explicit_return_type "double"
3508         nparams 1
3509           param in name "geometry" type class_ref 131714 // Geometry
3510         nexceptions 1
3511           exception class_ref 128182 // HKLException
3512         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3514         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3516   ${body}}
3518         
3519         
3520         comment "@brief compute the distance between two ${class}
3521 @param ${p0} The ${t0} to compute the distance from.
3522 @return The distance between both ${class}"
3523       end
3525       operation 169986 "computeHKL"
3526         public explicit_return_type "void"
3527         nparams 4
3528           param out name "h" explicit_type "double"
3529           param out name "k" explicit_type "double"
3530           param out name "l" explicit_type "double"
3531           param in name "UB" type class_ref 128514 // smatrix
3532         nexceptions 1
3533           exception class_ref 128182 // HKLException
3534         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}, ${t1} & ${p1}, ${t2} & ${p2}, const ${t3} & ${p3}${)}${const}${volatile}${throw}${abstract};
3536         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} & ${p0}, ${t1} & ${p1}, ${t2} & ${p2}, const ${t3} & ${p3}${)}${const}${volatile}${throw}${staticnl}
3538   ${body}}
3540         
3541         
3542         comment "/**
3543  * @brief Compute hkl for an UB matrix. 
3544  * @param[out] h return the h parameter.
3545  * @param[out] k return the k parameter.
3546  * @param[out] l return the l parameter.
3547  * @param UB The UB matrix of a crystal.
3548  */"
3549       end
3551       operation 170114 "setFromGeometry"
3552         cpp_virtual public explicit_return_type "void"
3553         nparams 2
3554           param in name "geometry" type class_ref 131714 // Geometry
3555           param in name "strict" explicit_type "bool"
3556         nexceptions 1
3557           exception class_ref 128182 // HKLException
3558         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${abstract};
3560         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}
3562   ${body}}
3564         
3565         
3566         comment "/**
3567  * @brief Set the geometry from an other one. 
3568  * @param geometry The Geometry to set from.
3569  * @param strict true or false if the geometry conversion is strict or not.
3570  * @throw HKLException dependig of the geometry. 
3571  * @todo voir comment rendre cette fonction purement virtuelle = 0.
3572  */"
3573       end
3575       operation 264578 "operator=="
3576         const public explicit_return_type "bool"
3577         nparams 1
3578           param in name "geometry" type class_ref 131714 // Geometry
3579         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3581         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3583   ${body}}
3585         
3586         
3587         comment "@brief Are two ${class} equals ?
3588 @param ${p0} the ${t0} to compare with.
3589 @return true if both are equals flase otherwise.
3591       end
3593       operation 170370 "printToStream"
3594         const public return_type class_ref 152194 // ostream
3595         nparams 1
3596           param inout name "flux" type class_ref 152194 // ostream
3597         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3599         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3601   ${body}}
3603         
3604         
3605         comment "/**
3606  * @brief print the ${class} into a flux
3607  * @param ${p0} The stream to print into.
3608  * @return The modified flux.
3609  */"
3610       end
3612       operation 170498 "toStream"
3613         const public return_type class_ref 152194 // ostream
3614         nparams 1
3615           param inout name "flux" type class_ref 152194 // ostream
3616         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3618         cpp_def "${comment}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3620   ${body}}
3622         
3623         
3624         comment "@brief print on a stream the content of the ${class}
3625 @param flux the ostream to modify.
3626 @return the modified ostream
3628       end
3630       operation 170626 "fromStream"
3631         public return_type class_ref 152322 // istream
3632         nparams 1
3633           param inout name "flux" type class_ref 152322 // istream
3634         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3636         cpp_def "${comment}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3638   ${body}}
3640         
3641         
3642         comment "@brief restore the content of the ${class} from an istream
3643 @param flux the istream.
3644 @return the modified istream.
3645 @todo problem of security here.
3647       end
3648     end
3650     class 128182 "HKLException"
3651       visibility package stereotype "exception"
3652       cpp_decl "${description}${template}class ${name}${inherit} {
3653 ${members}};
3654 ${inlines}
3656       java_decl ""
3657       idl_decl "${comment}exception ${name} {
3658 ${members}};
3660       explicit_switch_type ""
3661       
3662       classrelation 128130 // errors (<directional aggregation by value>)
3663         relation 128130 *-->
3664           a role_name "errors" multiplicity "1" public
3665             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
3667             classrelation_ref 128130 // errors (<directional aggregation by value>)
3668           b multiplicity "" parent class_ref 128211 // ErrorList
3669       end
3671       operation 129107 "HKLException"
3672         public explicit_return_type ""
3673         nparams 0
3674         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
3676         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} :
3677   errors(0)
3679   ${body}}
3681         
3682         
3683       end
3685       operation 128386 "HKLException"
3686         public explicit_return_type ""
3687         nparams 4
3688           param in name "_reason" explicit_type "char"
3689           param in name "_desc" explicit_type "char"
3690           param in name "_origin" explicit_type "char"
3691           param in name "_severity" explicit_type "int"
3692         cpp_decl "    ${description}${inline}${name}${(}const ${t0} * ${p0}, const ${t1} * ${p1}, const ${t2} * ${p2}, ${t3} ${p3} = ERR${)}${volatile}${throw};
3694         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} * ${p0}, const ${t1} * ${p1}, const ${t2} * ${p2}, ${t3} ${p3}${)}${volatile}${throw} :
3695   errors(0) 
3697   ${body}}
3699         
3700         
3701       end
3703       operation 128514 "HKLException"
3704         public explicit_return_type ""
3705         nparams 4
3706           param in name "_reason" type class_ref 129026 // string
3707           param in name "_desc" type class_ref 129026 // string
3708           param in name "_origin" type class_ref 129026 // string
3709           param in name "_severity" explicit_type "int"
3710             defaultvalue "ERR"
3711         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, ${t3} ${p3} = ERR${)}${volatile}${throw};
3713         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, ${t3} ${p3}${)}${volatile}${throw} :
3714   errors(0)
3716   ${body}}
3718         
3719         
3720       end
3722       operation 128130 "HKLException"
3723         stereotype "copy"
3724         public explicit_return_type ""
3725         nparams 1
3726           param in name "_src" type class_ref 128182 // HKLException
3727         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
3729         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
3730   errors(0)
3732   ${body}}
3734         
3735         
3736       end
3738       operation 128002 "~HKLException"
3739         public explicit_return_type ""
3740         nparams 0
3741         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
3743         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
3745   ${body}}
3747         
3748         
3749       end
3751       operation 128258 "operator="
3752         public return_type class_ref 128182 // HKLException
3753         nparams 1
3754           param in name "_src" type class_ref 128182 // HKLException
3755         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3757         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3759   ${body}}
3761         
3762         
3763       end
3765       operation 128642 "push_error"
3766         public explicit_return_type "void"
3767         nparams 4
3768           param in name "_reason" explicit_type "char"
3769           param in name "_desc" explicit_type "char"
3770           param in name "_origin" explicit_type "char"
3771           param in name "_severity" explicit_type "int"
3772         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}, ${t1} * ${p1}, ${t2} * ${p2}, ${t3} ${p3} = ERR${)}${volatile}${throw}${abstract};
3774         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, ${t1} * ${p1}, ${t2} * ${p2}, ${t3} ${p3}${)}${volatile}${throw}${staticnl}
3776   ${body}}
3778         
3779         
3780       end
3782       operation 128770 "push_error"
3783         public explicit_return_type "void"
3784         nparams 4
3785           param in name "_reason" type class_ref 129026 // string
3786           param in name "_desc" type class_ref 129026 // string
3787           param in name "_origin" type class_ref 129026 // string
3788           param in name "_severity" explicit_type "int"
3789         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} ${p3} = ERR${)}${const}${volatile}${throw}${abstract};
3791         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} ${p3}${)}${const}${volatile}${throw}${staticnl}
3793   ${body}}
3795         
3796         
3797       end
3799       operation 128898 "push_error"
3800         public explicit_return_type "void"
3801         nparams 1
3802           param in name "_error" type class_ref 128310 // Error
3803         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3805         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3807   ${body}}
3809         
3810         
3811       end
3812     end
3814     class 131202 "HKLObject"
3815       visibility package 
3816       cpp_decl "${description}${template}class ${name}${inherit} {
3817 ${members}};
3818 ${inlines}
3820       java_decl ""
3821       idl_decl ""
3822       explicit_switch_type ""
3823       
3824       classrelation 132098 // <generalisation>
3825         relation 131714 ---|>
3826           a public
3827             cpp default "${type}"
3828             classrelation_ref 132098 // <generalisation>
3829           b multiplicity "" parent class_ref 129282 // ObjectReadOnly
3830       end
3832       classrelation 131970 // _parameters (<directional aggregation by value>)
3833         relation 131586 *-->
3834           a role_name "_parameters" multiplicity "1" protected
3835             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
3837             classrelation_ref 131970 // _parameters (<directional aggregation by value>)
3838           b multiplicity "" parent class_ref 131074 // ParameterList
3839       end
3841       operation 159234 "HKLObject"
3842         public explicit_return_type ""
3843         nparams 2
3844           param in name "name" type class_ref 129026 // string
3845           param in name "description" type class_ref 129026 // string
3846         nexceptions 1
3847           exception class_ref 128182 // HKLException
3848         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw};
3850         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw}:
3851   ObjectReadOnly(name, description)  
3853   ${body}}
3855         
3856         
3857         comment "/**
3858  * @brief The default constructor
3859  * @param ${p0} The name of the ${class}.
3860  * @param ${p1} The description of the ${class}.
3861  * @throw HKLException if the ${p0} and/or the ${p1} are wrong. 
3862  */"
3863       end
3865       operation 159362 "parameters"
3866         public return_type class_ref 131074 // ParameterList
3867         nparams 0
3868         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
3870         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
3872   ${body}}
3874         
3875         
3876       end
3878       operation 159490 "operator=="
3879         const public explicit_return_type "bool"
3880         nparams 1
3881           param in name "hklObject" type class_ref 131202 // HKLObject
3882         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3884         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3886   ${body}}
3888         
3889         
3890         comment "/**
3891  * \\brief Are two ${class} equals ?
3892  * \\param ${p0} the ${t0} to compare with.
3893  * \\return true if both are equals flase otherwise.
3894  */"
3895       end
3897       operation 159618 "printToStream"
3898         const public return_type class_ref 152194 // ostream
3899         nparams 1
3900           param inout name "flux" type class_ref 152194 // ostream
3901         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3903         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3905   ${body}}
3907         
3908         
3909         comment "/**
3910  * @brief print the ${class} into a flux
3911  * @param ${p0} The stream to print into.
3912  * @return The modified flux.
3913  */"
3914       end
3916       operation 159746 "toStream"
3917         const public return_type class_ref 152194 // ostream
3918         nparams 1
3919           param inout name "flux" type class_ref 152194 // ostream
3920         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3922         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3924   ${body}}
3926         
3927         
3928         comment "/**
3929  * @brief print on a stream the content of the ${class}
3930  * @param flux the ostream to modify.
3931  * @return the modified ostream
3932  */"
3933       end
3935       operation 159874 "fromStream"
3936         public return_type class_ref 152322 // istream
3937         nparams 1
3938           param inout name "flux" type class_ref 152322 // istream
3939         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
3941         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
3943   ${body}}
3945         
3946         
3947         comment "/**
3948  * @brief restore the content of the ${class} from an istream
3949  * @param flux the istream.
3950  * @return the modified istream.
3951  * @todo problem of security here.
3952  */"
3953       end
3954     end
3956     class 148482 "Holder"
3957       visibility package 
3958       cpp_decl "${comment}${template}class ${name}${inherit} {
3959 ${members}
3960 protected:
3961     /**
3962      * @brief Add an axe to the holder.
3963      * @param name The name of the added Axe.
3964      * @param axe The hkl::svector representing the axe of rotation.
3965      * @return The added axe.
3966      */
3967     template<typename T>
3968     T * add(T * axe) throw(hkl::HKLException)
3969     {
3970     std::string const & name = axe->get_name();
3971   
3972     // Is the axe in the axeList ?
3973     hkl::AxeList::iterator iter = _holderList->axes().begin();
3974     hkl::AxeList::iterator end = _holderList->axes().end();
3975     bool found_in_axeList = false;
3976     unsigned int idx = 0;
3977     while(iter != end && !found_in_axeList )
3978     {
3979       if ( (*iter)->get_name() == name) // same name -> check if axes are compatible
3980       {
3981         if ( **iter == *axe) // same axe -> check if axe in the holder ( in _axes)
3982         {
3983           std::vector<hkl::HolderRow>::iterator it = _rows.begin();
3984           std::vector<hkl::HolderRow>::iterator it_end = _rows.end();
3985           while(it != it_end)
3986           {
3987             if ( it->axe->get_name() == name) // yes -> exception
3988             {
3989                 std::ostringstream description;
3990                 description << \"The axe \\\"\" << name << \"\\\" is already present in the holder\";
3991                 // destroy the axe as it will not be added to the axe List
3992                 delete axe;
3993                 HKLEXCEPTION(\"Can not add two times the same axe\",
3994                              description.str());
3995             }
3996             else // no -> add it
3997               ++it;
3998           }
3999           // not in the holder -> add it and check for memory leak
4000           hkl::HolderRow row = {NULL, idx};
4001           if (*iter == axe) // same pointer -> only add to the _axes.
4002             row.axe = axe;
4003           else // different pointer -> keep the one from the holder.
4004           {
4005             row.axe = *iter;
4006             delete axe;
4007           }
4008           _rows.push_back(row);
4009           return static_cast<T *>(row.axe);
4010         }
4011         else // different axe with the same name -> throw exception
4012         {
4013           std::ostringstream description;
4014           description << \"Same name but different axe.\" << std::endl
4015             << \"holder axe : \" << **iter;
4016           description << \"Axe to add : \" << *axe;
4017           // destroy tha ase as it will not be added to the axe list.
4018           delete axe;
4019           HKLEXCEPTION(\"Can not add this Axe to the sample axe list\",
4020               description.str());
4021         }
4022       }
4023       else // not same name -> next axe in the axeList
4024       {
4025         ++idx; // compute the index of the next axe in the _axeList.
4026         ++iter;
4027       }
4028     }
4029     // Axe not present in the axeList so add it to the axeList and the _axes.
4030     hkl::HolderRow row = { axe, _holderList->axes().size() };
4031     _holderList->axes().push_back(axe);
4032     _rows.push_back(row);
4033     return static_cast<T *>(row.axe);
4034     }
4037 ${inlines}
4039       java_decl ""
4040       idl_decl ""
4041       explicit_switch_type ""
4042       
4043       classrelation 170754 // rows (<directional aggregation by value>)
4044         relation 169346 *-->
4045           stereotype "vector"
4046           a role_name "rows" multiplicity "*" protected
4047             cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> _${name}${value};
4049             classrelation_ref 170754 // rows (<directional aggregation by value>)
4050           b multiplicity "" parent class_ref 148610 // HolderRow
4051       end
4053       classrelation 179714 // <aggregation>
4054         relation_ref 172930 // <aggregation>
4055       end
4057       operation 244866 "Holder"
4058         stereotype "constructor"
4059         public explicit_return_type ""
4060         nparams 1
4061           param inout name "holderList" type class_ref 149762 // HolderList
4062         cpp_decl "    ${comment}${inline}${name}${(}${t0} * ${p0}${)}${volatile}${throw};
4064         cpp_def "${comment}${inline}${class}::${name}${(}${t0} * ${p0}${)}${volatile}${throw} :
4065   _holderList(${p0}) 
4067   ${body}}
4069         
4070         
4071         comment "@brief construct an Holder related to an AxeList."
4072       end
4074       operation 243714 "add_rotation"
4075         public return_type class_ref 130050 // Rotation
4076         nparams 2
4077           param in name "name" type class_ref 129026 // string
4078           param in name "axe" type class_ref 128002 // svector
4079         nexceptions 1
4080           exception class_ref 128182 // HKLException
4081         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${const}${volatile}${throw}${abstract};
4083         cpp_def "${comment}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${const}${volatile}${throw}${staticnl}
4085   ${body}}
4087         
4088         
4089         comment "@brief Add an axe to the holder.
4090 @param ${p0} The name of the added Axe.
4091 @param ${p1} The ${t1} representing the axe of rotation.
4092 @return The added axe."
4093       end
4095       operation 245250 "apply"
4096         const public return_type class_ref 128770 // Quaternion
4097         nparams 1
4098           param inout name "q" type class_ref 128770 // Quaternion
4099         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
4101         cpp_def "${comment}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
4103   ${body}}
4105         
4106         
4107         comment "@brief apply the holder transformation to a ${t0}.
4108 @return The ${p0} ${t0} after the transformation.
4110 It computes q * qi in the Holder."
4111       end
4113       operation 260482 "apply_consign"
4114         const public return_type class_ref 128770 // Quaternion
4115         nparams 1
4116           param inout name "q" type class_ref 128770 // Quaternion
4117         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
4119         cpp_def "${comment}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
4121   ${body}}
4123         
4124         
4125         comment "@brief apply the holder consign transformation to a ${t0}.
4126 @return The ${p0} ${t0} after the transformation.
4128 It computes q * qi(consign) in the Holder."
4129       end
4131       operation 245122 "set_holderList"
4132         public explicit_return_type "void"
4133         nparams 1
4134           param inout name "holderList" type class_ref 149762 // HolderList
4135         nexceptions 1
4136           exception class_ref 128182 // HKLException
4137         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${abstract};
4139         cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}
4141   ${body}}
4143         
4144         
4145         comment "@brief set the axeList of the ${class}.
4146 @param ${p0} The ${t0} to set.
4147 @throw HKLException if the ${t0} is not compatible."
4148       end
4150       operation 249986 "operator=="
4151         const public explicit_return_type "bool"
4152         nparams 1
4153           param in name "holder" type class_ref 148482 // Holder
4154         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
4156         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
4158   ${body}}
4160         
4161         
4162         comment "@brief Are two ${class} equals ?
4163 @param ${p0} the ${t0} to compare with."
4164       end
4166       operation 245890 "printToStream"
4167         const public return_type class_ref 152194 // ostream
4168         nparams 1
4169           param inout name "flux" type class_ref 152194 // ostream
4170         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
4172         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
4174   ${body}}
4176         
4177         
4178         comment "/**
4179  * @brief print the ${class} into a flux
4180  * @param ${p0} The stream to print into.
4181  * @return The modified flux.
4182  */"
4183       end
4185       operation 249474 "toStream"
4186         const public return_type class_ref 152194 // ostream
4187         nparams 1
4188           param inout name "flux" type class_ref 152194 // ostream
4189         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
4191         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
4193   ${body}}
4195         
4196         
4197         comment "/**
4198  * @brief print on a stream the content of the ${class}
4199  * @param flux the ostream to modify.
4200  * @return the modified ostream
4201  */"
4202       end
4204       operation 249602 "fromStream"
4205         public return_type class_ref 152322 // istream
4206         nparams 1
4207           param inout name "flux" type class_ref 152322 // istream
4208         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
4210         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
4212   ${body}}
4214         
4215         
4216         comment "/**
4217  * @brief restore the content of the ${class} from an istream
4218  * @param flux the istream.
4219  * @return the modified istream.
4220  * @todo problem of security here.
4221  */"
4222       end
4223     end
4225     class 149762 "HolderList"
4226       visibility package 
4227       cpp_decl "${comment}${template}class ${name}${inherit} {
4228 ${members}};
4229 ${inlines}
4231       java_decl ""
4232       idl_decl ""
4233       explicit_switch_type ""
4234       
4235       classrelation 176770 // axeFactory (<directional aggregation by value>)
4236         relation 175362 *-->
4237           a role_name "axeFactory" multiplicity "" class_relation protected
4238             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} _${name}${value};
4240             classrelation_ref 176770 // axeFactory (<directional aggregation by value>)
4241           b multiplicity "" parent class_ref 150914 // AxeFactory
4242       end
4244       classrelation 174210 // axes (<directional aggregation by value>)
4245         relation 172802 *-->
4246           a role_name "axes" multiplicity "1" protected
4247             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} _${name}${value};
4249             classrelation_ref 174210 // axes (<directional aggregation by value>)
4250           b multiplicity "" parent class_ref 145410 // AxeList
4251       end
4253       classrelation 174338 // holders (<aggregation>)
4254         relation 172930 o---
4255           stereotype "vector"
4256           a role_name "holders" multiplicity "*" protected
4257             cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type} *> _${name}${value};
4259             classrelation_ref 174338 // holders (<aggregation>)
4260           b role_name "holderList" multiplicity "1" protected
4261             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * _${name}${value};
4263             classrelation_ref 179714 // <aggregation>
4264       end
4266       operation 247042 "HolderList"
4267         stereotype "constructor"
4268         public explicit_return_type ""
4269         nparams 0
4270         cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw};
4272         cpp_def "${comment}${inline}${class}::${name}${(}${)}${volatile}${throw} 
4274   ${body}}
4276         
4277         
4278         comment "@brief Create an empty holderList."
4279       end
4281       operation 247170 "~HolderList"
4282         stereotype "destructor"
4283         cpp_virtual public explicit_return_type ""
4284         nparams 0
4285         cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
4287         cpp_def "${comment}${inline}${class}::${name}${(}${)}${volatile}${throw} 
4289   ${body}}
4291         
4292         
4293       end
4295       operation 247298 "HolderList"
4296         stereotype "copy"
4297         public explicit_return_type ""
4298         nparams 1
4299           param in name "source" type class_ref 149762 // HolderList
4300         cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
4302         cpp_def "${comment}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
4303   _holders(${p0}._holders)
4305   ${body}}
4307         
4308         
4309       end
4311       operation 248450 "add"
4312         public return_type class_ref 148482 // Holder
4313         nparams 0
4314         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
4316         cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4318   ${body}}
4320         
4321         
4322         comment "@brief add an holder to the HolderList
4323 @return The added Holder"
4324       end
4326       operation 248578 "axes"
4327         cpp_inline public return_type class_ref 145410 // AxeList
4328         nparams 0
4329         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
4331         cpp_def "${comment}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4333   ${body}}
4335         
4336         
4337         comment "@brief get the axes store in the holderList.
4338 @return all axes stored in all holders of the HolderList."
4339       end
4341       operation 248706 "axes"
4342         const cpp_inline public return_type class_ref 145410 // AxeList
4343         nparams 0
4344         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} const & ${name}${(}${)}${const}${volatile}${throw}${abstract};
4346         cpp_def "${comment}${inline}${type} const & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4348   ${body}}
4350         
4351         
4352         comment "@brief get the axes store in the holderList.
4353 @return all axes stored in all holders of the HolderList."
4354       end
4356       operation 251138 "size"
4357         const public explicit_return_type "uint"
4358         nparams 0
4359         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
4361         cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4363   ${body}}
4365         
4366         
4367         comment "@brief Get the size of the ${class}
4368 @return The number of Holder in the ${class}"
4369       end
4371       operation 248834 "operator[]"
4372         const cpp_inline public return_type class_ref 148482 // Holder
4373         nparams 1
4374           param in name "idx" explicit_type "uint"
4375         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} const * ${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${abstract};
4377         cpp_def "${comment}${inline}${type} const * ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}
4379   ${body}}
4381         
4382         
4383         comment "@brief get an Holder by its index.
4384 @param ${p0} the index of the holder to get."
4385       end
4387       operation 251266 "operator=="
4388         const public explicit_return_type "bool"
4389         nparams 1
4390           param in name "holderList" type class_ref 149762 // HolderList
4391         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
4393         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
4395   ${body}}
4397         
4398         
4399         comment "@brief Are two ${class} equals ?
4400 @param ${p0} the ${t0} to compare with."
4401       end
4403       operation 249090 "printToStream"
4404         const cpp_virtual public return_type class_ref 152194 // ostream
4405         nparams 1
4406           param inout name "flux" type class_ref 152194 // ostream
4407         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
4409         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
4411   ${body}}
4413         
4414         
4415         comment "/**
4416  * @brief print the ${class} into a flux
4417  * @param ${p0} The stream to print into.
4418  * @return The modified flux.
4419  */"
4420       end
4422       operation 249218 "toStream"
4423         const public return_type class_ref 152194 // ostream
4424         nparams 1
4425           param inout name "flux" type class_ref 152194 // ostream
4426         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
4428         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
4430   ${body}}
4432         
4433         
4434         comment "/**
4435  * @brief print on a stream the content of the ${class}
4436  * @param flux the ostream to modify.
4437  * @return the modified ostream
4438  */"
4439       end
4441       operation 249346 "fromStream"
4442         public return_type class_ref 152322 // istream
4443         nparams 1
4444           param inout name "flux" type class_ref 152322 // istream
4445         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
4447         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
4449   ${body}}
4451         
4452         
4453         comment "/**
4454  * @brief restore the content of the ${class} from an istream
4455  * @param flux the istream.
4456  * @return the modified istream.
4457  * @todo problem of security here.
4458  */"
4459       end
4460     end
4462     class 148610 "HolderRow"
4463       visibility package stereotype "struct"
4464       cpp_decl "${comment}${template}struct ${name}${inherit} {
4465 ${members}};
4466 ${inlines}
4468       java_decl ""
4469       idl_decl "${comment}struct ${name} {
4470 ${members}};
4472       explicit_switch_type ""
4473       
4474       attribute 146818 "axe"
4475         public explicit_type "Axe"
4476         cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
4478         java_decl ""
4479         idl_decl ""
4480       end
4482       attribute 146946 "idx"
4483         public explicit_type "uint"
4484         cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
4486         java_decl ""
4487         idl_decl ""
4488       end
4489     end
4491     class 131586 "Lattice"
4492       visibility package 
4493       cpp_decl "${description}${template}class ${name}${inherit} {
4494 ${members}};
4495 ${inlines}
4497       java_decl ""
4498       idl_decl ""
4499       explicit_switch_type ""
4500       
4501       attribute 131842 "_a"
4502         protected type class_ref 130178 // FitParameter
4503         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} * ${name}${value};
4505         java_decl ""
4506         idl_decl ""
4507       end
4509       attribute 131970 "_b"
4510         protected type class_ref 130178 // FitParameter
4511         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} * ${name}${value};
4513         java_decl ""
4514         idl_decl ""
4515       end
4517       attribute 132098 "_c"
4518         protected type class_ref 130178 // FitParameter
4519         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} * ${name}${value};
4521         java_decl ""
4522         idl_decl ""
4523       end
4525       attribute 132226 "_alpha"
4526         protected type class_ref 130178 // FitParameter
4527         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} * ${name}${value};
4529         java_decl ""
4530         idl_decl ""
4531       end
4533       attribute 132354 "_beta"
4534         protected type class_ref 130178 // FitParameter
4535         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} * ${name}${value};
4537         java_decl ""
4538         idl_decl ""
4539       end
4541       attribute 132482 "_gamma"
4542         protected type class_ref 130178 // FitParameter
4543         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} * ${name}${value};
4545         java_decl ""
4546         idl_decl ""
4547       end
4549       attribute 132610 "_B"
4550         protected type class_ref 128514 // smatrix
4551         cpp_mutable cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
4553         java_decl ""
4554         idl_decl ""
4555       end
4557       attribute 132738 "_old_a"
4558         private explicit_type "double"
4559         cpp_mutable cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
4561         java_decl ""
4562         idl_decl ""
4563       end
4565       attribute 132866 "_old_b"
4566         private explicit_type "double"
4567         cpp_mutable cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
4569         java_decl ""
4570         idl_decl ""
4571       end
4573       attribute 132994 "_old_c"
4574         private explicit_type "double"
4575         cpp_mutable cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
4577         java_decl ""
4578         idl_decl ""
4579       end
4581       attribute 133122 "_old_alpha"
4582         private explicit_type "double"
4583         cpp_mutable cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
4585         java_decl ""
4586         idl_decl ""
4587       end
4589       attribute 133250 "_old_beta"
4590         private explicit_type "double"
4591         cpp_mutable cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
4593         java_decl ""
4594         idl_decl ""
4595       end
4597       attribute 133378 "_old_gamma"
4598         private explicit_type "double"
4599         cpp_mutable cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
4601         java_decl ""
4602         idl_decl ""
4603       end
4605       operation 163970 "Lattice"
4606         public explicit_return_type ""
4607         nparams 0
4608         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
4610         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
4612   ${body}}
4614         
4615         
4616         comment "/**
4617  * @brief The default constructor.
4618  */"
4619       end
4621       operation 164098 "Lattice"
4622         public explicit_return_type ""
4623         nparams 6
4624           param in name "a" type class_ref 128060 // Value
4625           param in name "b" type class_ref 128060 // Value
4626           param in name "c" type class_ref 128060 // Value
4627           param in name "alpha" type class_ref 128060 // Value
4628           param in name "beta" type class_ref 128060 // Value
4629           param in name "gamma" type class_ref 128060 // Value
4630         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}, const ${t4} & ${p4}, const ${t5} & ${p5}${)}${volatile}${throw};
4632         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}, const ${t4} & ${p4}, const ${t5} & ${p5}${)}${volatile}${throw} 
4634   ${body}}
4636         
4637         
4638         comment "/**
4639  * @brief Another constructor.
4640  * @param ${p0} the a parameter of the ${class}
4641  * @param ${p1} the b parameter of the ${class}
4642  * @param ${p2} the c parameter of the ${class}
4643  * @param ${p3} the alpha parameter of the ${class}
4644  * @param ${p4} the beta parameter of the ${class}
4645  * @param ${p5} the gamma parameter of the ${class}
4646  */"
4647       end
4649       operation 164482 "Lattice"
4650         stereotype "copy"
4651         public explicit_return_type ""
4652         nparams 1
4653           param in name "source" type class_ref 131586 // Lattice
4654         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
4656         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} 
4658   ${body}}
4660         
4661         
4662         comment "/**
4663  * @brief The copy constructor.
4664  * @param ${p0} The ${class} to copy.
4665  */"
4666       end
4668       operation 164354 "~Lattice"
4669         cpp_virtual public explicit_return_type ""
4670         nparams 0
4671         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
4673         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
4675   ${body}}
4677         
4678         
4679         comment "/**
4680  * @brief The default destructor.
4681  */"
4682       end
4684       operation 164610 "a"
4685         public return_type class_ref 130178 // FitParameter
4686         nparams 0
4687         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
4689         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4691   ${body}}
4693         
4694         
4695         comment "/**
4696  * @brief Get the a FitParameter of the ${class}.
4697  * @return A reference on the a FitParameter.
4698  * @todo return fitparameter * instead of fitParameter &.
4699  */"
4700       end
4702       operation 164738 "b"
4703         public return_type class_ref 130178 // FitParameter
4704         nparams 0
4705         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
4707         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4709   ${body}}
4711         
4712         
4713         comment "/**
4714  * @brief Get the b FitParameter of the ${class}.
4715  * @return A reference on the b FitParameter.
4716  * @todo return fitparameter * instead of fitParameter &.
4717  */"
4718       end
4720       operation 164866 "c"
4721         public return_type class_ref 130178 // FitParameter
4722         nparams 0
4723         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
4725         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4727   ${body}}
4729         
4730         
4731         comment "/**
4732  * @brief Get the c FitParameter of the ${class}.
4733  * @return A reference on the c FitParameter.
4734  * @todo return fitparameter * instead of fitParameter &.
4735  */"
4736       end
4738       operation 164994 "alpha"
4739         public return_type class_ref 130178 // FitParameter
4740         nparams 0
4741         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
4743         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4745   ${body}}
4747         
4748         
4749         comment "/**
4750  * @brief Get the alpha FitParameter of the ${class}.
4751  * @return A reference on the alpha FitParameter.
4752  * @todo return fitparameter * instead of fitParameter &.
4753  */"
4754       end
4756       operation 165122 "beta"
4757         public return_type class_ref 130178 // FitParameter
4758         nparams 0
4759         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
4761         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4763   ${body}}
4765         
4766         
4767         comment "/**
4768  * @brief Get the beta FitParameter of the ${class}.
4769  * @return A reference on the beta FitParameter.
4770  * @todo return fitparameter * instead of fitParameter &.
4771  */"
4772       end
4774       operation 165250 "gamma"
4775         public return_type class_ref 130178 // FitParameter
4776         nparams 0
4777         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
4779         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4781   ${body}}
4783         
4784         
4785         comment "/**
4786  * @brief Get the gamma FitParameter of the ${class}.
4787  * @return A reference on the gamma FitParameter.
4788  * @todo return fitparameter * instead of fitParameter &.
4789  */"
4790       end
4792       operation 165378 "a"
4793         const public return_type class_ref 130178 // FitParameter
4794         nparams 0
4795         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
4797         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4799   ${body}}
4801         
4802         
4803         comment "/**
4804  * @brief Get the a FitParameter of the ${class}.
4805  * @return A reference on the a FitParameter.
4806  * @todo return fitparameter * instead of fitParameter &.
4807  */"
4808       end
4810       operation 165506 "b"
4811         const public return_type class_ref 130178 // FitParameter
4812         nparams 0
4813         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
4815         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4817   ${body}}
4819         
4820         
4821         comment "/**
4822  * @brief Get the b FitParameter of the ${class}.
4823  * @return A reference on the b FitParameter.
4824  * @todo return fitparameter * instead of fitParameter &.
4825  */"
4826       end
4828       operation 165634 "c"
4829         const public return_type class_ref 130178 // FitParameter
4830         nparams 0
4831         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
4833         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4835   ${body}}
4837         
4838         
4839         comment "/**
4840  * @brief Get the c FitParameter of the ${class}.
4841  * @return A reference on the c FitParameter.
4842  * @todo return fitparameter * instead of fitParameter &.
4843  */"
4844       end
4846       operation 165762 "alpha"
4847         const public return_type class_ref 130178 // FitParameter
4848         nparams 0
4849         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
4851         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4853   ${body}}
4855         
4856         
4857         comment "/**
4858  * @brief Get the alpha FitParameter of the ${class}.
4859  * @return A reference on the alpha FitParameter.
4860  * @todo return fitparameter * instead of fitParameter &.
4861  */"
4862       end
4864       operation 165890 "beta"
4865         const public return_type class_ref 130178 // FitParameter
4866         nparams 0
4867         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
4869         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4871   ${body}}
4873         
4874         
4875         comment "/**
4876  * @brief Get the beta FitParameter of the ${class}.
4877  * @return A reference on the beta FitParameter.
4878  * @todo return fitparameter * instead of fitParameter &.
4879  */"
4880       end
4882       operation 166018 "gamma"
4883         const public return_type class_ref 130178 // FitParameter
4884         nparams 0
4885         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
4887         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4889   ${body}}
4891         
4892         
4893         comment "/**
4894  * @brief Get the gamma FitParameter of the ${class}.
4895  * @return A reference on the gamma FitParameter.
4896  * @todo return fitparameter * instead of fitParameter &.
4897  */"
4898       end
4900       operation 166146 "get_B"
4901         const public return_type class_ref 128514 // smatrix
4902         nparams 0
4903         nexceptions 1
4904           exception class_ref 128182 // HKLException
4905         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
4907         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4909   ${body}}
4911         
4912         
4913       end
4915       operation 166274 "get_B"
4916         const public return_type class_ref 128514 // smatrix
4917         nparams 1
4918           param inout name "status" explicit_type "bool"
4919         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
4921         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
4923   ${body}}
4925         
4926         
4927       end
4929       operation 166402 "reciprocal"
4930         const public return_type class_ref 131586 // Lattice
4931         nparams 0
4932         nexceptions 1
4933           exception class_ref 128182 // HKLException
4934         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
4936         cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4938   ${body}}
4940         
4941         
4942         comment "@brief Compute the reciprocal ${class}.
4943 @return The reciprocal ${class}.
4944 @throw HKLException if the reciprocal ${class} can not be compute.
4945 @todo See for the consign assignation.
4947       end
4949       operation 166530 "randomize"
4950         public explicit_return_type "void"
4951         nparams 0
4952         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
4954         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
4956   ${body}}
4958         
4959         
4960         comment "/**
4961  * @brief Randomize the ${class}.
4962  */"
4963       end
4965       operation 166658 "operator=="
4966         const public explicit_return_type "bool"
4967         nparams 1
4968           param in name "lattice" type class_ref 131586 // Lattice
4969         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
4971         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
4973   ${body}}
4975         
4976         
4977         comment "/**
4978  * \\brief Are two ${class} equals ?
4979  * \\param ${p0} the ${t0} to compare with.
4980  * \\return true if both are equals flase otherwise.
4981  */"
4982       end
4984       operation 166786 "printToStream"
4985         const public return_type class_ref 152194 // ostream
4986         nparams 1
4987           param inout name "flux" type class_ref 152194 // ostream
4988         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
4990         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
4992   ${body}}
4994         
4995         
4996         comment "/**
4997  * @brief print the ${class} into a flux
4998  * @param ${p0} The stream to print into.
4999  * @return The modified flux.
5000  */"
5001       end
5003       operation 166914 "toStream"
5004         const public return_type class_ref 152194 // ostream
5005         nparams 1
5006           param inout name "flux" type class_ref 152194 // ostream
5007         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5009         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5011   ${body}}
5013         
5014         
5015         comment "/**
5016  * @brief print on a stream the content of the ${class}
5017  * @param flux the ostream to modify.
5018  * @return the modified ostream
5019  */"
5020       end
5022       operation 167042 "fromStream"
5023         public return_type class_ref 152322 // istream
5024         nparams 1
5025           param inout name "flux" type class_ref 152322 // istream
5026         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5028         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5030   ${body}}
5032         
5033         
5034         comment "/**
5035  * @brief restore the content of the ${class} from an istream
5036  * @param flux the istream.
5037  * @return the modified istream.
5038  * @todo problem of security here.
5039  */"
5040       end
5042       operation 167170 "_computeB"
5043         const protected explicit_return_type "bool"
5044         nparams 0
5045         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
5047         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
5049   ${body}}
5051         
5052         
5053         comment "/**
5054  * @brief compute the B matrix from the fitParameters.
5055  * @return true if the calculus is valid.
5056  */"
5057       end
5059       operation 167298 "_compute_reciprocal"
5060         const protected explicit_return_type "void"
5061         nparams 6
5062           param out name "a_star" explicit_type "double"
5063           param out name "b_star" explicit_type "double"
5064           param out name "c_star" explicit_type "double"
5065           param out name "alpha_star" explicit_type "double"
5066           param out name "beta_star" explicit_type "double"
5067           param out name "gamma_star" explicit_type "double"
5068         nexceptions 1
5069           exception class_ref 128182 // HKLException
5070         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}, ${t1} & ${p1}, ${t2} & ${p2}, ${t3} & ${p3}, ${t4} & ${p4}, ${t5} & ${p5}${)}${const}${volatile}${throw}${abstract};
5072         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} & ${p0}, ${t1} & ${p1}, ${t2} & ${p2}, ${t3} & ${p3}, ${t4} & ${p4}, ${t5} & ${p5}${)}${const}${volatile}${throw}${staticnl}
5074   ${body}}
5076         
5077         
5078         comment "/**
5079  * @brief compute the reciprocal parameters of the ${class}.
5080  * @param[out] ${p0} the a_star value.
5081  * @param[out] ${p1} the b_star value.
5082  * @param[out] ${p2} the c_star value.
5083  * @param[out] ${p3} the alpha_star value.
5084  * @param[out] ${p4} the beta_star value.
5085  * @param[out] ${p5} the gamma_star value.
5086  * @throw HKLException if the reciprocal calculus is not possible.
5087  */"
5088       end
5089     end
5091     class 138754 "Mode"
5092       abstract visibility package 
5093       cpp_decl "${description}${template}class ${name}${inherit} {
5094 ${members}};
5095 ${inlines}
5097       java_decl ""
5098       idl_decl ""
5099       explicit_switch_type ""
5100       
5101       classrelation 147330 // <generalisation>
5102         relation 146946 ---|>
5103           a public
5104             cpp default "${type}"
5105             classrelation_ref 147330 // <generalisation>
5106           b multiplicity "" parent class_ref 131202 // HKLObject
5107       end
5109       operation 214402 "Mode"
5110         protected explicit_return_type ""
5111         nparams 2
5112           param in name "name" type class_ref 129026 // string
5113           param in name "description" type class_ref 129026 // string
5114         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw};
5116         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw} :
5117   HKLObject(name, description)
5119   ${body}}
5121         
5122         
5123         comment "/**
5124  * @brief The default constructor of the ${class} class.
5125  * @param ${p0} the name of the ${class}.
5126  * @param ${p1} the description of the ${class}.
5127  */
5129       end
5131       operation 214530 "~Mode"
5132         cpp_virtual public explicit_return_type ""
5133         nparams 0
5134         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
5136         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
5138   ${body}}
5140         
5141         
5142       end
5144       operation 214658 "computeAngles"
5145         abstract const cpp_virtual public explicit_return_type "void"
5146         nparams 4
5147           param in name "h" type class_ref 128060 // Value
5148           param in name "k" type class_ref 128060 // Value
5149           param in name "l" type class_ref 128060 // Value
5150           param in name "UB" type class_ref 128514 // smatrix
5151         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}${)}${const}${volatile}${throw}${abstract};
5153         
5154         
5155         comment "/**
5156  * @brief The main function to get a sample of angles from (h,k,l).
5157  * @param ${p0} The scaterring vector first coordinate.
5158  * @param ${p1} The scaterring vector second coordinate.
5159  * @param ${p2} The scaterring vector third coordinate.
5160  * @param ${p3} The product of the orientation matrix U by the crystal matrix B.
5161  */
5163       end
5164     end
5166     class 139138 "ModeList"
5167       visibility package 
5168       cpp_decl "${description}${template}class ${name}${inherit} {
5169 ${members}};
5170 ${inlines}
5172       java_decl ""
5173       idl_decl ""
5174       explicit_switch_type ""
5175       
5176       classrelation 147970 // _current (<directional aggregation>)
5177         relation 147586 o-->
5178           a role_name "_current" multiplicity "1" protected
5179             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
5181             classrelation_ref 147970 // _current (<directional aggregation>)
5182           b multiplicity "" parent class_ref 138754 // Mode
5183       end
5185       classrelation 148098 // _modes (<directional aggregation>)
5186         relation 147714 o-->
5187           stereotype "vector"
5188           a role_name "_modes" multiplicity "*" protected
5189             cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type} *> ${name}${value};
5191             classrelation_ref 148098 // _modes (<directional aggregation>)
5192           b multiplicity "" parent class_ref 138754 // Mode
5193       end
5195       class 139266 "iterator"
5196         visibility package stereotype "typedef" explicit_base_type "std::vector<Mode *>::iterator"
5197         cpp_decl "${description}typedef ${type} ${name};
5199         java_decl ""
5200         idl_decl "${comment}typedef ${type} ${name};
5202         explicit_switch_type ""
5203         
5204       end
5206       class 139394 "const_iterator"
5207         visibility package stereotype "typedef" explicit_base_type "std::vector<Mode *>::const_iterator"
5208         cpp_decl "${description}typedef ${type} ${name};
5210         java_decl ""
5211         idl_decl "${comment}typedef ${type} ${name};
5213         explicit_switch_type ""
5214         
5215       end
5217       operation 215298 "ModeList"
5218         public explicit_return_type ""
5219         nparams 0
5220         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
5222         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} :
5223   _current(NULL) 
5225   ${body}}
5227         
5228         
5229         comment "/**
5230  * @brief Default constructor of the ${class} class.
5231  */
5233       end
5235       operation 215426 "~ModeList"
5236         cpp_virtual public explicit_return_type ""
5237         nparams 0
5238         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
5240         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
5242   ${body}}
5244         
5245         
5246         comment "/**
5247  * @brief The default destructor.
5248  */
5250       end
5252       operation 215810 "add"
5253         public return_type class_ref 138754 // Mode
5254         nparams 1
5255           param in name "mode" type class_ref 138754 // Mode
5256         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${abstract};
5258         cpp_def "${description}${inline}${type} * ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}
5260   ${body}}
5262         
5263         
5264         comment "/**
5265  * @brief Add a mode to the ${class}.
5266  * @param ${p0} The ${t0} to add.
5267  * @return NULL if the ${t0} can not be add or a Pointer on the added ${t0}
5268  */"
5269       end
5271       operation 216066 "erase"
5272         public explicit_return_type "ModeList::iterator"
5273         nparams 1
5274           param inout name "pos" explicit_type "ModeList::iterator"
5275         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5277         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5279   ${body}}
5281         
5282         
5283         comment "/**
5284  * @brief Remove a Mode from the ${class}.
5285  * @param ${p0} The ${t0} position of the Sample.
5286  * @throw HKLException If the sample is not present. 
5287  */"
5288       end
5290       operation 216194 "clear"
5291         public explicit_return_type "void"
5292         nparams 0
5293         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
5295         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
5297   ${body}}
5299         
5300         
5301         comment "/**
5302  * @brief Remove all sample from the SampleList.
5303  */"
5304       end
5306       operation 216322 "set_current"
5307         public return_type class_ref 138754 // Mode
5308         nparams 1
5309           param in name "name" type class_ref 129026 // string
5310         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5312         cpp_def "${description}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5314   ${body}}
5316         
5317         
5318         comment "/**
5319  * @brief Set the nth Mode as the current Mode.
5320  * @param ${p0} The name of the Mode to set as current.
5321  * @return NULL if the mode is not present in the list but do not change the _current.
5322  */"
5323       end
5325       operation 216450 "get_current"
5326         const public return_type class_ref 138754 // Mode
5327         nparams 0
5328         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
5330         cpp_def "${description}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
5332   ${body}}
5334         
5335         
5336         comment "/**
5337  * @brief Get the current Mode
5338  * @return A pointer on the current Mode.
5339  */"
5340       end
5342       operation 216578 "current"
5343         public return_type class_ref 138754 // Mode
5344         nparams 0
5345         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
5347         cpp_def "${description}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
5349   ${body}}
5351         
5352         
5353         comment "/**
5354  * @brief Get the current sample
5355  * @return A pointer on the current sample.
5356  */"
5357       end
5359       operation 216706 "get_names"
5360         const public explicit_return_type "std::vector<std::string>"
5361         nparams 0
5362         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
5364         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
5366   ${body}}
5368         
5369         
5370         comment "/**
5371  * @brief Return the names of all samples.
5372  */
5374       end
5376       operation 216834 "size"
5377         const public explicit_return_type "uint"
5378         nparams 0
5379         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
5381         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
5383   ${body}}
5385         
5386         
5387       end
5389       operation 216962 "operator[]"
5390         public return_type class_ref 138754 // Mode
5391         nparams 1
5392           param in name "name" type class_ref 129026 // string
5393         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5395         cpp_def "${description}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5397   ${body}}
5399         
5400         
5401         comment "/**
5402  * @return the Mode * named
5403  * @param ${p0} The name of the Mode we are looking for in the ${class}.
5404  * @return The mode or NULL if the mode is not present in the ${class}.
5405  */"
5406       end
5408       operation 217090 "begin"
5409         public explicit_return_type "ModeList::iterator"
5410         nparams 0
5411         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
5413         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
5415   ${body}}
5417         
5418         
5419         comment "/**
5420  * @brief Get an iterator on the first element of ReflectionList.
5421  * @return The iterator.
5422  */
5424       end
5426       operation 217218 "end"
5427         public explicit_return_type "ModeList::iterator"
5428         nparams 0
5429         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
5431         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
5433   ${body}}
5435         
5436         
5437         comment "/**
5438  * @brief Get an iterator on the end of ReflectionList.
5439  * @return The iterator.
5440  */
5442       end
5444       operation 217346 "begin"
5445         const public explicit_return_type "ModeList::const_iterator"
5446         nparams 0
5447         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
5449         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
5451   ${body}}
5453         
5454         
5455         comment "/**
5456  * @brief Get an iterator on the first element of ReflectionList.
5457  * @return The iterator.
5458  */
5460       end
5462       operation 217474 "end"
5463         const public explicit_return_type "ModeList::const_iterator"
5464         nparams 0
5465         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
5467         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
5469   ${body}}
5471         
5472         
5473         comment "/**
5474  * @brief Get an iterator on the end of ReflectionList.
5475  * @return The iterator.
5476  */
5478       end
5480       operation 217602 "operator=="
5481         const public explicit_return_type "bool"
5482         nparams 1
5483           param in name "modeList" type class_ref 139138 // ModeList
5484         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5486         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5488   ${body}}
5490         
5491         
5492         comment "/**
5493  * \\brief Are two ${class} equals ?
5494  * \\param ${p0} the ${t0} to compare with.
5495  * \\return true if both are equals flase otherwise.
5496  */"
5497       end
5499       operation 217730 "printToStream"
5500         const public return_type class_ref 152194 // ostream
5501         nparams 1
5502           param inout name "flux" type class_ref 152194 // ostream
5503         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5505         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5507   ${body}}
5509         
5510         
5511         comment "/**
5512  * @brief print the ${class} into a flux
5513  * @param ${p0} The stream to print into.
5514  * @return The modified flux.
5515  */"
5516       end
5518       operation 217858 "toStream"
5519         const public return_type class_ref 152194 // ostream
5520         nparams 1
5521           param inout name "flux" type class_ref 152194 // ostream
5522         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5524         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5526   ${body}}
5528         
5529         
5530         comment "/**
5531  * @brief print on a stream the content of the ${class}
5532  * @param flux the ostream to modify.
5533  * @return the modified ostream
5534  */"
5535       end
5537       operation 217986 "fromStream"
5538         public return_type class_ref 152322 // istream
5539         nparams 1
5540           param inout name "flux" type class_ref 152322 // istream
5541         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5543         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5545   ${body}}
5547         
5548         
5549         comment "/**
5550  * @brief restore the content of the ${class} from an istream
5551  * @param flux the istream.
5552  * @return the modified istream.
5553  * @todo problem of security here.
5554  */"
5555       end
5556     end
5558     class 138882 "ModeTemp"
5559       visibility package 
5560       nformals 1
5561       formal name "T" type "class" explicit_default_value ""
5562         explicit_extends ""
5563       cpp_decl "${description}${template}class ${name}${inherit} {
5564 ${members}};
5565 ${inlines}
5567       java_decl ""
5568       idl_decl ""
5569       explicit_switch_type ""
5570       
5571       classrelation 147458 // <generalisation>
5572         relation 147074 ---|>
5573           a public
5574             cpp default "${type}"
5575             classrelation_ref 147458 // <generalisation>
5576           b multiplicity "" parent class_ref 138754 // Mode
5577       end
5579       operation 214786 "ModeTemp"
5580         protected explicit_return_type ""
5581         nparams 3
5582           param in name "name" type class_ref 129026 // string
5583           param in name "description" type class_ref 129026 // string
5584           param inout name "geometry" explicit_type "T"
5585         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, ${t2} & ${p2}${)}${volatile}${throw};
5587         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, ${t2} & ${p2}${)}${volatile}${throw} :
5588   Mode(name, description),
5589   _geometry(geometry) 
5591   ${body}}
5593         
5594         
5595         comment "/**
5596  * @brief Default constructor - protected to make sure this class is abstract.
5597  * @param ${p0} The name of the ModeTemp.
5598  * @param ${p1} The description of the ModeTemp.
5599  * @param ${p2} the Geometry use to do calculation.
5600  */
5602       end
5604       operation 214914 "~ModeTemp"
5605         cpp_virtual public explicit_return_type ""
5606         nparams 0
5607         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
5609         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
5611   ${body}}
5613         
5614         
5615       end
5617       attribute 142338 "_geometry"
5618         protected explicit_type "T"
5619         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} & ${name}${value};
5621         java_decl ""
5622         idl_decl ""
5623       end
5625       class 139010 "value_type"
5626         visibility package stereotype "typedef" explicit_base_type "T"
5627         cpp_decl "${description}typedef ${type} ${name};
5629         java_decl ""
5630         idl_decl "${comment}typedef ${type} ${name};
5632         explicit_switch_type ""
5633         
5634       end
5636       operation 215042 "_parametersAreOk"
5637         const protected explicit_return_type "bool"
5638         nparams 4
5639           param in name "h" type class_ref 128060 // Value
5640           param in name "k" type class_ref 128060 // Value
5641           param in name "l" type class_ref 128060 // Value
5642           param in name "UB" type class_ref 128514 // smatrix
5643         nexceptions 1
5644           exception class_ref 128182 // HKLException
5645         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}${)}${const}${volatile}${throw}${abstract};
5647         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}${)}${const}${volatile}${throw}${staticnl}
5649   ${body}}
5651         
5652         
5653         comment "/**
5654  * @brief Check if the parameter are ok to compute the geometry configuration.
5655  * 
5656  * @param ${p0} 
5657  * @param ${p1} 
5658  * @param ${p2} 
5659  * @param ${p3} 
5660  * @throw HKLException if one of the parameters is wrong.
5661  * @return true if parameters are ok, false otherwise.
5662  */
5664       end
5666       operation 215170 "_computeThetaAndHphi"
5667         const protected explicit_return_type "void"
5668         nparams 6
5669           param in name "h" type class_ref 128060 // Value
5670           param in name "k" type class_ref 128060 // Value
5671           param in name "l" type class_ref 128060 // Value
5672           param in name "UB" type class_ref 128514 // smatrix
5673           param out name "theta" explicit_type "double"
5674           param out name "hphi" type class_ref 128002 // svector
5675         nexceptions 1
5676           exception class_ref 128182 // HKLException
5677         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}, ${t4} & ${p4}, ${t5} & ${p5}${)}${const}${volatile}${throw}${abstract};
5679         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}, ${t4} & ${p4}, ${t5} & ${p5}${)}${const}${volatile}${throw}${staticnl}
5681   ${body}}
5683         
5684         
5685         comment "/**
5686  * @brief Compute theta correspondig to thoses parameters.
5687  * 
5688  * @param ${p0} The first coordinate of the hkl vector.
5689  * @param ${p1} the second coordinate of the hkl vector.
5690  * @param ${p2} the third coordinate of the hkl vector.
5691  * @param ${p3} The UB matrix.
5692  * @param[out] ${p4} the scattering reflection angle. 
5693  * @param[out] ${p5} the hkl vector in the sample holder coordinates.
5694  * @throw HKLException if the reflection is unreachable
5695  */
5697       end
5698     end
5700     class 130306 "MyMap"
5701       visibility package 
5702       nformals 1
5703       formal name "T" type "class" explicit_default_value ""
5704         explicit_extends ""
5705       nactuals 2
5706       actual class class_ref 130562 // map
5707         rank 0 value class_ref 129026 // string
5708       actual class class_ref 130562 // map
5709         rank 1 explicit_value "T"
5710       cpp_decl "${description}${template}class ${name}${inherit} {
5711 ${members}};
5712 ${inlines}
5714       java_decl ""
5715       idl_decl ""
5716       explicit_switch_type ""
5717       
5718       classrelation 131074 // <generalisation>
5719         relation 130818 ---|>
5720           a public
5721             cpp default "${type}"
5722             classrelation_ref 131074 // <generalisation>
5723           b multiplicity "" parent class_ref 130562 // map
5724       end
5726       operation 156674 "operator[]"
5727         public explicit_return_type "T"
5728         nparams 1
5729           param in name "name" type class_ref 129026 // string
5730         nexceptions 1
5731           exception class_ref 128182 // HKLException
5732         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5734         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5736   ${body}}
5738         
5739         
5740         comment "/**
5741  * @brief Overload of the [] operator.
5742  * @param ${p0} The name of the element to return.
5743  * @throw HKLException the element named ${p0} is not in the ${class}.
5744  * @return The element named ${p0}.
5745  */"
5746       end
5748       operation 156802 "operator[]"
5749         const public explicit_return_type "T"
5750         nparams 1
5751           param in name "name" type class_ref 129026 // string
5752         nexceptions 1
5753           exception class_ref 128182 // HKLException
5754         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5756         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5758   ${body}}
5760         
5761         
5762         comment "/**
5763  * @brief Overload of the [] operator.
5764  * @param ${p0} The name of the element to return.
5765  * @throw HKLException the element named ${p0} is not in the ${class}.
5766  * @return The element named ${p0}.
5767  */"
5768       end
5770       operation 156930 "add"
5771         public explicit_return_type "bool"
5772         nparams 1
5773           param in name "object" explicit_type "T"
5774         nexceptions 1
5775           exception class_ref 128182 // HKLException
5776         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5778         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5780   ${body}}
5782         
5783         
5784         comment "/**
5785  * @brief Add a ${t0} to the ${class}.
5786  * @param ${p0} The ${t0} to add.
5787  * @throw HKLException The ${p0} is already in the ${class}.
5788  * @return True if ok false otherwise.
5789  */"
5790       end
5792       operation 157058 "remove"
5793         public explicit_return_type "bool"
5794         nparams 1
5795           param in name "name" type class_ref 129026 // string
5796         nexceptions 1
5797           exception class_ref 128182 // HKLException
5798         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5800         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5802   ${body}}
5804         
5805         
5806         comment "/**
5807  * @brief remove the ${t0} named ${p0} from the ${class}
5808  * @param ${p0} The name of the ${t0}.
5809  * @throw HKLException The object names ${p0} is no present in the ${class}.
5810  * @return True if object removed.
5811  */"
5812       end
5814       operation 157186 "getNames"
5815         const public explicit_return_type "vector<string>"
5816         nparams 0
5817         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
5819         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
5821   ${body}}
5823         
5824         
5825       end
5827       operation 157314 "printToStream"
5828         const public return_type class_ref 152194 // ostream
5829         nparams 1
5830           param inout name "flux" type class_ref 152194 // ostream
5831         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5833         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5835   ${body}}
5837         
5838         
5839         comment "/*!
5840  * \\brief print the ${class} into a flux
5841  * \\param flux The stream to print into.
5842  */"
5843       end
5845       operation 157442 "toStream"
5846         const public return_type class_ref 152194 // ostream
5847         nparams 1
5848           param inout name "flux" type class_ref 152194 // ostream
5849         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5851         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5853   ${body}}
5855         
5856         
5857         comment "/*!
5858  * \\brief Save the ${class} into a stream.
5859  * \\param flux the stream to save the ${class} into.
5860  * \\return The stream with the ${class}.
5861  */"
5862       end
5864       operation 157570 "fromStream"
5865         public return_type class_ref 152322 // istream
5866         nparams 1
5867           param inout name "flux" type class_ref 152322 // istream
5868         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5870         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5872   ${body}}
5874         
5875         
5876         comment "/*!
5877  * \\brief Restore a ${class} from a stream.
5878  * \\param flux The stream containing the ${class} to restore.
5879  * @todo call update_observers or not ?
5880  */"
5881       end
5882     end
5884     class 128898 "MyString"
5885       visibility package 
5886       cpp_decl "${description}${template}class ${name}${inherit} {
5887 ${members}};
5888 ${inlines}
5890       java_decl "${comment}${@}${public}interface ${name}${extends} {
5891 ${members}}
5893       idl_decl "${comment}${abstract}${local}interface ${name}${inherit} {
5894 ${members}};
5896       explicit_switch_type ""
5897       
5898       comment "/**
5899   * @brief the class use to store a double with an unit.
5900   */"
5901       operation 141442 "MyString"
5902         stereotype "constructor"
5903         public explicit_return_type ""
5904         nparams 0
5905         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
5907         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} :
5908   std::string()
5910   ${body}}
5912         
5913         
5914         comment "/**
5915  * @brief The default constructor.
5916  */"
5917       end
5919       operation 141570 "MyString"
5920         stereotype "constructor"
5921         public explicit_return_type ""
5922         nparams 1
5923           param in name "s" explicit_type "char"
5924         cpp_decl "    ${description}${inline}${name}${(}${t0} const * ${p0}${)}${volatile}${throw};
5926         cpp_def "${description}${inline}${class}::${name}${(}${t0} const * ${p0}${)}${volatile}${throw} :
5927   std::string(s)
5929   ${body}}
5931         
5932         
5933         comment "/**
5934  * @brief A constructor from a double
5935  */"
5936       end
5938       operation 144002 "MyString"
5939         stereotype "constructor"
5940         public explicit_return_type ""
5941         nparams 1
5942           param in name "s" type class_ref 129026 // string
5943         cpp_decl "    ${description}${inline}${name}${(}${t0} const & ${p0}${)}${volatile}${throw};
5945         cpp_def "${description}${inline}${class}::${name}${(}${t0} const & ${p0}${)}${volatile}${throw} :
5946   std::string(s)
5948   ${body}}
5950         
5951         
5952         comment "/**
5953  * @brief A constructor from a double
5954  */"
5955       end
5957       operation 144130 "MyString"
5958         stereotype "copy"
5959         public explicit_return_type ""
5960         nparams 1
5961           param in name "s" type class_ref 128898 // MyString
5962         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
5964         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
5965   std::string(s) 
5967   ${body}}
5969         
5970         
5971         comment "/**
5972  * @brief A constructor from a double
5973  */"
5974       end
5976       operation 143746 "toStream"
5977         const public return_type class_ref 152194 // ostream
5978         nparams 1
5979           param inout name "flux" type class_ref 152194 // ostream
5980         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
5982         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
5984   ${body}}
5986         
5987         
5988         comment "/**
5989  * @brief print on a stream the content of the MyString
5990  * @param flux the ostream to modify.
5991  * @return the modified ostream
5992  */"
5993       end
5995       operation 143874 "fromStream"
5996         public return_type class_ref 152322 // istream
5997         nparams 1
5998           param inout name "flux" type class_ref 152322 // istream
5999         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6001         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
6003   ${body}}
6005         
6006         
6007         comment "/**
6008  * @brief restore the content of the MyString from an istream
6009  * @param flux the istream.
6010  * @return the modified istream.
6011  * @todo problem of security here.
6012  */"
6013       end
6015       classrelation 128514 // <generalisation>
6016         relation 128514 ---|>
6017           a public
6018             cpp default "${type}"
6019             classrelation_ref 128514 // <generalisation>
6020           b multiplicity "" parent class_ref 129026 // string
6021       end
6022     end
6024     class 129154 "ObjectBase"
6025       visibility package 
6026       cpp_decl "${description}${template}class ${name}${inherit} {
6027 ${members}};
6028 ${inlines}
6030       java_decl ""
6031       idl_decl ""
6032       explicit_switch_type ""
6033       
6034       classrelation 128642 // _name (<directional aggregation by value>)
6035         relation 128642 *-->
6036           a role_name "_name" multiplicity "1" private
6037             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
6039             classrelation_ref 128642 // _name (<directional aggregation by value>)
6040           b multiplicity "" parent class_ref 128898 // MyString
6041       end
6043       classrelation 128898 // _description (<directional aggregation by value>)
6044         relation 128770 *-->
6045           a role_name "_description" multiplicity "1" private
6046             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
6048             classrelation_ref 128898 // _description (<directional aggregation by value>)
6049           b multiplicity "" parent class_ref 128898 // MyString
6050       end
6052       operation 144642 "ObjectBase"
6053         public explicit_return_type ""
6054         nparams 2
6055           param in name "name" type class_ref 129026 // string
6056           param in name "description" type class_ref 129026 // string
6057         nexceptions 1
6058           exception class_ref 128182 // HKLException
6059         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw};
6061         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw} 
6063   ${body}}
6065         
6066         
6067         comment "/**
6068  * @brief Another constructor
6069  * @param ${p0} The name of the Object
6070  * @param ${p1} The description of the Object
6071  * @throw HKLException if the name or the description is empty.
6072  */"
6073       end
6075       operation 144386 "ObjectBase"
6076         stereotype "copy"
6077         public explicit_return_type ""
6078         nparams 1
6079           param in name "source" type class_ref 129154 // ObjectBase
6080         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
6082         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
6083   _name(source._name),
6084   _description(source._description) 
6086   ${body}}
6088         
6089         
6090         comment "/**
6091  * @brief Copy constructor
6092  * @param ${p0} the ${class} to copy.
6093  */"
6094       end
6096       operation 145282 "operator=="
6097         const public explicit_return_type "bool"
6098         nparams 1
6099           param in name "object" type class_ref 129154 // ObjectBase
6100         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6102         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
6104   ${body}}
6106         
6107         
6108         comment "/**
6109  * \\brief Are two Object equals ?
6110  * \\param ${p0} the Object to compare with.
6111  * \\return true if both are equals flase otherwise.
6112  */"
6113       end
6115       operation 147714 "_get_name"
6116         const protected return_type class_ref 129026 // string
6117         nparams 0
6118         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
6120         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
6122   ${body}}
6124         
6125         
6126         comment "/**
6127  * @brief Get the name of the ${class}.
6128  * @return a string ref with the name of the ${class}.
6129  */"
6130       end
6132       operation 145410 "_set_name"
6133         protected explicit_return_type "void"
6134         nparams 1
6135           param in name "name" type class_ref 129026 // string
6136         nexceptions 1
6137           exception class_ref 128182 // HKLException
6138         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6140         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
6142   ${body}}
6144         
6145         
6146         comment "/**
6147  * @brief Set the name of the BaseObject.
6148  * @param name The new name of the BaseObject.
6149  */"
6150       end
6152       operation 147842 "_get_description"
6153         const protected return_type class_ref 129026 // string
6154         nparams 0
6155         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
6157         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
6159   ${body}}
6161         
6162         
6163         comment "/**
6164  * @brief Get the description of the ${class}.
6165  * @return a string ref with the name of the ${class}.
6166  */"
6167       end
6169       operation 145538 "_set_description"
6170         protected explicit_return_type "void"
6171         nparams 1
6172           param in name "description" type class_ref 129026 // string
6173         nexceptions 1
6174           exception class_ref 128182 // HKLException
6175         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6177         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
6179   ${body}}
6181         
6182         
6183         comment "/**
6184  * @brief Set the description of the Object.
6185  * @param description The new BaseObject description.
6186  */"
6187       end
6189       operation 145922 "printToStream"
6190         const public return_type class_ref 152194 // ostream
6191         nparams 1
6192           param inout name "flux" type class_ref 152194 // ostream
6193         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6195         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
6197   ${body}}
6199         
6200         
6201         comment "/**
6202  * @brief print the ${class} into a flux
6203  * @param ${p0} The stream to print into.
6204  * @return The modified flux.
6205  */"
6206       end
6208       operation 145666 "toStream"
6209         const public return_type class_ref 152194 // ostream
6210         nparams 1
6211           param inout name "flux" type class_ref 152194 // ostream
6212         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6214         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
6216   ${body}}
6218         
6219         
6220         comment "/**
6221  * @brief print on a stream the content of the ${class}
6222  * @param flux the ostream to modify.
6223  * @return the modified ostream
6224  */"
6225       end
6227       operation 145794 "fromStream"
6228         public return_type class_ref 152322 // istream
6229         nparams 1
6230           param inout name "flux" type class_ref 152322 // istream
6231         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6233         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
6235   ${body}}
6237         
6238         
6239         comment "/**
6240  * @brief restore the content of the ${class} from an istream
6241  * @param flux the istream.
6242  * @return the modified istream.
6243  * @todo problem of security here.
6244  */"
6245       end
6246     end
6248     class 129282 "ObjectReadOnly"
6249       visibility package 
6250       cpp_decl "${description}${template}class ${name}${inherit} {
6251 ${members}};
6252 ${inlines}
6254       java_decl ""
6255       idl_decl ""
6256       explicit_switch_type ""
6257       
6258       classrelation 129154 // <generalisation>
6259         relation 128898 ---|>
6260           a public
6261             cpp default "${type}"
6262             classrelation_ref 129154 // <generalisation>
6263           b multiplicity "" parent class_ref 129154 // ObjectBase
6264       end
6266       operation 146050 "ObjectReadOnly"
6267         public explicit_return_type ""
6268         nparams 2
6269           param in name "name" type class_ref 129026 // string
6270           param in name "description" type class_ref 129026 // string
6271         nexceptions 1
6272           exception class_ref 128182 // HKLException
6273         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw};
6275         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw} :
6276   ObjectBase(name, description) 
6278   ${body}}
6280         
6281         
6282         comment "/**
6283  * @brief The default constructor.
6284  * @param ${p0} The name of the Object
6285  * @param ${p1} The description of the Object
6286  * @throw HKLException if the name or the description is empty.
6287  */"
6288       end
6290       operation 146306 "ObjectReadOnly"
6291         stereotype "copy"
6292         public explicit_return_type ""
6293         nparams 1
6294           param in name "source" type class_ref 129282 // ObjectReadOnly
6295         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
6297         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
6298   ObjectBase(source) 
6300   ${body}}
6302         
6303         
6304         comment "/**
6305  * @brief Copy constructor
6306  * @param ${p0} the ${class} to copy.
6307  */"
6308       end
6310       operation 146434 "get_name"
6311         const public return_type class_ref 129026 // string
6312         nparams 0
6313         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
6315         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
6317   ${body}}
6319         
6320         
6321         comment "/**
6322  * @brief Get the name of the ${class}.
6323  * @return a string reference with the name of the ${class}.
6324  */"
6325       end
6327       operation 146562 "get_description"
6328         const public return_type class_ref 129026 // string
6329         nparams 0
6330         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
6332         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
6334   ${body}}
6336         
6337         
6338         comment "/**
6339  * @brief Get the description of the ${class}.
6340  * @return a string reference with the description of the ${class}.
6341  */"
6342       end
6343     end
6345     class 129410 "Object"
6346       visibility package 
6347       cpp_decl "${description}${template}class ${name}${inherit} {
6348 ${members}};
6349 ${inlines}
6351       java_decl ""
6352       idl_decl ""
6353       explicit_switch_type ""
6354       
6355       classrelation 129538 // <generalisation>
6356         relation 129282 ---|>
6357           a public
6358             cpp default "${type}"
6359             classrelation_ref 129538 // <generalisation>
6360           b multiplicity "" parent class_ref 129282 // ObjectReadOnly
6361       end
6363       operation 147330 "Object"
6364         public explicit_return_type ""
6365         nparams 0
6366         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
6368         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} :
6369   ObjectReadOnly(\"unknown\", \"unknown\") 
6371   ${body}}
6373         
6374         
6375         comment "/**
6376  * @brief The default constructor.
6377  */"
6378       end
6380       operation 146690 "Object"
6381         public explicit_return_type ""
6382         nparams 2
6383           param in name "name" type class_ref 129026 // string
6384           param in name "description" type class_ref 129026 // string
6385         nexceptions 1
6386           exception class_ref 128182 // HKLException
6387         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw};
6389         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw} :
6390   ObjectReadOnly(name, description) 
6392   ${body}}
6394         
6395         
6396         comment "/**
6397  * @brief The default constructor.
6398  * @param ${p0} The name of the ${class}
6399  * @param ${p1} The description of the ${class}
6400  * @throw HKLException if the name or the description is empty.
6401  */"
6402       end
6404       operation 146946 "Object"
6405         stereotype "copy"
6406         public explicit_return_type ""
6407         nparams 1
6408           param in name "source" type class_ref 129410 // Object
6409         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
6411         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
6412   ObjectReadOnly(source) 
6414   ${body}}
6416         
6417         
6418         comment "/**
6419  * @brief Copy constructor
6420  * @param ${p0} the ${class} to copy.
6421  */"
6422       end
6424       operation 147074 "set_name"
6425         public explicit_return_type "void"
6426         nparams 1
6427           param in name "name" type class_ref 129026 // string
6428         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6430         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
6432   ${body}}
6434         
6435         
6436         comment "/**
6437  * @brief Set the name of the ${class}.
6438  * @param ${p0}
6439  */"
6440       end
6442       operation 147458 "set_description"
6443         public explicit_return_type "void"
6444         nparams 1
6445           param in name "description" type class_ref 129026 // string
6446         nexceptions 1
6447           exception class_ref 128182 // HKLException
6448         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6450         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
6452   ${body}}
6454         
6455         
6456         comment "/**
6457  * @brief Set the name of the ${class}.
6458  * @param ${p0}
6459  */"
6460       end
6461     end
6463     class 129666 "Observable"
6464       visibility package 
6465       cpp_decl "${description}${template}class ${name}${inherit} {
6466 ${members}};
6467 ${inlines}
6469       java_decl ""
6470       idl_decl ""
6471       explicit_switch_type ""
6472       
6473       attribute 131074 "_changed"
6474         protected explicit_type "bool"
6475         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
6477         java_decl ""
6478         idl_decl ""
6479       end
6481       classrelation 129666 // _observers (<directional aggregation>)
6482         relation 129410 o-->
6483           stereotype "vector"
6484           a role_name "_observers" multiplicity "*" protected
6485             cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type} *> ${name}${value};
6487             classrelation_ref 129666 // _observers (<directional aggregation>)
6488           b multiplicity "" parent class_ref 129538 // Observer
6489       end
6491       operation 148866 "Observable"
6492         public explicit_return_type ""
6493         nparams 0
6494         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
6496         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} :
6497   _changed(false)
6499   ${body}}
6501         
6502         
6503         comment "/**
6504  * @brief The default constructor.
6505  */"
6506       end
6508       operation 148994 "add_observer"
6509         public explicit_return_type "void"
6510         nparams 1
6511           param in name "observer" type class_ref 129538 // Observer
6512         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${abstract};
6514         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}
6516   ${body}}
6518         
6519         
6520         comment "/**
6521  * @brief Add an ${t0} to the ${class}.
6522  * @param ${p0} The ${t0} pointer to add.
6523  */"
6524       end
6526       operation 149122 "del_observer"
6527         public explicit_return_type "void"
6528         nparams 1
6529           param in name "observer" type class_ref 129538 // Observer
6530         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${abstract};
6532         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}
6534   ${body}}
6536         
6537         
6538         comment "/**
6539  * @brief Delete an ${t0} from the ${class}.
6540  * @param ${p0} The ${t0} pointer to remove.
6541  */"
6542       end
6544       operation 149250 "update_observers"
6545         public explicit_return_type "void"
6546         nparams 0
6547         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
6549         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
6551   ${body}}
6553         
6554         
6555         comment "/**
6556  * @brief Update all the Observer looking for this ${class}.
6557  */"
6558       end
6560       operation 149378 "set_changed"
6561         public explicit_return_type "void"
6562         nparams 0
6563         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
6565         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
6567   ${body}}
6569         
6570         
6571         comment "/**
6572  * @brief Set the changed state of the ${class}.
6574  * If the changed state is not on, no Observer update is possible.
6575  */"
6576       end
6577     end
6579     class 129538 "Observer"
6580       abstract visibility package 
6581       cpp_decl "${description}${template}class ${name}${inherit} {
6582 ${members}};
6583 ${inlines}
6585       java_decl ""
6586       idl_decl ""
6587       explicit_switch_type ""
6588       
6589       attribute 130946 "_connected"
6590         protected explicit_type "bool"
6591         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
6593         java_decl ""
6594         idl_decl ""
6595       end
6597       operation 148354 "Observer"
6598         public explicit_return_type ""
6599         nparams 0
6600         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
6602         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} :
6603   _connected(false)
6605   ${body}}
6607         
6608         
6609       end
6611       operation 212994 "~Observer"
6612         cpp_virtual public explicit_return_type ""
6613         nparams 0
6614         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
6616         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
6618   ${body}}
6620         
6621         
6622       end
6624       operation 148226 "update"
6625         abstract cpp_virtual public explicit_return_type "void"
6626         nparams 0
6627         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
6629         
6630         
6631       end
6633       operation 148610 "connect"
6634         public explicit_return_type "void"
6635         nparams 0
6636         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
6638         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
6640   ${body}}
6642         
6643         
6644       end
6646       operation 148738 "unconnect"
6647         public explicit_return_type "void"
6648         nparams 0
6649         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
6651         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
6653   ${body}}
6655         
6656         
6657       end
6658     end
6660     class 129922 "Parameter"
6661       visibility package 
6662       cpp_decl "${description}${template}class ${name}${inherit} {
6663 ${members}};
6664 ${inlines}
6666       java_decl ""
6667       idl_decl ""
6668       explicit_switch_type ""
6669       
6670       classrelation 130434 // <generalisation>
6671         relation 130178 ---|>
6672           a public
6673             cpp default "${type}"
6674             classrelation_ref 130434 // <generalisation>
6675           b multiplicity "" parent class_ref 129282 // ObjectReadOnly
6676       end
6678       classrelation 141826 // <generalisation>
6679         relation 141442 ---|>
6680           a public
6681             cpp default "${type}"
6682             classrelation_ref 141826 // <generalisation>
6683           b multiplicity "" parent class_ref 129794 // Range
6684       end
6686       operation 152322 "Parameter"
6687         public explicit_return_type ""
6688         nparams 5
6689           param in name "name" type class_ref 129026 // string
6690           param in name "description" type class_ref 129026 // string
6691           param in name "min" type class_ref 128060 // Value
6692           param in name "current" type class_ref 128060 // Value
6693           param in name "max" type class_ref 128060 // Value
6694         nexceptions 1
6695           exception class_ref 128182 // HKLException
6696         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}, const ${t4} & ${p4}${)}${volatile}${throw};
6698         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}, const ${t4} & ${p4}${)}${volatile}${throw} :
6699    ObjectReadOnly(name, description),
6700   Range(min, current, current, max)
6702   ${body}}
6704         
6705         
6706         comment "/**
6707  * @brief The default constructor
6708  * @param ${p0} The name ${t0} of the Parameter.
6709  * @param ${p1} The description ${t1} of the Parameter.
6710  * @param ${p2} the minimum ${t2} of the Parameter.
6711  * @param ${p3} The current ${t3} of the Parameter.
6712  * @param ${p4} The maximum ${t4} of the Parameter.
6713  * @throw HKLException if the min <= current <= max is not verify.
6714  */"
6715       end
6717       operation 152706 "operator=="
6718         const public explicit_return_type "bool"
6719         nparams 1
6720           param in name "parameter" type class_ref 129922 // Parameter
6721         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6723         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
6725   ${body}}
6727         
6728         
6729         comment "/*!
6730  * \\brief Are two ${class} equals ?
6731  * \\param ${p0} the ${t0} to compare with.
6732  */
6734       end
6736       operation 152834 "printToStream"
6737         const public return_type class_ref 152194 // ostream
6738         nparams 1
6739           param inout name "flux" type class_ref 152194 // ostream
6740         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6742         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
6744   ${body}}
6746         
6747         
6748         comment "/*!
6749  * \\brief print the ${class} into a flux
6750  * \\param flux The stream to print into.
6751  */"
6752       end
6754       operation 152962 "toStream"
6755         const public return_type class_ref 152194 // ostream
6756         nparams 1
6757           param inout name "flux" type class_ref 152194 // ostream
6758         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6760         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
6762   ${body}}
6764         
6765         
6766         comment "/*!
6767  * \\brief Save the ${class} into a stream.
6768  * \\param flux the stream to save the ${class} into.
6769  * \\return The stream with the ${class}.
6770  */"
6771       end
6773       operation 153090 "fromStream"
6774         public return_type class_ref 152322 // istream
6775         nparams 1
6776           param inout name "flux" type class_ref 152322 // istream
6777         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6779         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
6781   ${body}}
6783         
6784         
6785         comment "/*!
6786  * \\brief Restore a ${class} from a stream.
6787  * \\param flux The stream containing the ${class} to restore.
6788  * @todo call update_observers or not ?
6789  */"
6790       end
6791     end
6793     class 131074 "ParameterList"
6794       visibility package 
6795       cpp_decl "${description}${template}class ${name}${inherit} {
6796 ${members}};
6797 ${inlines}
6799       java_decl ""
6800       idl_decl ""
6801       explicit_switch_type ""
6802       
6803       classrelation 131714 // _parameters (<directional aggregation>)
6804         relation 131458 o-->
6805           stereotype "vector"
6806           a role_name "_parameters" multiplicity "*" protected
6807             cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type} *> ${name}${value};
6809             classrelation_ref 131714 // _parameters (<directional aggregation>)
6810           b multiplicity "" parent class_ref 129922 // Parameter
6811       end
6813       class 144642 "iterator"
6814         visibility package stereotype "typedef" explicit_base_type "std::vector<Parameter *>::iterator"
6815         cpp_decl "${description}typedef ${type} ${name};
6817         java_decl ""
6818         idl_decl "${comment}typedef ${type} ${name};
6820         explicit_switch_type ""
6821         
6822       end
6824       class 144770 "const_iterator"
6825         visibility package stereotype "typedef" explicit_base_type "std::vector<Parameter *>::const_iterator"
6826         cpp_decl "${description}typedef ${type} ${name};
6828         java_decl ""
6829         idl_decl "${comment}typedef ${type} ${name};
6831         explicit_switch_type ""
6832         
6833       end
6835       operation 158338 "add"
6836         public explicit_return_type "bool"
6837         nparams 1
6838           param in name "parameter" type class_ref 129922 // Parameter
6839         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${abstract};
6841         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}
6843   ${body}}
6845         
6846         
6847         comment "/**
6848  * @brief Add a ${t0} to the ${class}.
6849  * @param ${p0} The ${t0} to add.
6850  */"
6851       end
6853       operation 158466 "size"
6854         const public explicit_return_type "uint"
6855         nparams 0
6856         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
6858         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
6860   ${body}}
6862         
6863         
6864         comment "/**
6865  * @brief Get the size of the ${class}.
6866  * @return the number of element in the ${class}.
6867  */"
6868       end
6870       operation 229506 "get_names"
6871         const public explicit_return_type "std::vector<std::string>"
6872         nparams 0
6873         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
6875         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
6877   ${body}}
6879         
6880         
6881       end
6883       operation 158594 "operator[]"
6884         public return_type class_ref 129922 // Parameter
6885         nparams 1
6886           param in name "name" type class_ref 129026 // string
6887         nexceptions 1
6888           exception class_ref 128182 // HKLException
6889         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6891         cpp_def "${description}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
6893   ${body}}
6895         
6896         
6897         comment "/**
6898  * @return the ${t0} * named
6899  * @param ${p0} The name of the ${t0} we are looking for in the ${class}.
6900  * @return A ${t0} pointer.
6901  * @throw HKLException if the ${t0} is not present n the ${class}.
6902  */"
6903       end
6905       operation 158722 "begin"
6906         public return_type class_ref 144642 // iterator
6907         nparams 0
6908         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
6910         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
6912   ${body}}
6914         
6915         
6916         comment "/**
6917  * @brief Get an iterator on the first element of the ${class}.
6918  * @return The iterator.
6919  */"
6920       end
6922       operation 158850 "end"
6923         public return_type class_ref 144642 // iterator
6924         nparams 0
6925         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
6927         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
6929   ${body}}
6931         
6932         
6933         comment "/**
6934  * @brief Get an iterator on the end of the ${class}.
6935  * @return The iterator.
6936  */"
6937       end
6939       operation 158978 "begin"
6940         const public return_type class_ref 144770 // const_iterator
6941         nparams 0
6942         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
6944         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
6946   ${body}}
6948         
6949         
6950         comment "/**
6951  * @brief Get an const_iterator on the first element of the ${class}.
6952  * @return The const_iterator.
6953  */"
6954       end
6956       operation 159106 "end"
6957         const public return_type class_ref 144770 // const_iterator
6958         nparams 0
6959         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
6961         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
6963   ${body}}
6965         
6966         
6967         comment "/**
6968  * @brief Get an const_iterator on the end of the ${class}.
6969  * @return The const_iterator.
6970  */"
6971       end
6973       operation 157826 "operator=="
6974         const public explicit_return_type "bool"
6975         nparams 1
6976           param in name "parameterList" type class_ref 131074 // ParameterList
6977         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6979         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
6981   ${body}}
6983         
6984         
6985         comment "/*!
6986  * \\brief Are two ${class} equals ?
6987  * \\param ${p0} the ${t0} to compare with.
6988  */
6990       end
6992       operation 157954 "printToStream"
6993         const public return_type class_ref 152194 // ostream
6994         nparams 1
6995           param inout name "flux" type class_ref 152194 // ostream
6996         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
6998         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
7000   ${body}}
7002         
7003         
7004         comment "/*!
7005  * \\brief print the ${class} into a flux
7006  * \\param flux The stream to print into.
7007  */"
7008       end
7010       operation 158082 "toStream"
7011         const public return_type class_ref 152194 // ostream
7012         nparams 1
7013           param inout name "flux" type class_ref 152194 // ostream
7014         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
7016         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
7018   ${body}}
7020         
7021         
7022         comment "/*!
7023  * \\brief Save the ${class} into a stream.
7024  * \\param flux the stream to save the ${class} into.
7025  * \\return The stream with the ${class}.
7026  */"
7027       end
7029       operation 158210 "fromStream"
7030         public return_type class_ref 152322 // istream
7031         nparams 1
7032           param inout name "flux" type class_ref 152322 // istream
7033         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
7035         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
7037   ${body}}
7039         
7040         
7041         comment "/*!
7042  * \\brief Restore a ${class} from a stream.
7043  * \\param flux The stream containing the ${class} to restore.
7044  * @todo call update_observers or not ?
7045  */"
7046       end
7047     end
7049     class 134786 "PseudoAxe"
7050       visibility package 
7051       cpp_decl "${description}${template}class ${name}${inherit} {
7052 ${members}};
7053 ${inlines}
7055       java_decl ""
7056       idl_decl ""
7057       explicit_switch_type ""
7058       
7059       classrelation 136322 // <generalisation>
7060         relation 135938 ---|>
7061           a public
7062             cpp default "${type}"
7063             classrelation_ref 136322 // <generalisation>
7064           b multiplicity "" parent class_ref 129282 // ObjectReadOnly
7065       end
7067       classrelation 181250 // <dependency>
7068         relation 178434 -_->
7069           stereotype "friend"
7070           a package
7071             cpp default "${type}"
7072             classrelation_ref 181250 // <dependency>
7073           b multiplicity "" parent class_ref 134914 // PseudoAxeEngine
7074       end
7076       attribute 149378 "min"
7077         protected type class_ref 128060 // Value
7078         cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} _${name}${value};
7080         java_decl ""
7081         idl_decl ""
7082       end
7084       attribute 140034 "read"
7085         protected type class_ref 128060 // Value
7086         cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} _${name}${value};
7088         java_decl ""
7089         idl_decl ""
7090       end
7092       attribute 140162 "write"
7093         protected type class_ref 128060 // Value
7094         cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} _${name}${value};
7096         java_decl ""
7097         idl_decl ""
7098       end
7100       attribute 149506 "max"
7101         protected type class_ref 128060 // Value
7102         cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} _${name}${value};
7104         java_decl ""
7105         idl_decl ""
7106       end
7108       classrelation 136450 // engine (<directional aggregation>)
7109         relation 136066 o-->
7110           a role_name "engine" multiplicity "1" protected
7111             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * _${name}${value};
7113             classrelation_ref 136450 // engine (<directional aggregation>)
7114           b multiplicity "" parent class_ref 134914 // PseudoAxeEngine
7115       end
7117       operation 195330 "PseudoAxe"
7118         public explicit_return_type ""
7119         nparams 3
7120           param in name "name" type class_ref 129026 // string
7121           param in name "description" type class_ref 129026 // string
7122           param inout name "engine" type class_ref 134914 // PseudoAxeEngine
7123         cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, ${t2} * ${p2}${)}${volatile}${throw};
7125         cpp_def "${comment}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, ${t2} * ${p2}${)}${volatile}${throw} :
7126   ObjectReadOnly(name, description),
7127   _engine(engine) 
7129   ${body}}
7131         
7132         
7133         comment "@brief The default constructor.
7134 @param name The name of the PseudoAxeTemp.
7135 @param description The description of the PseudoAxeTemp.
7136 @param engine The engine use to compute the pseudoAxes value.
7137 @todo be sure to be consistant with ModeTemp.
7139       end
7141       operation 229762 "relatedAxes"
7142         public explicit_return_type "AxeList"
7143         nparams 0
7144         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
7146         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7148   ${body}}
7150         
7151         
7152       end
7154       operation 195458 "initialize"
7155         public explicit_return_type "void"
7156         nparams 0
7157         nexceptions 1
7158           exception class_ref 128182 // HKLException
7159         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7161         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7163   ${body}}
7165         
7166         
7167         comment "/**
7168  * @brief Initialize the pseudoAxe.
7169  * This method must be call before using a pseudoAxe.
7170  */"
7171       end
7173       operation 195586 "uninitialize"
7174         public explicit_return_type "void"
7175         nparams 0
7176         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7178         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7180   ${body}}
7182         
7183         
7184         comment "/**
7185  * @brief uninitialize the PseudoAxe.
7186  * Uninitialize a PseudoAxe if you do not whant to use it.
7187  */"
7188       end
7190       operation 195714 "is_initialized"
7191         const public explicit_return_type "bool"
7192         nparams 0
7193         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7195         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7197   ${body}}
7199         
7200         
7201         comment "/**
7202  * @brief Get the initialized state of the PseudoAxe.
7203  * @return A bool fill with the initialized state of the PseudoAxe.
7204  */"
7205       end
7207       operation 195842 "is_readable"
7208         const public explicit_return_type "bool"
7209         nparams 0
7210         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7212         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7214   ${body}}
7216         
7217         
7218         comment "/**
7219  * @brief Get the readabled state of the PseudoAxe.
7220  * @return A bool fill with the readable state of the PseudoAxe.
7221  */"
7222       end
7224       operation 195970 "is_writable"
7225         const public explicit_return_type "bool"
7226         nparams 0
7227         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7229         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7231   ${body}}
7233         
7234         
7235         comment "/**
7236  * @brief Get the writable state of the PseudoAxe.
7237  * @return A bool fill with the writable state of the PseudoAxe.
7238  */"
7239       end
7241       operation 196098 "get_min"
7242         const public return_type class_ref 128060 // Value
7243         nparams 0
7244         nexceptions 1
7245           exception class_ref 128182 // HKLException
7246         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
7248         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7250   ${body}}
7252         
7253         
7254         comment "/**
7255  * @brief Get the min Value of the PseudoAxe.
7256  * @return A Value fill with the minimum value of the PseudoAxe.
7257  * @throw HKLException if the PseudoAxe is not readable.
7258  */"
7259       end
7261       operation 196226 "get_current"
7262         const public return_type class_ref 128060 // Value
7263         nparams 0
7264         nexceptions 1
7265           exception class_ref 128182 // HKLException
7266         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
7268         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7270   ${body}}
7272         
7273         
7274         comment "/**
7275  * @brief Get the current Value of the PseudoAxe.
7276  * @return A Value fill with the current value of the PseudoAxe.
7277  * @throw HKLException if the PseudoAxe is not readable.
7278  */"
7279       end
7281       operation 231426 "get_current_write"
7282         const public return_type class_ref 128060 // Value
7283         nparams 0
7284         nexceptions 1
7285           exception class_ref 128182 // HKLException
7286         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} const & ${name}${(}${)}${const}${volatile}${throw}${abstract};
7288         cpp_def "${comment}${inline}${type} const & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7290   ${body}}
7292         
7293         
7294         comment "@brief Get the current Value of the PseudoAxe.
7295 @return A Value fill with the current write value of the PseudoAxe.
7296 @throw HKLException if the PseudoAxe is not readable.
7298       end
7300       operation 196354 "get_max"
7301         const public return_type class_ref 128060 // Value
7302         nparams 0
7303         nexceptions 1
7304           exception class_ref 128182 // HKLException
7305         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
7307         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7309   ${body}}
7311         
7312         
7313         comment "/**
7314  * @brief Get the maximum Value of the PseudoAxe.
7315  * @return A Value fill with the maximum Value of the PseudoAxe.
7316  * @throw HKLException if the PseudoAxe is not readable.
7317  */"
7318       end
7320       operation 196482 "set_current"
7321         public explicit_return_type "void"
7322         nparams 1
7323           param in name "value" type class_ref 128060 // Value
7324         nexceptions 1
7325           exception class_ref 128182 // HKLException
7326         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
7328         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
7330   ${body}}
7332         
7333         
7334         comment "/**
7335  * @brief Set the current value of the PseudoAxe.
7336  * @param value The Value to set. 
7337  * @throw HKLException If the PseudoAxe is not writable. 
7338  * 
7339  * This method set the write part of the pseudoAxe and compute
7340  * the corresponding geometry using the engine. 
7341  */"
7342       end
7344       operation 196610 "set_engine"
7345         public explicit_return_type "void"
7346         nparams 1
7347           param inout name "engine" type class_ref 134914 // PseudoAxeEngine
7348         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${abstract};
7350         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}
7352   ${body}}
7354         
7355         
7356         comment "/**
7357  * @brief Set the engine use by the PseudoAxe.
7358  * @param engine The engine to set.
7360  * This method is only use by the DerivedPseudoAxeEngine to modify
7361  * the engine part of the PseudoAxe.
7362  */"
7363       end
7365       operation 229890 "set_write_from_read"
7366         public explicit_return_type "void"
7367         nparams 0
7368         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7370         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7372   ${body}}
7374         
7375         
7376       end
7378       operation 196738 "parameters"
7379         public return_type class_ref 131074 // ParameterList
7380         nparams 0
7381         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
7383         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7385   ${body}}
7387         
7388         
7389       end
7391       operation 196866 "operator=="
7392         const public explicit_return_type "bool"
7393         nparams 1
7394           param in name "pseudoAxe" type class_ref 134786 // PseudoAxe
7395         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
7397         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
7399   ${body}}
7401         
7402         
7403         comment "/**
7404  * \\brief Are two ${class} equals ?
7405  * \\param ${p0} the ${t0} to compare with.
7406  * \\return true if both are equals flase otherwise.
7407  */"
7408       end
7410       operation 196994 "printToStream"
7411         const public return_type class_ref 152194 // ostream
7412         nparams 1
7413           param inout name "flux" type class_ref 152194 // ostream
7414         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
7416         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
7418   ${body}}
7420         
7421         
7422         comment "/**
7423  * @brief print the ${class} into a flux
7424  * @param ${p0} The stream to print into.
7425  * @return The modified flux.
7426  */"
7427       end
7428     end
7430     class 134914 "PseudoAxeEngine"
7431       abstract visibility package 
7432       cpp_decl "${description}${template}class ${name}${inherit} {
7433 ${members}};
7434 ${inlines}
7436       java_decl ""
7437       idl_decl ""
7438       explicit_switch_type ""
7439       
7440       classrelation 135682 // <generalisation>
7441         relation 135298 ---|>
7442           a public
7443             cpp default "${type}"
7444             classrelation_ref 135682 // <generalisation>
7445           b multiplicity "" parent class_ref 131202 // HKLObject
7446       end
7448       operation 197122 "PseudoAxeEngine"
7449         protected explicit_return_type ""
7450         nparams 0
7451         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
7453         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} :
7454   HKLObject(\"engine\", \"engine\") 
7456   ${body}}
7458         
7459         
7460       end
7462       operation 197250 "~PseudoAxeEngine"
7463         cpp_virtual public explicit_return_type ""
7464         nparams 0
7465         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
7467         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
7469   ${body}}
7471         
7472         
7473         comment "/**
7474  * @brief The default destructor.
7475  */"
7476       end
7478       operation 197378 "relatedAxes"
7479         abstract cpp_virtual public explicit_return_type "AxeList"
7480         nparams 0
7481         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
7483         
7484         
7485         comment "/**
7486  * @brief Get the related axes of the PseudoAxeEngine.
7487  * @return The related axes of the PseudoAxeEngine.
7488  */"
7489       end
7491       operation 197506 "pseudoAxes"
7492         abstract cpp_virtual public return_type class_ref 135042 // PseudoAxeList
7493         nparams 0
7494         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
7496         
7497         
7498         comment "/**
7499  * @brief Get the PseudoAxeList axes of the PseudoAxeEngine.
7500  * @return The PseudoAxeList axes of the PseudoAxeEngine.
7501  */"
7502       end
7504       operation 197634 "is_initialized"
7505         abstract const cpp_virtual public explicit_return_type "bool"
7506         nparams 0
7507         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7509         
7510         
7511         comment "/**
7512  * @brief Get the initialization state of the pseudoAxe.
7513  */"
7514       end
7516       operation 197762 "is_readable"
7517         abstract const cpp_virtual public explicit_return_type "bool"
7518         nparams 0
7519         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7521         
7522         
7523         comment "/**
7524  * @brief Get the readable state of the pseudoAxe
7525  * During the get_value and set_value method, the peusoAxe can be set unreadable.
7526  */"
7527       end
7529       operation 197890 "is_writable"
7530         abstract const cpp_virtual public explicit_return_type "bool"
7531         nparams 0
7532         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7534         
7535         
7536         comment "/**
7537  * @brief Get the writable state of the pseudoAxe.
7538  * During the get_value and set_value method, the peusoAxe can be set unwritable.
7539  */"
7540       end
7542       operation 198018 "initialize"
7543         abstract cpp_virtual public explicit_return_type "void"
7544         nparams 0
7545         nexceptions 1
7546           exception class_ref 128182 // HKLException
7547         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7549         
7550         
7551         comment "/**
7552  * @brief Initialize the pseudoAxe.
7554  * This method must be call before using a pseudoAxe.
7555  */"
7556       end
7558       operation 198146 "uninitialize"
7559         abstract cpp_virtual public explicit_return_type "void"
7560         nparams 0
7561         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7563         
7564         
7565         comment "/**
7566  * @brief Un-Initialize the pseudoAxe.
7567  * This method must be call to un-initialize a pseudoAxe.
7568  */"
7569       end
7571       operation 198274 "set"
7572         abstract cpp_virtual public explicit_return_type "void"
7573         nparams 0
7574         nexceptions 1
7575           exception class_ref 128182 // HKLException
7576         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7578         
7579         
7580         comment "/**
7581  * @brief set the current value of the PseudoAxe.
7582  * @throw HKLException if the pseudoAxe is not ready to be set.
7583  */"
7584       end
7586       operation 257154 "set_pseudoAxe_read_part"
7587         protected explicit_return_type "void"
7588         nparams 4
7589           param inout name "pseudoAxe" type class_ref 134786 // PseudoAxe
7590           param in name "min" explicit_type "double"
7591           param in name "current" explicit_type "double"
7592           param inout name "max" explicit_type "double"
7593         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} & ${p3}${)}${const}${volatile}${throw}${abstract};
7595         cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} & ${p3}${)}${const}${volatile}${throw}${staticnl}
7597   ${body}}
7599         
7600         
7601         comment "@brief Set the read part of a PseudoAxe without calling the set methode of the engine
7602 @param ${p0} the ${t0} to set
7603 @param ${p1} the minimum value to set
7604 @param ${p2} the current value to set
7605 @param ${p3} The maximum value to set"
7606       end
7607     end
7609     class 135426 "PseudoAxeEngineList"
7610       visibility package 
7611       cpp_decl "${description}${template}class ${name}${inherit} {
7612 ${members}};
7613 ${inlines}
7615       java_decl ""
7616       idl_decl ""
7617       explicit_switch_type ""
7618       
7619       classrelation 137346 // _pseudoAxeEngines (<directional aggregation>)
7620         relation 136962 o-->
7621           stereotype "vector"
7622           a role_name "_pseudoAxeEngines" multiplicity "*" protected
7623             cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type} *> ${name}${value};
7625             classrelation_ref 137346 // _pseudoAxeEngines (<directional aggregation>)
7626           b multiplicity "" parent class_ref 134914 // PseudoAxeEngine
7627       end
7629       classrelation 137218 // _pseudoAxes (<directional aggregation by value>)
7630         relation 136834 *-->
7631           a role_name "_pseudoAxes" multiplicity "1" protected
7632             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
7634             classrelation_ref 137218 // _pseudoAxes (<directional aggregation by value>)
7635           b multiplicity "" parent class_ref 135042 // PseudoAxeList
7636       end
7638       operation 203010 "pseudoAxes"
7639         public return_type class_ref 135042 // PseudoAxeList
7640         nparams 0
7641         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
7643         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7645   ${body}}
7647         
7648         
7649       end
7651       operation 203138 "push_back"
7652         public explicit_return_type "void"
7653         nparams 1
7654           param in name "pseudoAxeEngine" type class_ref 134914 // PseudoAxeEngine
7655         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${abstract};
7657         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}
7659   ${body}}
7661         
7662         
7663       end
7665       operation 203394 "clear"
7666         public explicit_return_type "void"
7667         nparams 0
7668         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7670         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7672   ${body}}
7674         
7675         
7676       end
7678       operation 202370 "operator=="
7679         const public explicit_return_type "bool"
7680         nparams 1
7681           param in name "pseudoAxeEngineList" type class_ref 135426 // PseudoAxeEngineList
7682         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
7684         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
7686   ${body}}
7688         
7689         
7690         comment "/**
7691  * \\brief Are two ${class} equals ?
7692  * \\param ${p0} the ${t0} to compare with.
7693  * \\return true if both are equals flase otherwise.
7694  */"
7695       end
7697       operation 202498 "printToStream"
7698         const public return_type class_ref 152194 // ostream
7699         nparams 1
7700           param inout name "flux" type class_ref 152194 // ostream
7701         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
7703         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
7705   ${body}}
7707         
7708         
7709         comment "/**
7710  * @brief print the ${class} into a flux
7711  * @param ${p0} The stream to print into.
7712  * @return The modified flux.
7713  */"
7714       end
7716       operation 202626 "toStream"
7717         const public return_type class_ref 152194 // ostream
7718         nparams 1
7719           param inout name "flux" type class_ref 152194 // ostream
7720         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
7722         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
7724   ${body}}
7726         
7727         
7728         comment "/**
7729  * @brief print on a stream the content of the ${class}
7730  * @param flux the ostream to modify.
7731  * @return the modified ostream
7732  */"
7733       end
7735       operation 202754 "fromStream"
7736         public return_type class_ref 152322 // istream
7737         nparams 1
7738           param inout name "flux" type class_ref 152322 // istream
7739         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
7741         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
7743   ${body}}
7745         
7746         
7747         comment "/**
7748  * @brief restore the content of the ${class} from an istream
7749  * @param flux the istream.
7750  * @return the modified istream.
7751  * @todo problem of security here.
7752  */"
7753       end
7754     end
7756     class 135170 "PseudoAxeEngineTemp"
7757       visibility package 
7758       nformals 1
7759       formal name "T" type "class" explicit_default_value ""
7760         explicit_extends ""
7761       cpp_decl "${description}${template}class ${name}${inherit} {
7762 ${members}};
7763 ${inlines}
7765       java_decl ""
7766       idl_decl ""
7767       explicit_switch_type ""
7768       
7769       classrelation 135810 // <generalisation>
7770         relation 135426 ---|>
7771           a public
7772             cpp default "${type}"
7773             classrelation_ref 135810 // <generalisation>
7774           b multiplicity "" parent class_ref 134914 // PseudoAxeEngine
7775       end
7777       classrelation 135938 // <generalisation>
7778         relation 135554 ---|>
7779           a public
7780             cpp default "${type}"
7781             classrelation_ref 135938 // <generalisation>
7782           b multiplicity "" parent class_ref 129538 // Observer
7783       end
7785       attribute 144130 "relatedAxes"
7786         protected type class_ref 145410 // AxeList
7787         cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} _${name}${value};
7789         java_decl ""
7790         idl_decl ""
7791       end
7793       attribute 139522 "geometry"
7794         protected explicit_type "T"
7795         cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} & _${name}${value};
7797         java_decl ""
7798         idl_decl ""
7799       end
7801       attribute 139650 "initialized"
7802         protected explicit_type "bool"
7803         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} _${name}${value};
7805         java_decl ""
7806         idl_decl ""
7807       end
7809       attribute 139778 "readable"
7810         protected explicit_type "bool"
7811         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} _${name}${value};
7813         java_decl ""
7814         idl_decl ""
7815       end
7817       attribute 139906 "writable"
7818         protected explicit_type "bool"
7819         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} _${name}${value};
7821         java_decl ""
7822         idl_decl ""
7823       end
7825       classrelation 136194 // pseudoAxes (<directional aggregation by value>)
7826         relation 135810 *-->
7827           a role_name "pseudoAxes" multiplicity "1" protected
7828             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} _${name}${value};
7830             classrelation_ref 136194 // pseudoAxes (<directional aggregation by value>)
7831           b multiplicity "" parent class_ref 135042 // PseudoAxeList
7832       end
7834       class 135298 "value_type"
7835         visibility package stereotype "typedef" explicit_base_type "T"
7836         cpp_decl "${description}typedef ${type} ${name};
7838         java_decl ""
7839         idl_decl "${comment}typedef ${type} ${name};
7841         explicit_switch_type ""
7842         
7843       end
7845       operation 198402 "PseudoAxeEngineTemp"
7846         protected explicit_return_type ""
7847         nparams 4
7848           param inout name "geometry" explicit_type "T"
7849           param in name "initialized" explicit_type "bool"
7850           param in name "readable" explicit_type "bool"
7851           param in name "writable" explicit_type "bool"
7852         cpp_decl "    ${description}${inline}${name}${(}${t0} & ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} ${p3}${)}${volatile}${throw};
7854         cpp_def "${description}${inline}${class}::${name}${(}${t0} & ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} ${p3}${)}${volatile}${throw} :
7855   PseudoAxeEngine(),
7856   Observer(),
7857   _geometry(geometry),
7858   _initialized(initialized),
7859   _readable(readable),
7860   _writable(writable)
7862   ${body}}
7864         
7865         
7866         comment "/**
7867  * @brief The default constructor.
7868  * @param geometry The Geometry use to compute the pseudoAxes values.
7869  * @param initialized the initial state of the PseudoAxeEngine.
7870  * @param readable The initial readable state of the PseudoAxeEngine.
7871  * @param writable The initial writable state of the PseudoAxeEngine.
7872  * @todo be sure to be consistant with ModeTemp.
7873  */"
7874       end
7876       operation 198530 "~PseudoAxeEngineTemp"
7877         cpp_virtual public explicit_return_type ""
7878         nparams 0
7879         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
7881         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
7883   ${body}}
7885         
7886         
7887       end
7889       operation 198658 "is_initialized"
7890         const cpp_virtual public explicit_return_type "bool"
7891         nparams 0
7892         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7894         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7896   ${body}}
7898         
7899         
7900         comment "/**
7901  * @brief Get the initialization state of the pseudoAxe.
7902  */"
7903       end
7905       operation 198914 "is_readable"
7906         const cpp_virtual public explicit_return_type "bool"
7907         nparams 0
7908         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7910         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7912   ${body}}
7914         
7915         
7916         comment "/**
7917  * @brief Get the readable state of the pseudoAxe
7918  * During the get_value and set_value method, the peusoAxe can be set unreadable.
7919  */"
7920       end
7922       operation 199042 "is_writable"
7923         const cpp_virtual public explicit_return_type "bool"
7924         nparams 0
7925         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7927         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7929   ${body}}
7931         
7932         
7933         comment "/**
7934  * @brief Get the writable state of the pseudoAxe.
7935  * During the get_value and set_value method, the peusoAxe can be set unwritable.
7936  */"
7937       end
7939       operation 202882 "pseudoAxes"
7940         cpp_virtual public return_type class_ref 135042 // PseudoAxeList
7941         nparams 0
7942         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
7944         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7946   ${body}}
7948         
7949         
7950         comment "/**
7951  * @brief Get the PseudoAxeList axes of the PseudoAxeEngine.
7952  * @return The PseudoAxeList axes of the PseudoAxeEngine.
7953  */"
7954       end
7956       operation 199170 "relatedAxes"
7957         cpp_virtual public explicit_return_type "AxeList"
7958         nparams 0
7959         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
7961         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7963   ${body}}
7965         
7966         
7967         comment "/**
7968  * @brief Get the related axes of the PseudoAxeEngine.
7969  * @return The related axes of the PseudoAxeEngine.
7970  */"
7971       end
7973       operation 199426 "uninitialize"
7974         cpp_virtual public explicit_return_type "void"
7975         nparams 0
7976         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
7978         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
7980   ${body}}
7982         
7983         
7984         comment "/**
7985  * @brief Un-Initialize the pseudoAxe.
7986  * This method must be call to un-initialize a pseudoAxe.
7987  */"
7988       end
7990       operation 199554 "operator=="
7991         const public explicit_return_type "bool"
7992         nparams 1
7993           param in name "pseudoAxeEngineTemp" type class_ref 135170 // PseudoAxeEngineTemp
7994         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
7996         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
7998   ${body}}
8000         
8001         
8002         comment "/**
8003  * \\brief Are two ${class} equals ?
8004  * \\param ${p0} the ${t0} to compare with.
8005  * \\return true if both are equals flase otherwise.
8006  */"
8007       end
8009       operation 199682 "printToStream"
8010         const public return_type class_ref 152194 // ostream
8011         nparams 1
8012           param inout name "flux" type class_ref 152194 // ostream
8013         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
8015         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
8017   ${body}}
8019         
8020         
8021         comment "/**
8022  * @brief print the ${class} into a flux
8023  * @param ${p0} The stream to print into.
8024  * @return The modified flux.
8025  */"
8026       end
8028       operation 199810 "toStream"
8029         const public return_type class_ref 152194 // ostream
8030         nparams 1
8031           param inout name "flux" type class_ref 152194 // ostream
8032         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
8034         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
8036   ${body}}
8038         
8039         
8040         comment "/**
8041  * @brief print on a stream the content of the ${class}
8042  * @param flux the ostream to modify.
8043  * @return the modified ostream
8044  */"
8045       end
8047       operation 199938 "fromStream"
8048         public return_type class_ref 152322 // istream
8049         nparams 1
8050           param inout name "flux" type class_ref 152322 // istream
8051         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
8053         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
8055   ${body}}
8057         
8058         
8059         comment "/**
8060  * @brief restore the content of the ${class} from an istream
8061  * @param flux the istream.
8062  * @return the modified istream.
8063  * @todo problem of security here.
8064  */"
8065       end
8066     end
8068     class 144898 "PseudoAxeEngineWithSampleTemp"
8069       visibility package 
8070       nformals 1
8071       formal name "T" type "class" explicit_default_value ""
8072         explicit_extends ""
8073       nactuals 1
8074       actual class class_ref 135170 // PseudoAxeEngineTemp
8075         rank 0 explicit_value "T"
8076       cpp_decl "${description}${template}class ${name}${inherit} {
8077 ${members}};
8078 ${inlines}
8080       java_decl ""
8081       idl_decl ""
8082       explicit_switch_type ""
8083       
8084       classrelation 162050 // <generalisation>
8085         relation 161666 ---|>
8086           a public
8087             cpp default "${type}"
8088             classrelation_ref 162050 // <generalisation>
8089           b multiplicity "" parent class_ref 135170 // PseudoAxeEngineTemp
8090       end
8092       classrelation 162178 // samples (<directional aggregation>)
8093         relation 161794 o-->
8094           a role_name "samples" multiplicity "" protected
8095             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * & _${name}${value};
8097             classrelation_ref 162178 // samples (<directional aggregation>)
8098           b multiplicity "" parent class_ref 134402 // SampleList
8099       end
8101       operation 231810 "PseudoAxeEngineWithSampleTemp"
8102         public explicit_return_type ""
8103         nparams 5
8104           param inout name "geometry" explicit_type "T"
8105           param inout name "samples" type class_ref 134402 // SampleList
8106           param in name "initialized" explicit_type "bool"
8107           param in name "readable" explicit_type "bool"
8108           param in name "writable" explicit_type "bool"
8109         cpp_decl "    ${description}${inline}${name}${(}${t0} & ${p0}, ${t1} *& ${p1}, ${t2} ${p2}, ${t3} ${p3}, ${t4} ${p4}${)}${volatile}${throw};
8111         cpp_def "${description}${inline}${class}::${name}${(}${t0} & ${p0}, ${t1} *& ${p1}, ${t2} ${p2}, ${t3} ${p3}, ${t4} ${p4}${)}${volatile}${throw} :
8112   hkl::PseudoAxeEngineTemp<T>(geometry, initialized, readable, writable),
8113   _samples(samples)  
8115   ${body}}
8117         
8118         
8119       end
8121       operation 231938 "~PseudoAxeEngineWithSampleTemp"
8122         cpp_virtual public explicit_return_type ""
8123         nparams 0
8124         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
8126         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
8128   ${body}}
8130         
8131         
8132       end
8133     end
8135     class 135042 "PseudoAxeList"
8136       visibility package 
8137       cpp_decl "${description}${template}class ${name}${inherit} {
8138 ${members}};
8139 ${inlines}
8141       java_decl ""
8142       idl_decl "${comment}typedef ${type} ${name};
8144       explicit_switch_type ""
8145       
8146       classrelation 137474 // _pseudoAxes (<directional aggregation>)
8147         relation 137090 o-->
8148           stereotype "vector"
8149           a role_name "_pseudoAxes" multiplicity "*" protected
8150             cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type} *> ${name}${value};
8152             classrelation_ref 137474 // _pseudoAxes (<directional aggregation>)
8153           b multiplicity "" parent class_ref 134786 // PseudoAxe
8154       end
8156       class 135938 "iterator"
8157         visibility package stereotype "typedef" base_type class_ref 134786 // PseudoAxe
8158         cpp_decl "${description}typedef std::vector<${type}*>::iterator ${name};
8160         java_decl ""
8161         idl_decl "${comment}typedef ${type} ${name};
8163         explicit_switch_type ""
8164         
8165       end
8167       class 136066 "const_iterator"
8168         visibility package stereotype "typedef" base_type class_ref 134786 // PseudoAxe
8169         cpp_decl "${description}typedef std::vector<${type}*>::const_iterator ${name};
8171         java_decl ""
8172         idl_decl "${comment}typedef ${type} ${name};
8174         explicit_switch_type ""
8175         
8176       end
8178       operation 203522 "push_back"
8179         public explicit_return_type "void"
8180         nparams 1
8181           param inout name "pseudoAxe" type class_ref 134786 // PseudoAxe
8182         nexceptions 1
8183           exception class_ref 128182 // HKLException
8184         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${abstract};
8186         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}
8188   ${body}}
8190         
8191         
8192       end
8194       operation 203650 "begin"
8195         public explicit_return_type "PseudoAxeList::iterator"
8196         nparams 0
8197         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
8199         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8201   ${body}}
8203         
8204         
8205       end
8207       operation 203778 "end"
8208         public explicit_return_type "PseudoAxeList::iterator"
8209         nparams 0
8210         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
8212         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8214   ${body}}
8216         
8217         
8218       end
8220       operation 203906 "begin"
8221         const public explicit_return_type "PseudoAxeList::const_iterator"
8222         nparams 0
8223         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
8225         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8227   ${body}}
8229         
8230         
8231       end
8233       operation 204034 "end"
8234         const public explicit_return_type "PseudoAxeList::const_iterator"
8235         nparams 0
8236         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
8238         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8240   ${body}}
8242         
8243         
8244       end
8246       operation 211202 "get_names"
8247         const public explicit_return_type "std::vector<std::string>"
8248         nparams 0
8249         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
8251         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8253   ${body}}
8255         
8256         
8257         comment "/**
8258  * @brief Get all the names of the PseudoAxes in the ${class}
8259  */"
8260       end
8262       operation 211074 "operator[]"
8263         public return_type class_ref 134786 // PseudoAxe
8264         nparams 1
8265           param in name "name" type class_ref 129026 // string
8266         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
8268         cpp_def "${description}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
8270   ${body}}
8272         
8273         
8274         comment "/**
8275  * @brief Get an element of the ${class}.
8276  * @param ${p0} The name of the PseudoAxe to find.
8277  * @return A pointer on the PseudoAxe or NULL if the pseudoAxe is not present in the ${class}
8278  */"
8279       end
8281       operation 231682 "size"
8282         const public explicit_return_type "uint"
8283         nparams 0
8284         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
8286         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8288   ${body}}
8290         
8291         
8292         comment "/**
8293  * @brief Get the size of the ${class}.
8294  * @return the number of element in the ${class}.
8295  */"
8296       end
8298       operation 204162 "clear"
8299         public explicit_return_type "void"
8300         nparams 0
8301         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
8303         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8305   ${body}}
8307         
8308         
8309       end
8311       operation 230274 "set_write_from_read"
8312         public explicit_return_type "void"
8313         nparams 0
8314         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
8316         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8318   ${body}}
8320         
8321         
8322       end
8324       operation 231554 "printToStream"
8325         const public return_type class_ref 152194 // ostream
8326         nparams 1
8327           param inout name "flux" type class_ref 152194 // ostream
8328         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
8330         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
8332   ${body}}
8334         
8335         
8336         comment "/*!
8337  * \\brief print the ${class} into a flux
8338  * \\param flux The stream to print into.
8339  */"
8340       end
8341     end
8343     class 128770 "Quaternion"
8344       visibility package 
8345       cpp_decl "${comment}${template}class ${name}${inherit} {
8346   friend class smatrix;
8347 ${members}};
8348 ${inlines}
8350       java_decl ""
8351       idl_decl ""
8352       explicit_switch_type ""
8353       
8354       comment "@todo Add the set unit Test"
8355       attribute 130434 "_a"
8356         protected explicit_type "double"
8357         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
8359         java_decl ""
8360         idl_decl ""
8361       end
8363       attribute 130562 "_b"
8364         protected explicit_type "double"
8365         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
8367         java_decl ""
8368         idl_decl ""
8369       end
8371       attribute 130690 "_c"
8372         protected explicit_type "double"
8373         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
8375         java_decl ""
8376         idl_decl ""
8377       end
8379       attribute 130818 "_d"
8380         protected explicit_type "double"
8381         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
8383         java_decl ""
8384         idl_decl ""
8385       end
8387       operation 135682 "Quaternion"
8388         stereotype "constructor"
8389         public explicit_return_type ""
8390         nparams 0
8391         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
8393         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} :
8394   _a(1),
8395   _b(0),
8396   _c(0),
8397   _d(0)
8399   ${body}}
8401         
8402         
8403         comment " /*!
8404   * \\brief Default constructor
8405   * 
8406   * Create a new quaternion and set all its components to 0.0
8407   */"
8408       end
8410       operation 135810 "Quaternion"
8411         stereotype "constructor"
8412         public explicit_return_type ""
8413         nparams 4
8414           param in name "a" explicit_type "double"
8415           param in name "b" explicit_type "double"
8416           param in name "c" explicit_type "double"
8417           param in name "d" explicit_type "double"
8418         cpp_decl "    ${description}${inline}${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} ${p3}${)}${volatile}${throw};
8420         cpp_def "${description}${inline}${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} ${p3}${)}${volatile}${throw} :
8421   _a(a),
8422   _b(b),
8423   _c(c),
8424   _d(d) 
8426   ${body}}
8428         
8429         
8430         comment "/*!
8431  * \\brief This constructor creates a quaternion and populates it
8432  * \\param a
8433  * \\param b
8434  * \\param c
8435  * \\param d
8436  * 
8437  * Create a new quaternion with a, b, c and d as coordinates.
8438  */"
8439       end
8441       operation 140034 "Quaternion"
8442         stereotype "constructor"
8443         public explicit_return_type ""
8444         nparams 1
8445           param in name "v" type class_ref 128002 // svector
8446         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
8448         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} 
8450   ${body}}
8452         
8453         
8454         comment "/*!
8455  * \\brief This constructor creates a quaternion and populates it
8456  * \\param v
8457  * 
8458  * Create a new quaternion from a svector.
8459  */"
8460       end
8462       operation 140162 "Quaternion"
8463         stereotype "constructor"
8464         public explicit_return_type ""
8465         nparams 2
8466           param in name "angle" explicit_type "double"
8467           param in name "v" type class_ref 128002 // svector
8468         cpp_decl "    ${description}${inline}${name}${(}${t0} ${p0}, const ${t1} & ${p1}${)}${volatile}${throw};
8470         cpp_def "${description}${inline}${class}::${name}${(}${t0} ${p0}, const ${t1} & ${p1}${)}${volatile}${throw} 
8472   ${body}}
8474         
8475         
8476         comment "/*!
8477  * \\brief This constructor creates a quaternion from an angle and a vector
8478  * \\param angle the rotation angle.
8479  * \\param v the axe of the rotation.
8480  */"
8481       end
8483       operation 135938 "Quaternion"
8484         stereotype "copy"
8485         public explicit_return_type ""
8486         nparams 1
8487           param in name "source" type class_ref 128770 // Quaternion
8488         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
8490         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
8491   _a(source._a),
8492   _b(source._b),
8493   _c(source._c),
8494   _d(source._d)
8496   ${body}}
8498         
8499         
8500         comment "/*!
8501  * \\brief Copy constructor.
8502  * \\param q The Quaternion to copy from.
8503  */"
8504       end
8506       operation 237058 "set"
8507         public explicit_return_type "void"
8508         nparams 4
8509           param in name "a" explicit_type "double"
8510           param in name "b" explicit_type "double"
8511           param in name "c" explicit_type "double"
8512           param in name "d" explicit_type "double"
8513         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} ${p3}${)}${const}${volatile}${throw}${abstract};
8515         cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} ${p3}${)}${const}${volatile}${throw}${staticnl}
8517   ${body}}
8519         
8520         
8521         comment "@brief Set the Quaternion parameters
8522 @param ${p0} The 1st element.
8523 @param ${p1} The 2nd element.
8524 @param ${p2} The 3rd element.
8525 @param ${p3} The 4th element."
8526       end
8528       operation 136322 "a"
8529         public explicit_return_type "double"
8530         nparams 0
8531         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
8533         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8535   ${body}}
8537         
8538         
8539       end
8541       operation 136450 "b"
8542         public explicit_return_type "double"
8543         nparams 0
8544         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
8546         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8548   ${body}}
8550         
8551         
8552       end
8554       operation 136578 "c"
8555         public explicit_return_type "double"
8556         nparams 0
8557         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
8559         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8561   ${body}}
8563         
8564         
8565       end
8567       operation 140290 "d"
8568         public explicit_return_type "double"
8569         nparams 0
8570         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
8572         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8574   ${body}}
8576         
8577         
8578       end
8580       operation 136706 "a"
8581         const public explicit_return_type "double"
8582         nparams 0
8583         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} const & ${name}${(}${)}${const}${volatile}${throw}${abstract};
8585         cpp_def "${description}${inline}${type} const & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8587   ${body}}
8589         
8590         
8591       end
8593       operation 136834 "b"
8594         const public explicit_return_type "double"
8595         nparams 0
8596         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} const & ${name}${(}${)}${const}${volatile}${throw}${abstract};
8598         cpp_def "${description}${inline}${type} const & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8600   ${body}}
8602         
8603         
8604       end
8606       operation 136962 "c"
8607         const public explicit_return_type "double"
8608         nparams 0
8609         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} const & ${name}${(}${)}${const}${volatile}${throw}${abstract};
8611         cpp_def "${description}${inline}${type} const & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8613   ${body}}
8615         
8616         
8617       end
8619       operation 140418 "d"
8620         const public explicit_return_type "double"
8621         nparams 0
8622         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} const & ${name}${(}${)}${const}${volatile}${throw}${abstract};
8624         cpp_def "${description}${inline}${type} const & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8626   ${body}}
8628         
8629         
8630       end
8632       operation 137090 "operator=="
8633         const public explicit_return_type "bool"
8634         nparams 1
8635           param in name "q" type class_ref 128770 // Quaternion
8636         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
8638         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
8640   ${body}}
8642         
8643         
8644       end
8646       operation 141186 "operator+="
8647         public return_type class_ref 128770 // Quaternion
8648         nparams 1
8649           param in name "q" type class_ref 128770 // Quaternion
8650         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
8652         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
8654   ${body}}
8656         
8657         
8658         comment "/*!
8659  * \\brief Add a Quaternion to another one.
8660  * \\param q The Quaternion to add.
8661  * \\return A reference to the Quaternion which was added.
8662  */"
8663       end
8665       operation 141314 "operator-="
8666         public return_type class_ref 128770 // Quaternion
8667         nparams 1
8668           param in name "q" type class_ref 128770 // Quaternion
8669         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
8671         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
8673   ${body}}
8675         
8676         
8677         comment "/*!
8678  * \\brief Substract a Quaternion to another one.
8679  * \\param q The Quaternion to substract.
8680  * \\return A reference to the Quaternion which was substracted.
8681  */"
8682       end
8684       operation 137218 "operator*="
8685         public return_type class_ref 128770 // Quaternion
8686         nparams 1
8687           param in name "q" type class_ref 128770 // Quaternion
8688         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
8690         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
8692   ${body}}
8694         
8695         
8696         comment "/*!
8697  * \\brief Multiply a Quaternion to another one.
8698  * \\param q The Quaternion to multiply.
8699  * \\return A reference to the Quaternion which was multiplyed.
8700  */"
8701       end
8703       operation 137602 "operator/="
8704         public return_type class_ref 128770 // Quaternion
8705         nparams 1
8706           param in name "d" explicit_type "double"
8707         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
8709         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
8711   ${body}}
8713         
8714         
8715         comment "/*!
8716  * \\brief Divide a Quaternion by a double.
8717  * \\param d The double to divide by.
8718  * \\return A reference to the Quaternion which was modified.
8719  */"
8720       end
8722       operation 138626 "norm2"
8723         const public explicit_return_type "double"
8724         nparams 0
8725         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
8727         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8729   ${body}}
8731         
8732         
8733         comment "/*!
8734  * \\brief Compute de norm of the Quaternion.
8735  * \\return The norme of the Quaternion.
8736  */"
8737       end
8739       operation 140546 "conjugate"
8740         const public return_type class_ref 128770 // Quaternion
8741         nparams 0
8742         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
8744         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8746   ${body}}
8748         
8749         
8750         comment "/*!
8751  * \\brief Compute the conjugated Quaternion.
8752  * \\return The conjugate Quaternion.
8753  */"
8754       end
8756       operation 140674 "dotProduct"
8757         const public explicit_return_type "double"
8758         nparams 1
8759           param in name "q" type class_ref 128770 // Quaternion
8760         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
8762         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
8764   ${body}}
8766         
8767         
8768         comment "/*!
8769  * \\brief Compute the dot product of a Quaternion.
8770  * \\param q The Quaternion.
8771  * \\return The dot Product.
8772  */"
8773       end
8775       operation 140802 "invert"
8776         const public return_type class_ref 128770 // Quaternion
8777         nparams 0
8778         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
8780         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8782   ${body}}
8784         
8785         
8786         comment "/*!
8787  * \\brief Compute the invert Quaternion.
8788  * \\return The invert Quaternion.
8789  */"
8790       end
8792       operation 140930 "asMatrix"
8793         const public return_type class_ref 128514 // smatrix
8794         nparams 0
8795         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
8797         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8799   ${body}}
8801         
8802         
8803         comment "/*!
8804  * \\brief Compute the rotation matrix of a Quaternion.
8805  * \\return The rotation matrix of a Quaternion.
8807  * to convert a quaternion to a Matrix:
8808  * \\f$ q = a + b \\cdot i + c \\cdot j + d \\cdot k \\f$
8809  * 
8810  * \\f$
8811  * \\left(
8812  *   \\begin{array}{ccc}
8813  *     a^2+b^2-c^2-d^2 & 2bc-2ad         & 2ac+2bd\\\\
8814  *     2ad+2bc         & a^2-b^2+c^2-d^2 & 2cd-2ab\\\\
8815  *     2bd-2ac         & 2ab+2cd         & a^2-b^2-c^2+d^2
8816  *   \\end{array}
8817  * \\right)
8818  * \\f$
8819  */"
8820       end
8822       operation 137858 "getAngleAndAxe"
8823         const public explicit_return_type "void"
8824         nparams 2
8825           param inout name "angle" explicit_type "double"
8826           param inout name "axe" type class_ref 128002 // svector
8827         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}, ${t1} & ${p1}${)}${const}${volatile}${throw}${abstract};
8829         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} & ${p0}, ${t1} & ${p1}${)}${const}${volatile}${throw}${staticnl}
8831   ${body}}
8833         
8834         
8835         comment "/*!
8836  * \\brief Decompose a Quaternion into a rotation angle and an Axe of rotation.
8837  * \\param[out] angle The angle of the rotation will be strore in this variable.
8838  * \\param[out] axe The axe of rotation will be store in this variable.
8839  */"
8840       end
8842       operation 141058 "getAxe"
8843         const public return_type class_ref 128002 // svector
8844         nparams 0
8845         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
8847         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
8849   ${body}}
8851         
8852         
8853         comment "/**
8854  * @brief Get the rotating axe of the Quaternion.
8855  * @return The rotating axe of the Quaternion.
8856  */"
8857       end
8859       operation 139522 "printToStream"
8860         const public return_type class_ref 152194 // ostream
8861         nparams 1
8862           param inout name "flux" type class_ref 152194 // ostream
8863         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
8865         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
8867   ${body}}
8869         
8870         
8871       end
8873       operation 139650 "toStream"
8874         const public return_type class_ref 152194 // ostream
8875         nparams 1
8876           param inout name "flux" type class_ref 152194 // ostream
8877         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
8879         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
8881   ${body}}
8883         
8884         
8885       end
8887       operation 139778 "fromStream"
8888         public return_type class_ref 152322 // istream
8889         nparams 1
8890           param inout name "flux" type class_ref 152322 // istream
8891         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
8893         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
8895   ${body}}
8897         
8898         
8899         comment "/*!
8900  * \\brief Restore a ${class} from a stream.
8901  * \\param flux The stream containing the ${class} to restore.
8902  */"
8903       end
8904     end
8906     class 129794 "Range"
8907       visibility package 
8908       cpp_decl "${comment}${template}class ${name}${inherit} {
8909 ${members}};
8910 ${inlines}
8912       java_decl ""
8913       idl_decl ""
8914       explicit_switch_type ""
8915       
8916       classrelation 129794 // min (<directional aggregation by value>)
8917         relation 129538 *-->
8918           a role_name "min" multiplicity "1" protected
8919             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} _${name}${value};
8921             classrelation_ref 129794 // min (<directional aggregation by value>)
8922           b multiplicity "" parent class_ref 128060 // Value
8923         get_oper operation_ref 150402 // get_min
8924       end
8926       classrelation 129922 // current (<directional aggregation by value>)
8927         relation 129666 *-->
8928           a role_name "current" multiplicity "1" protected
8929             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} _${name}${value};
8931             classrelation_ref 129922 // current (<directional aggregation by value>)
8932           b multiplicity "" parent class_ref 128060 // Value
8933         get_oper operation_ref 258818 // get_current
8934       end
8936       classrelation 182402 // consign (<directional aggregation by value>)
8937         relation 179586 *-->
8938           a role_name "consign" multiplicity "1" protected
8939             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} _${name}${value};
8941             classrelation_ref 182402 // consign (<directional aggregation by value>)
8942           b multiplicity "" parent class_ref 128060 // Value
8943         get_oper operation_ref 258562 // get_consign
8944       end
8946       classrelation 130050 // max (<directional aggregation by value>)
8947         relation 129794 *-->
8948           a role_name "max" multiplicity "1" protected
8949             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} _${name}${value};
8951             classrelation_ref 130050 // max (<directional aggregation by value>)
8952           b multiplicity "" parent class_ref 128060 // Value
8953         get_oper operation_ref 258690 // get_max
8954       end
8956       operation 149506 "Range"
8957         stereotype "constructor"
8958         public explicit_return_type ""
8959         nparams 0
8960         cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw};
8962         cpp_def "${comment}${inline}${class}::${name}${(}${)}${volatile}${throw} :
8963   _min(Value()),
8964   _current(Value()),
8965   _consign(Value()),
8966   _max(Value()) 
8968   ${body}}
8970         
8971         
8972         comment "@brief The default constructor.
8974       end
8976       operation 150018 "Range"
8977         stereotype "constructor"
8978         public explicit_return_type ""
8979         nparams 4
8980           param in name "min" type class_ref 128060 // Value
8981           param in name "current" type class_ref 128060 // Value
8982           param in name "consign" type class_ref 128060 // Value
8983           param in name "max" type class_ref 128060 // Value
8984         nexceptions 1
8985           exception class_ref 128182 // HKLException
8986         cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}${)}${volatile}${throw};
8988         cpp_def "${comment}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}${)}${volatile}${throw} 
8990   ${body}}
8992         
8993         
8994         comment "@brief constructor of the ${class} class.
8996 @param ${p0} The minimum value of the ${class}.
8997 @param ${p1} The current value of the ${class}.
8998 @param ${p2} The consign value of the ${class}.
8999 @param ${p3} The maximum value of the ${class}.
9000 @throw HKLException if not min < current, consign < max; "
9001       end
9003       operation 149762 "Range"
9004         stereotype "copy"
9005         public explicit_return_type ""
9006         nparams 1
9007           param in name "source" type class_ref 129794 // Range
9008         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
9010         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
9011   _min(source._min),
9012   _current(source._current),
9013   _consign(source._consign),
9014   _max(source._max) 
9016   ${body}}
9018         
9019         
9020       end
9022       operation 150402 "get_min"
9023         cpp_frozen const cpp_inline public return_type class_ref 128060 // Value
9024         nparams 0
9025         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} const & ${name}${(}${)}${const}${volatile}${throw};
9027         cpp_def "${comment}${inline}${type} const & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
9029   return _min;
9032         cpp_name_spec "get_${name}"
9033         final 
9034         java_name_spec "get_${name}"
9035         
9036         idl_name_spec "get_${name}"
9037         get_of_relation classrelation_ref 129794 // min (<directional aggregation by value>)
9038         comment "@brief Get the _min Value of the ${class} class.
9039 @return The minimum Value.
9041       end
9043       operation 258818 "get_current"
9044         const cpp_inline public return_type class_ref 128060 // Value
9045         nparams 0
9046         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw};
9048         cpp_def "${comment}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
9050   return _current;
9053         cpp_name_spec "get_${name}"
9054         final 
9055         java_name_spec "get${name}"
9056         
9057         idl_name_spec "get${name}"
9058         get_of_relation classrelation_ref 129922 // current (<directional aggregation by value>)
9059         comment "@brief Get the _current Value of the ${class} class.
9060 @return The current Value."
9061       end
9063       operation 258562 "get_consign"
9064         cpp_frozen const cpp_inline public return_type class_ref 128060 // Value
9065         nparams 0
9066         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} const & ${name}${(}${)}${const}${volatile}${throw};
9068         cpp_def "${comment}${inline}${type} const & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
9070   return _consign;
9073         cpp_name_spec "get_${name}"
9074         final 
9075         java_name_spec "get${name}"
9076         
9077         idl_name_spec "get${name}"
9078         get_of_relation classrelation_ref 182402 // consign (<directional aggregation by value>)
9079       end
9081       operation 258690 "get_max"
9082         const cpp_inline public return_type class_ref 128060 // Value
9083         nparams 0
9084         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} const & ${name}${(}${)}${const}${volatile}${throw};
9086         cpp_def "${comment}${inline}${type} const & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
9088   return _max;
9091         cpp_name_spec "get_${name}"
9092         final 
9093         java_name_spec "get${name}"
9094         
9095         idl_name_spec "get${name}"
9096         get_of_relation classrelation_ref 130050 // max (<directional aggregation by value>)
9097         comment "@brief Get the _max Value of the ${class} class.
9098 @return The maximum Value.
9100       end
9102       operation 150274 "set_current"
9103         public explicit_return_type "void"
9104         nparams 1
9105           param in name "current" type class_ref 128060 // Value
9106         nexceptions 1
9107           exception class_ref 128182 // HKLException
9108         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9110         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9112   ${body}}
9114         
9115         
9116         comment "@brief Set the _current ${t0} of the ${class} class.
9117 @param ${p0} The ${t0} to set.
9118 @throw An HKLException if the current ${t0} in not between min and max.
9120       end
9122       operation 150786 "set_current"
9123         public explicit_return_type "void"
9124         nparams 1
9125           param in name "current" explicit_type "double"
9126         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${abstract};
9128         cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}
9130   ${body}}
9132         
9133         
9134         comment "@brief Set the _current ${t0} of the ${class} class.
9135 @param ${p0} The ${t0} to set.
9137 This method do not check for the validity of the ${class}. This method
9138 is requiered by the simplex affinement.
9140       end
9142       operation 258946 "set_consign"
9143         public explicit_return_type "void"
9144         nparams 1
9145           param in name "consign" type class_ref 128060 // Value
9146         nexceptions 1
9147           exception class_ref 128182 // HKLException
9148         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9150         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9152   ${body}}
9154         
9155         
9156         comment "@brief Set the consign ${t0} of the ${class} class.
9157 @param ${p0} The ${t0} to set.
9158 @throw An HKLException if the consign ${t0} in not in between min and max.
9160       end
9162       operation 150914 "set_range"
9163         public explicit_return_type "void"
9164         nparams 2
9165           param in name "min" type class_ref 128060 // Value
9166           param in name "max" type class_ref 128060 // Value
9167         nexceptions 1
9168           exception class_ref 128182 // HKLException
9169         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${const}${volatile}${throw}${abstract};
9171         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${const}${volatile}${throw}${staticnl}
9173   ${body}}
9175         
9176         
9177         comment "@brief Set the minimum and the maximum of the ${class} class.
9178 @param ${p0} The minimum ${t0} to set.
9179 @param ${p1} The maximum ${t1} to set.
9180 @throw HKLException if the new ${class} is not valid.
9181 @todo maybe split in set_min and set_max
9183 this method check that the new minimun is not bigger than the current or the consign
9184 value of the ${class} and than the maximum is not lower than the current or consign.
9186       end
9188       operation 151042 "set"
9189         public explicit_return_type "void"
9190         nparams 4
9191           param in name "min" explicit_type "double"
9192           param in name "current" explicit_type "double"
9193           param in name "consign" explicit_type "double"
9194           param in name "max" explicit_type "double"
9195         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} ${p3}${)}${const}${volatile}${throw}${abstract};
9197         cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} ${p3}${)}${const}${volatile}${throw}${staticnl}
9199   ${body}}
9201         
9202         
9203         comment "@brief Set the minimum and the maximum of the ${class} class.
9204 @param ${p0} The minimum ${t0} to set.
9205 @param ${p1} The current ${t1} to set.
9206 @param ${p2} The consign ${t2} to set.
9207 @param ${p3} The maximum ${t2} to set.
9208 @throw HKLException if the new ${class} is not valid.
9210 this method do not check that the new minimun is not bigger than the current
9211 value of the range and greater than the maximum.
9213       end
9215       operation 151170 "set"
9216         public explicit_return_type "void"
9217         nparams 1
9218           param in name "range" type class_ref 129794 // Range
9219         cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9221         cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9223   ${body}}
9225         
9226         
9227         comment "@brief Set a ${class} from another one.
9228 @param ${p0} The ${t0} to set.
9230 this method set only the _min, _current, _consign and _max Value of the ${class}.
9232       end
9234       operation 151298 "operator*="
9235         public return_type class_ref 129794 // Range
9236         nparams 1
9237           param in name "range" type class_ref 129794 // Range
9238         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9240         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9242   ${body}}
9244         
9245         
9246         comment "/**
9247  * @brief Multiply a ${class} by another one.
9248  * @param ${p0} The ${class} to multiply by.
9249  * @return A ${class} ref on the ${class} after the multiplication.
9251  * This method modify min, current and max to reflect the multiplication.
9252  */
9254       end
9256       operation 151426 "operator*="
9257         public return_type class_ref 129794 // Range
9258         nparams 1
9259           param in name "d" explicit_type "double"
9260         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9262         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9264   ${body}}
9266         
9267         
9268         comment "/**
9269  * @brief Multiply a ${class} by a ${t0} value.
9270  * @param ${p0} The ${t0} value.
9271  * @return The ${class} after the multiplication.
9273  * This method modify min, current and max to reflect the multiplication.
9274  */
9276       end
9278       operation 151554 "contain_zero"
9279         const public explicit_return_type "bool"
9280         nparams 0
9281         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
9283         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
9285   ${body}}
9287         
9288         
9289         comment "/**
9290  * @brief check if the ${class} contain zero.
9291  * @return true if zero is include in between min, max.
9292  */
9294       end
9296       operation 151682 "operator=="
9297         const public explicit_return_type "bool"
9298         nparams 1
9299           param in name "range" type class_ref 129794 // Range
9300         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9302         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9304   ${body}}
9306         
9307         
9308         comment "/*!
9309  * \\brief Are two ${class} equals ?
9310  * \\param ${p0} the ${t0} to compare with.
9311  */
9313       end
9315       operation 151810 "printToStream"
9316         const public return_type class_ref 152194 // ostream
9317         nparams 1
9318           param inout name "flux" type class_ref 152194 // ostream
9319         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9321         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9323   ${body}}
9325         
9326         
9327         comment "/*!
9328  * \\brief print the ${class} into a flux
9329  * \\param flux The stream to print into.
9330  */"
9331       end
9333       operation 151938 "toStream"
9334         const public return_type class_ref 152194 // ostream
9335         nparams 1
9336           param inout name "flux" type class_ref 152194 // ostream
9337         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9339         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9341   ${body}}
9343         
9344         
9345         comment "/*!
9346  * \\brief Save the ${class} into a stream.
9347  * \\param flux the stream to save the ${class} into.
9348  * \\return The stream with the ${class}.
9349  */"
9350       end
9352       operation 152066 "fromStream"
9353         public return_type class_ref 152322 // istream
9354         nparams 1
9355           param inout name "flux" type class_ref 152322 // istream
9356         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9358         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9360   ${body}}
9362         
9363         
9364         comment "/*!
9365  * \\brief Restore a ${class} from a stream.
9366  * \\param flux The stream containing the ${class} to restore.
9367  * @todo call update_observers or not ?
9368  */"
9369       end
9370     end
9372     class 133122 "Reflection"
9373       abstract visibility package 
9374       cpp_decl "${description}${template}class ${name}${inherit} {
9375 ${members}};
9376 ${inlines}
9378       java_decl ""
9379       idl_decl ""
9380       explicit_switch_type ""
9381       
9382       attribute 137218 "_geometry"
9383         protected type class_ref 131714 // Geometry
9384         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
9386         java_decl ""
9387         idl_decl ""
9388         get_oper operation_ref 183810 // get_geometry
9389       end
9391       attribute 137346 "_hkl"
9392         protected type class_ref 128002 // svector
9393         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
9395         java_decl ""
9396         idl_decl ""
9397         get_oper operation_ref 184066 // get_hkl
9398         set_oper operation_ref 184194 // set_hkl
9399       end
9401       attribute 137474 "_flag"
9402         protected explicit_type "bool"
9403         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
9405         java_decl ""
9406         idl_decl ""
9407       end
9409       attribute 137602 "_hkl_phi"
9410         protected type class_ref 128002 // svector
9411         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
9413         java_decl ""
9414         idl_decl ""
9415         get_oper operation_ref 183938 // get_hkl_phi
9416       end
9418       operation 183554 "Reflection"
9419         protected explicit_return_type ""
9420         nparams 3
9421           param in name "geometry" type class_ref 131714 // Geometry
9422           param in name "hkl" type class_ref 128002 // svector
9423           param in name "flag" explicit_type "bool"
9424         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, ${t2} ${p2}${)}${volatile}${throw};
9426         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, ${t2} ${p2}${)}${volatile}${throw} :
9427   _geometry(geometry),
9428   _hkl(hkl),
9429   _flag(flag) 
9431   ${body}}
9433         
9434         
9435         comment "/**
9436  * @brief Create a Reflection.
9437  * 
9438  * @param ${p0} The ${t0} of the reflection
9439  * @param ${p1} The hkl scattering vactor.
9440  * @param ${p2} if the reflection must be use during calculation.
9441  * @throw HKLException if the geometry is not valid.
9442  */
9444       end
9446       operation 214146 "~Reflection"
9447         cpp_virtual public explicit_return_type ""
9448         nparams 0
9449         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
9451         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
9453   ${body}}
9455         
9456         
9457       end
9459       operation 183682 "clone"
9460         abstract const cpp_virtual public return_type class_ref 133122 // Reflection
9461         nparams 0
9462         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
9464         
9465         
9466         comment "/**
9467  * @brief Create a clone of the current Reflection
9468  * @return A pointer on the newly created Reflection.
9470  * do not forget to release the memory at the end with delete.
9471  */
9473       end
9475       operation 183810 "get_geometry"
9476         const cpp_inline public return_type class_ref 131714 // Geometry
9477         nparams 0
9478         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw};
9480         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
9482   return _geometry;
9485         cpp_name_spec "get${name}"
9486         final 
9487         java_name_spec "get${name}"
9488         
9489         idl_name_spec "get${name}"
9490         get_of_attribute attribute_ref 137218 // _geometry
9491         comment "/**
9492  * @brief Get a constant reference on the geometry part of the Reflection.
9493  * @return the geometry part of the Reflecion.
9494  */
9496       end
9498       operation 184066 "get_hkl"
9499         const cpp_inline public return_type class_ref 128002 // svector
9500         nparams 0
9501         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw};
9503         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
9505   return _hkl;
9508         cpp_name_spec "get${name}"
9509         final 
9510         java_name_spec "get${name}"
9511         
9512         idl_name_spec "get${name}"
9513         get_of_attribute attribute_ref 137346 // _hkl
9514         comment "/**
9515  * @brief Get a constant reference on the hkl scattering vector store in the Reflection.
9516  * @return The hkl coordinates in the crystal coordinates.
9517  */
9519       end
9521       operation 184194 "set_hkl"
9522         public explicit_return_type "void"
9523         nparams 1
9524           param in name "value" type class_ref 128002 // svector
9525         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw};
9527         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9529   _hkl = ${p0};
9532         cpp_name_spec "set${name}"
9533         
9534         java_name_spec "set${name}"
9535         
9536         idl_name_spec "set${name}"
9537         set_of_attribute attribute_ref 137346 // _hkl
9538         comment "/**
9539  * @brief Set the hkl scattering vector store in the Reflection.
9540  * @param hkl The scattering vector in the crystal coordinates to store in the Reflection.
9541  */
9543       end
9545       operation 183938 "get_hkl_phi"
9546         const cpp_inline public return_type class_ref 128002 // svector
9547         nparams 0
9548         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw};
9550         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
9552   return _hkl_phi;
9555         cpp_name_spec "get${name}"
9556         final 
9557         java_name_spec "get${name}"
9558         
9559         idl_name_spec "get${name}"
9560         get_of_attribute attribute_ref 137602 // _hkl_phi
9561         comment "/**
9562  * @brief Get a constant reference on the hkl scattering vector store to fasten the affinement calculation.
9563  * @return The hkl coordinates in the last Axe coordinates.
9564  */
9566       end
9568       operation 184322 "flag"
9569         const public explicit_return_type "bool"
9570         nparams 0
9571         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
9573         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
9575   ${body}}
9577         
9578         
9579         comment "/**
9580  * @brief Get a constant reference on the flag store in the Reflection.
9581  * @return The flag of the Reflection.
9583  * the flag is true when we use the reflection in the affinement, false otherwise.
9584  */
9586       end
9588       operation 184450 "flag"
9589         public explicit_return_type "bool"
9590         nparams 0
9591         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
9593         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
9595   ${body}}
9597         
9598         
9599         comment "/**
9600  * @brief Get a constant reference on the flag store in the Reflection.
9601  * @return The flag of the Reflection.
9603  * the flag is true when we use the reflection in the affinement, false otherwise.
9604  */
9606       end
9608       operation 184578 "computeAngle"
9609         const public return_type class_ref 128060 // Value
9610         nparams 1
9611           param in name "hkl" type class_ref 128002 // svector
9612         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9614         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9616   ${body}}
9618         
9619         
9620         comment "/**
9621  * @brief compute the theoretical angle beetween two hkl vectors.
9622  * @param hkl The second scattering vector to compare with the Reflection internal hkl.
9623  * @return the angle between the two hkl.
9624  * @todo Maybe move this in the Sample and add a computeAngle(Reflection const & reflection)
9625  * @todo add the mathematical formula.
9626  */
9628       end
9630       operation 184706 "isColinear"
9631         const public explicit_return_type "bool"
9632         nparams 1
9633           param in name "reflection" type class_ref 133122 // Reflection
9634         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9636         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9638   ${body}}
9640         
9641         
9642         comment "/**
9643  * @brief Check if two reflections are colinear.
9644  * @param reflection The reflection to compare with.
9645  * @return true if the reflections are colinear, false otherwise.
9646  * @todo Add the mathematical formula.
9647  */
9649       end
9651       operation 184834 "operator=="
9652         const public explicit_return_type "bool"
9653         nparams 1
9654           param in name "reflection" type class_ref 133122 // Reflection
9655         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9657         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9659   ${body}}
9661         
9662         
9663         comment "/**
9664  * \\brief Are two ${class} equals ?
9665  * \\param ${p0} the ${t0} to compare with.
9666  * \\return true if both are equals flase otherwise.
9667  */"
9668       end
9670       operation 184962 "printToStream"
9671         const public return_type class_ref 152194 // ostream
9672         nparams 1
9673           param inout name "flux" type class_ref 152194 // ostream
9674         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9676         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9678   ${body}}
9680         
9681         
9682         comment "/**
9683  * @brief print the ${class} into a flux
9684  * @param ${p0} The stream to print into.
9685  * @return The modified flux.
9686  */"
9687       end
9689       operation 185090 "toStream"
9690         const public return_type class_ref 152194 // ostream
9691         nparams 1
9692           param inout name "flux" type class_ref 152194 // ostream
9693         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9695         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9697   ${body}}
9699         
9700         
9701         comment "/**
9702  * @brief print on a stream the content of the ${class}
9703  * @param flux the ostream to modify.
9704  * @return the modified ostream
9705  */"
9706       end
9708       operation 185218 "fromStream"
9709         public return_type class_ref 152322 // istream
9710         nparams 1
9711           param inout name "flux" type class_ref 152322 // istream
9712         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9714         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9716   ${body}}
9718         
9719         
9720         comment "/**
9721  * @brief restore the content of the ${class} from an istream
9722  * @param flux the istream.
9723  * @return the modified istream.
9724  * @todo problem of security here.
9725  */"
9726       end
9727     end
9729     class 133506 "ReflectionFactory"
9730       visibility package 
9731       cpp_decl "${description}${template}class ${name}${inherit} {
9732 ${members}};
9733 ${inlines}
9735       java_decl ""
9736       idl_decl ""
9737       explicit_switch_type ""
9738       
9739       attribute 138114 "_geometry"
9740         protected type class_ref 131714 // Geometry
9741         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} & ${name}${value};
9743         java_decl ""
9744         idl_decl ""
9745       end
9747       attribute 138242 "_type"
9748         protected type class_ref 133250 // ReflectionType
9749         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
9751         java_decl ""
9752         idl_decl ""
9753       end
9755       operation 185730 "ReflectionFactory"
9756         public explicit_return_type ""
9757         nparams 2
9758           param inout name "geometry" type class_ref 131714 // Geometry
9759           param in name "type" type class_ref 133250 // ReflectionType
9760         cpp_decl "    ${description}${inline}${name}${(}${t0} & ${p0}, ${t1} ${p1}${)}${volatile}${throw};
9762         cpp_def "${description}${inline}${class}::${name}${(}${t0} & ${p0}, ${t1} ${p1}${)}${volatile}${throw}  :
9763   _geometry(geometry),
9764   _type(type)
9766   ${body}}
9768         
9769         
9770         comment "/**
9771  * @brief The default constructor.
9772  * @param geometry the Geometry use to fill the Reflection._geometry.
9773  * @param type the type of the Reflection.
9774  */
9776       end
9778       operation 185858 "create"
9779         const public return_type class_ref 133122 // Reflection
9780         nparams 0
9781         nexceptions 1
9782           exception class_ref 128182 // HKLException
9783         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
9785         cpp_def "${description}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
9787   ${body}}
9789         
9790         
9791         comment "/**
9792  * @brief Create a new reflection.
9793  * @return The created Reflection.
9794  */
9796       end
9797     end
9799     class 133634 "ReflectionList"
9800       visibility package 
9801       cpp_decl "${description}${template}class ${name}${inherit} {
9802 ${members}};
9803 ${inlines}
9805       java_decl ""
9806       idl_decl ""
9807       explicit_switch_type ""
9808       
9809       attribute 138370 "_geometry"
9810         protected type class_ref 131714 // Geometry
9811         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} & ${name}${value};
9813         java_decl ""
9814         idl_decl ""
9815       end
9817       classrelation 134402 // _reflectionFactory (<directional aggregation>)
9818         relation 134018 o-->
9819           a role_name "_reflectionFactory" multiplicity "1" protected
9820             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
9822             classrelation_ref 134402 // _reflectionFactory (<directional aggregation>)
9823           b multiplicity "" parent class_ref 133506 // ReflectionFactory
9824       end
9826       classrelation 134530 // _reflections (<directional aggregation>)
9827         relation 134146 o-->
9828           stereotype "vector"
9829           a role_name "_reflections" multiplicity "*" protected
9830             cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type} *> ${name}${value};
9832             classrelation_ref 134530 // _reflections (<directional aggregation>)
9833           b multiplicity "" parent class_ref 133122 // Reflection
9834       end
9836       class 133762 "iterator"
9837         visibility package stereotype "typedef" explicit_base_type "std::vector<Reflection *>::iterator"
9838         cpp_decl "${description}typedef ${type} ${name};
9840         java_decl ""
9841         idl_decl "${comment}typedef ${type} ${name};
9843         explicit_switch_type ""
9844         
9845       end
9847       operation 185986 "ReflectionList"
9848         public explicit_return_type ""
9849         nparams 2
9850           param in name "geometry" type class_ref 131714 // Geometry
9851           param in name "type" type class_ref 133250 // ReflectionType
9852         cpp_decl "    ${description}${inline}${name}${(}${t0} & ${p0}, ${t1} ${p1}${)}${volatile}${throw};
9854         cpp_def "${description}${inline}${class}::${name}${(}${t0} & ${p0}, ${t1} ${p1}${)}${volatile}${throw} :
9855   _geometry(geometry) 
9857   ${body}}
9859         
9860         
9861         comment "/**
9862  * @brief Default constructor
9863  * @param geometry The Geometry related to the Reflection 
9864  * @param type The type of the Reflection in the ReflectionList.
9865  */
9867       end
9869       operation 186114 "~ReflectionList"
9870         cpp_virtual public explicit_return_type ""
9871         nparams 0
9872         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
9874         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
9876   ${body}}
9878         
9879         
9880         comment "/**
9881  * @brief The default destructor.
9882  */
9884       end
9886       operation 186242 "ReflectionList"
9887         stereotype "copy"
9888         public explicit_return_type ""
9889         nparams 1
9890           param in name "source" type class_ref 133634 // ReflectionList
9891         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
9893         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
9894   _geometry(source._geometry)
9896   ${body}}
9898         
9899         
9900         comment "/**
9901  * @brief The copy constructor.
9902  * @param factory The factory to copy from.
9903  */
9905       end
9907       operation 186370 "clone"
9908         const cpp_virtual public return_type class_ref 133634 // ReflectionList
9909         nparams 0
9910         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
9912         cpp_def "${description}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
9914   ${body}}
9916         
9917         
9918         comment "/**
9919  * @brief Make a deep copy of a ReflectionList.
9920  * 
9921  * @return A pointer on the copied ReflectionList.
9922  */
9924       end
9926       operation 186498 "add"
9927         public return_type class_ref 133122 // Reflection
9928         nparams 1
9929           param in name "hkl" type class_ref 128002 // svector
9930         nexceptions 1
9931           exception class_ref 128182 // HKLException
9932         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
9934         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
9936   ${body}}
9938         
9939         
9940         comment "/**
9941  * @brief Add a reflection to the ReflectionList.
9942  * @param hkl The scattering vector of the added reflection.
9943  * @return A reference on the added reflection.
9944  */
9946       end
9948       operation 186626 "del"
9949         public explicit_return_type "void"
9950         nparams 1
9951           param in name "index" explicit_type "uint"
9952         nexceptions 1
9953           exception class_ref 128182 // HKLException
9954         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${abstract};
9956         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}
9958   ${body}}
9960         
9961         
9962         comment "/**
9963  * @brief Delete the ith reflection
9964  * @param index of the reflection to delete.
9965  * @throw HKLException if index is out of range.
9966  */
9968       end
9970       operation 186754 "size"
9971         const public explicit_return_type "uint"
9972         nparams 0
9973         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
9975         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
9977   ${body}}
9979         
9980         
9981         comment "/**
9982  * @brief Return the number of reflection in the ReflectionList.
9983  * @return The number of reflection in the ReflectionList.
9984  */
9986       end
9988       operation 186882 "size_indep"
9989         const public explicit_return_type "uint"
9990         nparams 0
9991         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
9993         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
9995   ${body}}
9997         
9998         
9999         comment "/**
10000  * @brief Return the number of undependant Reflection in the ReflectionList.
10001  * 
10002  * @return The number of non-colinear Reflection in the ReflectionList.
10003  */
10005       end
10007       operation 187010 "operator[]"
10008         public return_type class_ref 133122 // Reflection
10009         nparams 1
10010           param in name "index" explicit_type "uint"
10011         nexceptions 1
10012           exception class_ref 128182 // HKLException
10013         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${abstract};
10015         cpp_def "${description}${inline}${type} * ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}
10017   ${body}}
10019         
10020         
10021         comment "/**
10022  * @brief Return a reference on the ReflectionList ith Reflection.
10023  * 
10024  * @param index of the returned Reflection. 
10025  * @throw HKLException if index is out of range. 
10026  * 
10027  * @return The ith Reflection.
10028  */
10030       end
10032       operation 187138 "begin"
10033         public explicit_return_type "ReflectionList::iterator"
10034         nparams 0
10035         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
10037         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
10039   ${body}}
10041         
10042         
10043         comment "/**
10044  * @brief Get an iterator on the first element of ReflectionList.
10045  * @return The iterator.
10046  */
10048       end
10050       operation 187266 "end"
10051         public explicit_return_type "ReflectionList::iterator"
10052         nparams 0
10053         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
10055         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
10057   ${body}}
10059         
10060         
10061         comment "/**
10062  * @brief Get an iterator on the end of ReflectionList.
10063  * @return The iterator.
10064  */
10066       end
10068       operation 187394 "operator=="
10069         const public explicit_return_type "bool"
10070         nparams 1
10071           param in name "reflectionList" type class_ref 133634 // ReflectionList
10072         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10074         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10076   ${body}}
10078         
10079         
10080         comment "/**
10081  * \\brief Are two ${class} equals ?
10082  * \\param ${p0} the ${t0} to compare with.
10083  * \\return true if both are equals flase otherwise.
10084  */"
10085       end
10087       operation 187522 "printToStream"
10088         const public return_type class_ref 152194 // ostream
10089         nparams 1
10090           param inout name "flux" type class_ref 152194 // ostream
10091         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10093         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10095   ${body}}
10097         
10098         
10099         comment "/**
10100  * @brief print the ${class} into a flux
10101  * @param ${p0} The stream to print into.
10102  * @return The modified flux.
10103  */"
10104       end
10106       operation 187650 "toStream"
10107         const public return_type class_ref 152194 // ostream
10108         nparams 1
10109           param inout name "flux" type class_ref 152194 // ostream
10110         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10112         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10114   ${body}}
10116         
10117         
10118         comment "/**
10119  * @brief print on a stream the content of the ${class}
10120  * @param flux the ostream to modify.
10121  * @return the modified ostream
10122  */"
10123       end
10125       operation 187778 "fromStream"
10126         public return_type class_ref 152322 // istream
10127         nparams 1
10128           param inout name "flux" type class_ref 152322 // istream
10129         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10131         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10133   ${body}}
10135         
10136         
10137         comment "/**
10138  * @brief restore the content of the ${class} from an istream
10139  * @param flux the istream.
10140  * @return the modified istream.
10141  * @todo problem of security here.
10142  */"
10143       end
10144     end
10146     class 133250 "ReflectionType"
10147       visibility package stereotype "enum"
10148       cpp_decl "${description}enum ${name} {
10149 ${items}};
10151       java_decl "${comment}${@}${public}${final}${abstract}enum ${name}${implements} {
10152 ${items};
10153 ${members}}
10155       idl_decl "${comment}enum ${name} {
10156 ${items}};
10158       explicit_switch_type ""
10159       
10160       attribute 137730 "REFLECTION_MONOCRYSTAL"
10161         public explicit_type ""
10162         cpp_decl "  ${name}${value},${comment}"
10163         java_decl ""
10164         idl_decl ""
10165       end
10166     end
10168     class 128514 "smatrix"
10169       visibility package 
10170       cpp_decl "${description}${template}class ${name}${inherit} {
10171   friend class svector;
10172 ${members}};
10173 ${inlines}
10175       java_decl ""
10176       idl_decl ""
10177       explicit_switch_type ""
10178       
10179       attribute 128514 "_m11"
10180         protected explicit_type "double"
10181         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
10183         java_decl ""
10184         idl_decl ""
10185       end
10187       attribute 128642 "_m12"
10188         protected explicit_type "double"
10189         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
10191         java_decl ""
10192         idl_decl ""
10193       end
10195       attribute 128770 "_m13"
10196         protected explicit_type "double"
10197         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
10199         java_decl ""
10200         idl_decl ""
10201       end
10203       attribute 128898 "_m21"
10204         protected explicit_type "double"
10205         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
10207         java_decl ""
10208         idl_decl ""
10209       end
10211       attribute 129026 "_m22"
10212         protected explicit_type "double"
10213         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
10215         java_decl ""
10216         idl_decl ""
10217       end
10219       attribute 129154 "_m23"
10220         protected explicit_type "double"
10221         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
10223         java_decl ""
10224         idl_decl ""
10225       end
10227       attribute 129282 "_m31"
10228         protected explicit_type "double"
10229         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
10231         java_decl ""
10232         idl_decl ""
10233       end
10235       attribute 129410 "_m32"
10236         protected explicit_type "double"
10237         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
10239         java_decl ""
10240         idl_decl ""
10241       end
10243       attribute 129538 "_m33"
10244         protected explicit_type "double"
10245         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
10247         java_decl ""
10248         idl_decl ""
10249       end
10251       operation 130690 "smatrix"
10252         stereotype "constructor"
10253         public explicit_return_type ""
10254         nparams 0
10255         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
10257         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} :
10258   _m11(0), _m12(0), _m13(0),
10259   _m21(0), _m22(0), _m23(0),
10260   _m31(0), _m32(0), _m33(0)
10262   ${body}}
10264         
10265         
10266       end
10268       operation 134402 "smatrix"
10269         stereotype "constructor"
10270         public explicit_return_type ""
10271         nparams 9
10272           param in name "m11" explicit_type "double"
10273           param in name "m12" explicit_type "double"
10274           param in name "m13" explicit_type "double"
10275           param in name "m21" explicit_type "double"
10276           param in name "m22" explicit_type "double"
10277           param in name "m23" explicit_type "double"
10278           param in name "m31" explicit_type "double"
10279           param in name "m32" explicit_type "double"
10280           param in name "m33" explicit_type "double"
10281         cpp_decl "    ${description}${inline}${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} ${p3}, ${t4} ${p4}, ${t5} ${p5}, ${t6} ${p6}, ${t7} ${p7}, ${t8} ${p8}${)}${volatile}${throw};
10283         cpp_def "${description}${inline}${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} ${p3}, ${t4} ${p4}, ${t5} ${p5}, ${t6} ${p6}, ${t7} ${p7}, ${t8} ${p8}${)}${volatile}${throw} :
10284   _m11(m11), _m12(m12), _m13(m13),
10285   _m21(m21), _m22(m22), _m23(m23),
10286   _m31(m31), _m32(m32), _m33(m33)
10288   ${body}}
10290         
10291         
10292       end
10294       operation 134530 "smatrix"
10295         stereotype "constructor"
10296         public explicit_return_type ""
10297         nparams 3
10298           param in name "euler_x" explicit_type "double"
10299           param in name "euler_y" explicit_type "double"
10300           param in name "euler_z" explicit_type "double"
10301         cpp_decl "    ${description}${inline}${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}${)}${volatile}${throw};
10303         cpp_def "${description}${inline}${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}${)}${volatile}${throw} 
10305   ${body}}
10307         
10308         
10309       end
10311       operation 130946 "smatrix"
10312         stereotype "copy"
10313         public explicit_return_type ""
10314         nparams 1
10315           param in name "source" type class_ref 128514 // smatrix
10316         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
10318         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
10319   _m11(source._m11), _m12(source._m12), _m13(source._m13),
10320   _m21(source._m21), _m22(source._m22), _m23(source._m23),
10321   _m31(source._m31), _m32(source._m32), _m33(source._m33)
10323   ${body}}
10325         
10326         
10327       end
10329       operation 134658 "operator=="
10330         const public explicit_return_type "bool"
10331         nparams 1
10332           param in name "M" type class_ref 128514 // smatrix
10333         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10335         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10337   ${body}}
10339         
10340         
10341       end
10343       operation 134786 "operator*="
10344         public return_type class_ref 128514 // smatrix
10345         nparams 1
10346           param in name "M" type class_ref 128514 // smatrix
10347         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10349         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10351   ${body}}
10353         
10354         
10355       end
10357       operation 134914 "operator*"
10358         const public return_type class_ref 128514 // smatrix
10359         nparams 1
10360           param in name "M" type class_ref 128514 // smatrix
10361         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10363         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10365   ${body}}
10367         
10368         
10369       end
10371       operation 135042 "operator*"
10372         const public return_type class_ref 128002 // svector
10373         nparams 1
10374           param in name "v" type class_ref 128002 // svector
10375         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10377         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10379   ${body}}
10381         
10382         
10383       end
10385       operation 133250 "set"
10386         public explicit_return_type "void"
10387         nparams 9
10388           param in name "m11" explicit_type "double"
10389           param in name "m12" explicit_type "double"
10390           param in name "m13" explicit_type "double"
10391           param in name "m21" explicit_type "double"
10392           param in name "m22" explicit_type "double"
10393           param in name "m23" explicit_type "double"
10394           param in name "m31" explicit_type "double"
10395           param in name "m32" explicit_type "double"
10396           param in name "m33" explicit_type "double"
10397         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} ${p3}, ${t4} ${p4}, ${t5} ${p5}, ${t6} ${p6}, ${t7} ${p7}, ${t8} ${p8}${)}${const}${volatile}${throw}${abstract};
10399         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} ${p3}, ${t4} ${p4}, ${t5} ${p5}, ${t6} ${p6}, ${t7} ${p7}, ${t8} ${p8}${)}${const}${volatile}${throw}${staticnl}
10401   ${body}}
10403         
10404         
10405       end
10407       operation 135426 "set"
10408         public explicit_return_type "void"
10409         nparams 3
10410           param in name "euler_x" explicit_type "double"
10411           param in name "euler_y" explicit_type "double"
10412           param in name "euler_z" explicit_type "double"
10413         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}${)}${const}${volatile}${throw}${abstract};
10415         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}${)}${const}${volatile}${throw}${staticnl}
10417   ${body}}
10419         
10420         
10421       end
10423       operation 134274 "get"
10424         const public explicit_return_type "double"
10425         nparams 2
10426           param in name "i" explicit_type "uint"
10427           param in name "j" explicit_type "uint"
10428         nexceptions 1
10429           exception class_ref 128182 // HKLException
10430         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${abstract};
10432         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}
10434   ${body}}
10436         
10437         
10438       end
10440       operation 135170 "asEulerian"
10441         const public return_type class_ref 128002 // svector
10442         nparams 0
10443         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
10445         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
10447   ${body}}
10449         
10450         
10451       end
10453       operation 135298 "transpose"
10454         public return_type class_ref 128514 // smatrix
10455         nparams 0
10456         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
10458         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
10460   ${body}}
10462         
10463         
10464       end
10466       operation 133890 "printToStream"
10467         const public return_type class_ref 152194 // ostream
10468         nparams 1
10469           param inout name "flux" type class_ref 152194 // ostream
10470         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10472         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10474   ${body}}
10476         
10477         
10478       end
10480       operation 134018 "toStream"
10481         const public return_type class_ref 152194 // ostream
10482         nparams 1
10483           param inout name "flux" type class_ref 152194 // ostream
10484         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10486         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10488   ${body}}
10490         
10491         
10492       end
10494       operation 134146 "fromStream"
10495         public return_type class_ref 152322 // istream
10496         nparams 1
10497           param inout name "flux" type class_ref 152322 // istream
10498         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10500         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10502   ${body}}
10504         
10505         
10506         comment "/*!
10507  * \\brief Restore a ${class} from a stream.
10508  * \\param flux The stream containing the ${class} to restore.
10509  */"
10510       end
10511     end
10513     class 131458 "Source"
10514       visibility package 
10515       cpp_decl "${description}${template}class ${name}${inherit} {
10516 ${members}};
10517 ${inlines}
10519       java_decl ""
10520       idl_decl ""
10521       explicit_switch_type ""
10522       
10523       classrelation 132610 // _waveLength (<directional aggregation by value>)
10524         relation 132226 *-->
10525           a role_name "_waveLength" multiplicity "1" protected
10526             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
10528             classrelation_ref 132610 // _waveLength (<directional aggregation by value>)
10529           b multiplicity "" parent class_ref 128060 // Value
10530         get_oper operation_ref 162562 // get_waveLength
10531       end
10533       classrelation 132738 // _direction (<directional aggregation by value>)
10534         relation 132354 *-->
10535           a role_name "_direction" multiplicity "" protected
10536             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
10538             classrelation_ref 132738 // _direction (<directional aggregation by value>)
10539           b multiplicity "" parent class_ref 128002 // svector
10540         get_oper operation_ref 162690 // get_direction
10541       end
10543       classrelation 132866 // _qi (<directional aggregation by value>)
10544         relation 132482 *-->
10545           a role_name "_qi" multiplicity "" protected
10546             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
10548             classrelation_ref 132866 // _qi (<directional aggregation by value>)
10549           b multiplicity "" parent class_ref 128770 // Quaternion
10550         get_oper operation_ref 162818 // get_qi
10551       end
10553       operation 162306 "Source"
10554         public explicit_return_type ""
10555         nparams 0
10556         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
10558         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} :
10559   _waveLength(1.54),
10560   _direction(svector(1,0,0)),
10561   _qi(0, constant::physic::tau / 1.54, 0, 0) 
10563   ${body}}
10565         
10566         
10567         comment "/**
10568  * @brief Default Constructor.
10570  * Create a new ${class} with all is privates parameters set to zero.
10571  * After this you must set the waveLength before using it, with the
10572  * setWaveLength method.
10573  */"
10574       end
10576       operation 162434 "Source"
10577         public explicit_return_type ""
10578         nparams 2
10579           param in name "waveLength" type class_ref 128060 // Value
10580           param in name "direction" type class_ref 128002 // svector
10581         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw};
10583         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw} 
10585   ${body}}
10587         
10588         
10589         comment "/**
10590  * @brief Constructor from parameters
10591  * @param ${p0} the wavelength of the beam.
10592  * @param ${p1} the X-rays beam direction. This parameter is normalize.
10594  * Create a new ${class} from the parameters.
10595  * <b>_waveLength unit must be consistent with the crystal length units</b>.
10596  */"
10597       end
10599       operation 162562 "get_waveLength"
10600         const cpp_inline public return_type class_ref 128060 // Value
10601         nparams 0
10602         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw};
10604         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
10606   return _waveLength;
10609         cpp_name_spec "get${name}"
10610         final 
10611         java_name_spec "get${name}"
10612         
10613         idl_name_spec "get${name}"
10614         get_of_relation classrelation_ref 132610 // _waveLength (<directional aggregation by value>)
10615       end
10617       operation 162690 "get_direction"
10618         const cpp_inline public return_type class_ref 128002 // svector
10619         nparams 0
10620         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw};
10622         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
10624   return _direction;
10627         cpp_name_spec "get${name}"
10628         final 
10629         java_name_spec "get${name}"
10630         
10631         idl_name_spec "get${name}"
10632         get_of_relation classrelation_ref 132738 // _direction (<directional aggregation by value>)
10633       end
10635       operation 162818 "get_qi"
10636         const cpp_inline public return_type class_ref 128770 // Quaternion
10637         nparams 0
10638         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw};
10640         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
10642   return _qi;
10645         cpp_name_spec "get${name}"
10646         final 
10647         java_name_spec "get${name}"
10648         
10649         idl_name_spec "get${name}"
10650         get_of_relation classrelation_ref 132866 // _qi (<directional aggregation by value>)
10651       end
10653       operation 162946 "setWaveLength"
10654         public explicit_return_type "void"
10655         nparams 1
10656           param in name "waveLength" type class_ref 128060 // Value
10657         nexceptions 1
10658           exception class_ref 128182 // HKLException
10659         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10661         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10663   ${body}}
10665         
10666         
10667         comment "/**
10668  * @brief set the wavelength
10669  * @param ${p0} the wavelength to set.
10670  * @exception HKLException if ${p0} == 0.
10672  * Set the ${p0} of the source
10673  * <b>wl unit must be consistent with the crystal length units</b>.
10674  */"
10675       end
10677       operation 163074 "setDirection"
10678         public explicit_return_type "void"
10679         nparams 1
10680           param in name "direction" type class_ref 128002 // svector
10681         nexceptions 1
10682           exception class_ref 128182 // HKLException
10683         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10685         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10687   ${body}}
10689         
10690         
10691         comment "/**
10692  * @brief Set the _{p0} of the ${class}.
10693  * @param ${p0} to set
10695  * The ${p0} is normalize.
10696  */"
10697       end
10699       operation 163202 "getKi"
10700         const public return_type class_ref 128002 // svector
10701         nparams 0
10702         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
10704         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
10706   ${body}}
10708         
10709         
10710         comment "/**
10711  * @brief Get the ki vector
10712  */"
10713       end
10715       operation 163330 "setKi"
10716         public explicit_return_type "void"
10717         nparams 1
10718           param in name "ki" type class_ref 128002 // svector
10719         nexceptions 1
10720           exception class_ref 128182 // HKLException
10721         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10723         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10725   ${body}}
10727         
10728         
10729         comment "/**
10730  * @brief set the ki vector
10731  */"
10732       end
10734       operation 163458 "operator=="
10735         const public explicit_return_type "bool"
10736         nparams 1
10737           param in name "source" type class_ref 131458 // Source
10738         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10740         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10742   ${body}}
10744         
10745         
10746         comment "/**
10747  * \\brief Are two ${class} equals ?
10748  * \\param ${p0} the ${t0} to compare with.
10749  * \\return true if both are equals flase otherwise.
10750  */"
10751       end
10753       operation 163586 "printToStream"
10754         const public return_type class_ref 152194 // ostream
10755         nparams 1
10756           param inout name "flux" type class_ref 152194 // ostream
10757         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10759         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10761   ${body}}
10763         
10764         
10765         comment "/**
10766  * @brief print the ${class} into a flux
10767  * @param ${p0} The stream to print into.
10768  * @return The modified flux.
10769  */"
10770       end
10772       operation 163714 "toStream"
10773         const public return_type class_ref 152194 // ostream
10774         nparams 1
10775           param inout name "flux" type class_ref 152194 // ostream
10776         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10778         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10780   ${body}}
10782         
10783         
10784         comment "/**
10785  * @brief print on a stream the content of the ${class}
10786  * @param flux the ostream to modify.
10787  * @return the modified ostream
10788  */"
10789       end
10791       operation 163842 "fromStream"
10792         public return_type class_ref 152322 // istream
10793         nparams 1
10794           param inout name "flux" type class_ref 152322 // istream
10795         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10797         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10799   ${body}}
10801         
10802         
10803         comment "/**
10804  * @brief restore the content of the ${class} from an istream
10805  * @param flux the istream.
10806  * @return the modified istream.
10807  * @todo problem of security here.
10808  */"
10809       end
10810     end
10812     class 128002 "svector"
10813       visibility package 
10814       cpp_decl "${description}${template}class ${name}${inherit} {
10815   friend class smatrix;
10816 ${members}};
10817 ${inlines}
10819       java_decl ""
10820       idl_decl ""
10821       explicit_switch_type ""
10822       
10823       attribute 128002 "_x"
10824         protected explicit_type "double"
10825         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
10827         java_decl ""
10828         idl_decl ""
10829       end
10831       attribute 128130 "_y"
10832         protected explicit_type "double"
10833         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
10835         java_decl ""
10836         idl_decl ""
10837       end
10839       attribute 128258 "_z"
10840         protected explicit_type "double"
10841         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
10843         java_decl ""
10844         idl_decl ""
10845       end
10847       operation 129026 "svector"
10848         stereotype "constructor"
10849         public explicit_return_type ""
10850         nparams 0
10851         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
10853         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} :
10854   _x(0),
10855   _y(0),
10856   _z(0)
10858   ${body}}
10860         
10861         
10862       end
10864       operation 129538 "svector"
10865         stereotype "constructor"
10866         public explicit_return_type ""
10867         nparams 3
10868           param in name "x" explicit_type "double"
10869           param in name "y" explicit_type "double"
10870           param in name "z" explicit_type "double"
10871         cpp_decl "    ${description}${inline}${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}${)}${volatile}${throw};
10873         cpp_def "${description}${inline}${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}${)}${volatile}${throw} :
10874   _x(x),
10875   _y(y),
10876   _z(z)
10878   ${body}}
10880         
10881         
10882       end
10884       operation 129282 "svector"
10885         stereotype "copy"
10886         public explicit_return_type ""
10887         nparams 1
10888           param in name "source" type class_ref 128002 // svector
10889         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
10891         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
10892   _x(source._x),
10893   _y(source._y),
10894   _z(source._z)
10896   ${body}}
10898         
10899         
10900       end
10902       operation 129666 "x"
10903         public explicit_return_type "double"
10904         nparams 0
10905         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
10907         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
10909   ${body}}
10911         
10912         
10913       end
10915       operation 129794 "y"
10916         public explicit_return_type "double"
10917         nparams 0
10918         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
10920         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
10922   ${body}}
10924         
10925         
10926       end
10928       operation 129922 "z"
10929         public explicit_return_type "double"
10930         nparams 0
10931         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
10933         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
10935   ${body}}
10937         
10938         
10939       end
10941       operation 130050 "x"
10942         const public explicit_return_type "double"
10943         nparams 0
10944         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} const & ${name}${(}${)}${const}${volatile}${throw}${abstract};
10946         cpp_def "${description}${inline}${type} const & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
10948   ${body}}
10950         
10951         
10952       end
10954       operation 130178 "y"
10955         const public explicit_return_type "double"
10956         nparams 0
10957         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} const & ${name}${(}${)}${const}${volatile}${throw}${abstract};
10959         cpp_def "${description}${inline}${type} const & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
10961   ${body}}
10963         
10964         
10965       end
10967       operation 130306 "z"
10968         const public explicit_return_type "double"
10969         nparams 0
10970         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} const & ${name}${(}${)}${const}${volatile}${throw}${abstract};
10972         cpp_def "${description}${inline}${type} const & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
10974   ${body}}
10976         
10977         
10978       end
10980       operation 130434 "operator=="
10981         const public explicit_return_type "bool"
10982         nparams 1
10983           param in name "v" type class_ref 128002 // svector
10984         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
10986         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
10988   ${body}}
10990         
10991         
10992       end
10994       operation 130562 "operator*="
10995         public return_type class_ref 128002 // svector
10996         nparams 1
10997           param in name "v" type class_ref 128002 // svector
10998         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11000         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11002   ${body}}
11004         
11005         
11006       end
11008       operation 131202 "operator*="
11009         public return_type class_ref 128002 // svector
11010         nparams 1
11011           param in name "M" type class_ref 128514 // smatrix
11012         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11014         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11016   ${body}}
11018         
11019         
11020       end
11022       operation 131330 "operator*="
11023         public return_type class_ref 128002 // svector
11024         nparams 1
11025           param in name "d" explicit_type "double"
11026         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11028         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11030   ${body}}
11032         
11033         
11034       end
11036       operation 131458 "operator/="
11037         public return_type class_ref 128002 // svector
11038         nparams 1
11039           param in name "d" explicit_type "double"
11040         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11042         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11044   ${body}}
11046         
11047         
11048       end
11050       operation 131586 "operator-="
11051         public return_type class_ref 128002 // svector
11052         nparams 1
11053           param in name "v" type class_ref 128002 // svector
11054         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11056         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11058   ${body}}
11060         
11061         
11062       end
11064       operation 131714 "sum"
11065         const public explicit_return_type "double"
11066         nparams 0
11067         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
11069         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
11071   ${body}}
11073         
11074         
11075       end
11077       operation 131842 "set"
11078         public explicit_return_type "void"
11079         nparams 3
11080           param in name "x" explicit_type "double"
11081           param in name "y" explicit_type "double"
11082           param in name "z" explicit_type "double"
11083         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}${)}${const}${volatile}${throw}${abstract};
11085         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}${)}${const}${volatile}${throw}${staticnl}
11087   ${body}}
11089         
11090         
11091       end
11093       operation 131970 "scalar"
11094         const public explicit_return_type "double"
11095         nparams 1
11096           param in name "v" type class_ref 128002 // svector
11097         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11099         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11101   ${body}}
11103         
11104         
11105       end
11107       operation 132098 "vectorialProduct"
11108         const public return_type class_ref 128002 // svector
11109         nparams 1
11110           param in name "v" type class_ref 128002 // svector
11111         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11113         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11115   ${body}}
11117         
11118         
11119       end
11121       operation 132226 "angle"
11122         const public explicit_return_type "double"
11123         nparams 1
11124           param in name "v" type class_ref 128002 // svector
11125         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11127         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11129   ${body}}
11131         
11132         
11133       end
11135       operation 132354 "axisSystem"
11136         const public return_type class_ref 128514 // smatrix
11137         nparams 1
11138           param in name "v" type class_ref 128002 // svector
11139         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11141         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11143   ${body}}
11145         
11146         
11147       end
11149       operation 132482 "norm2"
11150         const public explicit_return_type "double"
11151         nparams 0
11152         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
11154         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
11156   ${body}}
11158         
11159         
11160       end
11162       operation 132610 "normalize"
11163         const public return_type class_ref 128002 // svector
11164         nparams 0
11165         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
11167         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
11169   ${body}}
11171         
11172         
11173       end
11175       operation 132738 "isColinear"
11176         const public explicit_return_type "bool"
11177         nparams 1
11178           param in name "v" type class_ref 128002 // svector
11179         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11181         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11183   ${body}}
11185         
11186         
11187       end
11189       operation 132866 "randomize"
11190         public explicit_return_type "void"
11191         nparams 0
11192         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
11194         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
11196   ${body}}
11198         
11199         
11200       end
11202       operation 132994 "randomize"
11203         public return_type class_ref 128002 // svector
11204         nparams 1
11205           param in name "v" type class_ref 128002 // svector
11206         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11208         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11210   ${body}}
11212         
11213         
11214       end
11216       operation 133122 "randomize"
11217         public return_type class_ref 128002 // svector
11218         nparams 2
11219           param in name "v1" type class_ref 128002 // svector
11220           param in name "v2" type class_ref 128002 // svector
11221         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${const}${volatile}${throw}${abstract};
11223         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${const}${volatile}${throw}${staticnl}
11225   ${body}}
11227         
11228         
11229       end
11231       operation 133378 "rotatedAroundVector"
11232         const public return_type class_ref 128002 // svector
11233         nparams 2
11234           param in name "axe" type class_ref 128002 // svector
11235           param in name "angle" explicit_type "double"
11236         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${abstract};
11238         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}
11240   ${body}}
11242         
11243         
11244         comment "/**
11245  * \\brief rotate a vector around another one with an angle.
11246  * \\param axe The svector corresponding to the rotation axe.
11247  * \\param angle the angle of rotation.
11248  * \\return The new vector.
11249  */"
11250       end
11252       operation 133506 "printToStream"
11253         const public return_type class_ref 152194 // ostream
11254         nparams 1
11255           param inout name "flux" type class_ref 152194 // ostream
11256         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11258         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11260   ${body}}
11262         
11263         
11264       end
11266       operation 133634 "toStream"
11267         const public return_type class_ref 152194 // ostream
11268         nparams 1
11269           param inout name "flux" type class_ref 152194 // ostream
11270         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11272         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11274   ${body}}
11276         
11277         
11278       end
11280       operation 133762 "fromStream"
11281         public return_type class_ref 152322 // istream
11282         nparams 1
11283           param inout name "flux" type class_ref 152322 // istream
11284         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11286         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11288   ${body}}
11290         
11291         
11292         comment "/*!
11293  * \\brief Restore a ${class} from a stream.
11294  * \\param flux The stream containing the ${class} to restore.
11295  */"
11296       end
11298       operation 135554 "norminf"
11299         const public explicit_return_type "double"
11300         nparams 0
11301         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
11303         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
11305   ${body}}
11307         
11308         
11309       end
11310     end
11312     class 128060 "Value"
11313       visibility package 
11314       cpp_decl "${description}${template}class ${name}${inherit} {
11315 ${members}};
11316 ${inlines}
11318       java_decl "${comment}${@}${public}interface ${name}${extends} {
11319 ${members}}
11321       idl_decl "${comment}${abstract}${local}interface ${name}${inherit} {
11322 ${members}};
11324       explicit_switch_type ""
11325       
11326       comment "/**
11327   * @brief the class use to store a double with an unit.
11328   */"
11329       attribute 128060 "_value"
11330         protected explicit_type "double"
11331         init_value "0."
11332         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
11334         java_decl ""
11335         idl_decl ""
11336         get_oper operation_ref 128107 // get_value
11337         set_oper operation_ref 128235 // set_value
11338       end
11340       operation 128188 "Value"
11341         stereotype "constructor"
11342         public explicit_return_type ""
11343         nparams 0
11344         cpp_decl "    ${description}${inline}${name}${(}${)}${volatile}${throw};
11346         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} :
11347   _value(0)
11349   ${body}}
11351         
11352         
11353         comment "/**
11354  * @brief The default constructor.
11355  */"
11356       end
11358       operation 128054 "Value"
11359         stereotype "constructor"
11360         public explicit_return_type ""
11361         nparams 1
11362           param in name "value" explicit_type "double"
11363         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
11365         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
11366   _value(value)
11368   ${body}}
11370         
11371         
11372         comment "/**
11373  * @brief A constructor from a double
11374  */"
11375       end
11377       operation 147970 "Value"
11378         stereotype "copy"
11379         public explicit_return_type ""
11380         nparams 1
11381           param in name "source" type class_ref 128060 // Value
11382         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
11384         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
11385  _value(source._value) 
11387   ${body}}
11389         
11390         
11391       end
11393       operation 128107 "get_value"
11394         const cpp_inline public explicit_return_type "double"
11395         nparams 0
11396         cpp_decl "    ${description}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw};
11398         cpp_def "${description}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
11400   return _value;
11403         cpp_name_spec "get${name}"
11404         final 
11405         java_name_spec "get_${name}"
11406         
11407         idl_name_spec "get_${name}"
11408         get_of_attribute attribute_ref 128060 // _value
11409         comment "/**
11410  *  @brief The get accessor.
11411  */"
11412       end
11414       operation 128235 "set_value"
11415         public explicit_return_type "void"
11416         nparams 1
11417           param in name "value" explicit_type "double"
11418         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw};
11420         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11422   _value = ${p0};
11425         cpp_name_spec "set${name}"
11426         
11427         java_name_spec "set_${name}"
11428         
11429         idl_name_spec "set_${name}"
11430         set_of_attribute attribute_ref 128060 // _value
11431         comment "/**
11432  *  @brief The set accessor
11433  *  @param ${p0} the ${class} to set.
11434  */"
11435       end
11437       operation 128363 "operator=="
11438         const public explicit_return_type "bool"
11439         nparams 1
11440           param in name "value" type class_ref 128060 // Value
11441         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11443         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11445   ${body}}
11447         
11448         
11449       end
11451       operation 263426 "operator!="
11452         const public explicit_return_type "bool"
11453         nparams 1
11454           param in name "value" type class_ref 128060 // Value
11455         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11457         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11459   ${body}}
11461         
11462         
11463       end
11465       operation 128004 "operator<="
11466         const public explicit_return_type "bool"
11467         nparams 1
11468           param in name "value" type class_ref 128060 // Value
11469         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11471         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11473   ${body}}
11475         
11476         
11477       end
11479       operation 152194 "operator>="
11480         const public explicit_return_type "bool"
11481         nparams 1
11482           param in name "value" type class_ref 128060 // Value
11483         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11485         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11487   ${body}}
11489         
11490         
11491       end
11493       operation 128260 "operator<"
11494         const public explicit_return_type "bool"
11495         nparams 1
11496           param in name "value" type class_ref 128060 // Value
11497         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11499         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11501   ${body}}
11503         
11504         
11505       end
11507       operation 128388 "operator>"
11508         const public explicit_return_type "bool"
11509         nparams 1
11510           param in name "value" type class_ref 128060 // Value
11511         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11513         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11515   ${body}}
11517         
11518         
11519       end
11521       operation 128516 "operator+="
11522         public return_type class_ref 128060 // Value
11523         nparams 1
11524           param in name "value" type class_ref 128060 // Value
11525         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11527         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11529   ${body}}
11531         
11532         
11533       end
11535       operation 128644 "operator-="
11536         public return_type class_ref 128060 // Value
11537         nparams 1
11538           param in name "value" type class_ref 128060 // Value
11539         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11541         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11543   ${body}}
11545         
11546         
11547       end
11549       operation 128772 "operator*="
11550         public return_type class_ref 128060 // Value
11551         nparams 1
11552           param in name "value" type class_ref 128060 // Value
11553         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11555         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11557   ${body}}
11559         
11560         
11561       end
11563       operation 128900 "operator/="
11564         public return_type class_ref 128060 // Value
11565         nparams 1
11566           param in name "value" type class_ref 128060 // Value
11567         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11569         cpp_def "${description}${inline}${type} & ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11571   ${body}}
11573         
11574         
11575       end
11577       operation 129028 "operator+"
11578         const public return_type class_ref 128060 // Value
11579         nparams 1
11580           param in name "value" type class_ref 128060 // Value
11581         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11583         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11585   ${body}}
11587         
11588         
11589       end
11591       operation 129156 "operator-"
11592         const public return_type class_ref 128060 // Value
11593         nparams 1
11594           param in name "value" type class_ref 128060 // Value
11595         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11597         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11599   ${body}}
11601         
11602         
11603       end
11605       operation 129284 "operator*"
11606         const public return_type class_ref 128060 // Value
11607         nparams 1
11608           param in name "value" type class_ref 128060 // Value
11609         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11611         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11613   ${body}}
11615         
11616         
11617       end
11619       operation 129412 "operator/"
11620         const public return_type class_ref 128060 // Value
11621         nparams 1
11622           param in name "value" type class_ref 128060 // Value
11623         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11625         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11627   ${body}}
11629         
11630         
11631       end
11633       operation 129540 "printToStream"
11634         const public return_type class_ref 152194 // ostream
11635         nparams 1
11636           param inout name "flux" type class_ref 152194 // ostream
11637         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11639         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11641   ${body}}
11643         
11644         
11645         comment "/*!
11646  * \\brief print the ${class} into a flux
11647  * \\param flux The stream to print into.
11648  */"
11649       end
11651       operation 128182 "toStream"
11652         const public return_type class_ref 152194 // ostream
11653         nparams 1
11654           param inout name "flux" type class_ref 152194 // ostream
11655         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11657         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11659   ${body}}
11661         
11662         
11663         comment "/*!
11664  * \\brief Save the ${class} into a stream.
11665  * \\param flux the stream to save the ${class} into.
11666  * \\return The stream with the ${class}.
11667  */"
11668       end
11670       operation 128310 "fromStream"
11671         public return_type class_ref 152322 // istream
11672         nparams 1
11673           param inout name "flux" type class_ref 152322 // istream
11674         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11676         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11678   ${body}}
11680         
11681         
11682         comment "/*!
11683  * \\brief Restore a ${class} from a stream.
11684  * \\param flux The stream containing the ${class} to restore.
11685  */"
11686       end
11687     end
11689     class 133378 "Sample"
11690       abstract visibility package 
11691       cpp_decl "${description}${template}class ${name}${inherit} {
11692 ${members}};
11693 ${inlines}
11695       java_decl ""
11696       idl_decl ""
11697       explicit_switch_type ""
11698       
11699       classrelation 134146 // <generalisation>
11700         relation 133762 ---|>
11701           a public
11702             cpp default "${type}"
11703             classrelation_ref 134146 // <generalisation>
11704           b multiplicity "" parent class_ref 131330 // FitParameterList
11705       end
11707       classrelation 134274 // <generalisation>
11708         relation 133890 ---|>
11709           a public
11710             cpp default "${type}"
11711             classrelation_ref 134274 // <generalisation>
11712           b multiplicity "" parent class_ref 129410 // Object
11713       end
11715       attribute 137858 "_geometry"
11716         protected type class_ref 131714 // Geometry
11717         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} & ${name}${value};
11719         java_decl ""
11720         idl_decl ""
11721       end
11723       attribute 137986 "_lattice"
11724         protected type class_ref 131586 // Lattice
11725         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} ${name}${value};
11727         java_decl ""
11728         idl_decl ""
11729       end
11731       classrelation 134786 // _reflections (<directional aggregation>)
11732         relation 134402 o-->
11733           a role_name "_reflections" multiplicity "1" protected
11734             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
11736             classrelation_ref 134786 // _reflections (<directional aggregation>)
11737           b multiplicity "" parent class_ref 133634 // ReflectionList
11738       end
11740       operation 185346 "Sample"
11741         protected explicit_return_type ""
11742         nparams 2
11743           param inout name "geometry" type class_ref 131714 // Geometry
11744           param in name "name" type class_ref 129026 // string
11745         cpp_decl "    ${description}${inline}${name}${(}${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw};
11747         cpp_def "${description}${inline}${class}::${name}${(}${t0} & ${p0}, const ${t1} & ${p1}${)}${volatile}${throw} :
11748   FitParameterList(),
11749   Object(name, \"no description\"),
11750   _geometry(geometry)
11752   ${body}}
11754         
11755         
11756         comment "/**
11757  * @brief The default constructor
11758  * @param geometry The geometry use to create the Reflections.
11759  * @param name The name of the Reflections.
11760  */
11762       end
11764       operation 191874 "~Sample"
11765         cpp_virtual public explicit_return_type ""
11766         nparams 0
11767         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
11769         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
11771   ${body}}
11773         
11774         
11775       end
11777       operation 185474 "Sample"
11778         stereotype "copy"
11779         protected explicit_return_type ""
11780         nparams 1
11781           param in name "source" type class_ref 133378 // Sample
11782         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
11784         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
11785   FitParameterList(),
11786   Object(source),
11787   _geometry(source._geometry),
11788   _lattice(source._lattice)
11790   ${body}}
11792         
11793         
11794       end
11796       operation 188290 "clone"
11797         abstract const cpp_virtual public return_type class_ref 133378 // Sample
11798         nparams 0
11799         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
11801         
11802         
11803         comment "/**
11804  * @brief Clone the current Sample.
11805  * @return A pointer on the cloned sample.
11806  */
11808       end
11810       operation 188418 "get_UB"
11811         abstract cpp_virtual public return_type class_ref 128514 // smatrix
11812         nparams 0
11813         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
11815         
11816         
11817         comment "/**
11818  * @brief Get the UB matrix of the Sample.
11819  * @return The UB matrix.
11820  */
11822       end
11824       operation 188546 "get_type"
11825         abstract cpp_virtual public return_type class_ref 134018 // SampleType
11826         nparams 0
11827         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
11829         
11830         
11831         comment "/**
11832  * @brief Get the type of the Sample.
11833  * 
11834  * @return The Sample type.
11836  * this method is use during the toStream and fromStream process.
11837  */
11839       end
11841       operation 188674 "lattice"
11842         public return_type class_ref 131586 // Lattice
11843         nparams 0
11844         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
11846         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
11848   ${body}}
11850         
11851         
11852         comment "/**
11853  * @brief Get the Lattice of the Sample.
11854  * 
11855  * @return A reference on the Lattice.
11856  */
11858       end
11860       operation 188802 "reflections"
11861         public return_type class_ref 133634 // ReflectionList
11862         nparams 0
11863         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
11865         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
11867   ${body}}
11869         
11870         
11871         comment "/**
11872  * @brief Get the reflections associated with the Sample.
11873  * 
11874  * @return A reference on thoses reflections.
11875  */
11877       end
11879       operation 188930 "operator=="
11880         const public explicit_return_type "bool"
11881         nparams 1
11882           param in name "sample" type class_ref 133378 // Sample
11883         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11885         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11887   ${body}}
11889         
11890         
11891         comment "/**
11892  * \\brief Are two ${class} equals ?
11893  * \\param ${p0} the ${t0} to compare with.
11894  * \\return true if both are equals flase otherwise.
11895  */"
11896       end
11898       operation 189058 "printToStream"
11899         const public return_type class_ref 152194 // ostream
11900         nparams 1
11901           param inout name "flux" type class_ref 152194 // ostream
11902         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11904         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11906   ${body}}
11908         
11909         
11910         comment "/**
11911  * @brief print the ${class} into a flux
11912  * @param ${p0} The stream to print into.
11913  * @return The modified flux.
11914  */"
11915       end
11917       operation 189186 "toStream"
11918         const public return_type class_ref 152194 // ostream
11919         nparams 1
11920           param inout name "flux" type class_ref 152194 // ostream
11921         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11923         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11925   ${body}}
11927         
11928         
11929         comment "/**
11930  * @brief print on a stream the content of the ${class}
11931  * @param flux the ostream to modify.
11932  * @return the modified ostream
11933  */"
11934       end
11936       operation 189314 "fromStream"
11937         public return_type class_ref 152322 // istream
11938         nparams 1
11939           param inout name "flux" type class_ref 152322 // istream
11940         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
11942         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
11944   ${body}}
11946         
11947         
11948         comment "/**
11949  * @brief restore the content of the ${class} from an istream
11950  * @param flux the istream.
11951  * @return the modified istream.
11952  * @todo problem of security here.
11953  */"
11954       end
11955     end
11957     class 134274 "SampleFactory"
11958       visibility package 
11959       cpp_decl "${description}${template}class ${name}${inherit} {
11960 ${members}};
11961 ${inlines}
11963       java_decl ""
11964       idl_decl ""
11965       explicit_switch_type ""
11966       
11967       attribute 139138 "_geometry"
11968         protected type class_ref 131714 // Geometry
11969         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} & ${name}${value};
11971         java_decl ""
11972         idl_decl ""
11973       end
11975       operation 192002 "SampleFactory"
11976         public explicit_return_type ""
11977         nparams 1
11978           param inout name "geometry" type class_ref 131714 // Geometry
11979         cpp_decl "    ${description}${inline}${name}${(}${t0} & ${p0}${)}${volatile}${throw};
11981         cpp_def "${description}${inline}${class}::${name}${(}${t0} & ${p0}${)}${volatile}${throw} :
11982   _geometry(geometry) 
11984   ${body}}
11986         
11987         
11988         comment "/**
11989  * @brief The default constructor.
11990  * @param geometry the Geometry use to fill the Reflection._geometry.
11991  */
11993       end
11995       operation 192258 "types"
11996         const public explicit_return_type "std::vector<SampleType>"
11997         nparams 0
11998         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
12000         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
12002   ${body}}
12004         
12005         
12006       end
12008       operation 192130 "create"
12009         const public return_type class_ref 133378 // Sample
12010         nparams 2
12011           param in name "name" type class_ref 129026 // string
12012           param in name "type" type class_ref 134018 // SampleType
12013         nexceptions 1
12014           exception class_ref 128182 // HKLException
12015         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${abstract};
12017         cpp_def "${description}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}
12019   ${body}}
12021         
12022         
12023         comment "/**
12024  * @brief Create a new reflection.
12025  * @return The created Reflection.
12026  */
12028       end
12029     end
12031     class 134402 "SampleList"
12032       visibility package 
12033       cpp_decl "${description}${template}class ${name}${inherit} {
12034 ${members}};
12035 ${inlines}
12037       java_decl ""
12038       idl_decl ""
12039       explicit_switch_type ""
12040       
12041       attribute 139394 "_geometry"
12042         protected type class_ref 131714 // Geometry
12043         cpp_decl "    ${description}${static}${mutable}${volatile}${const}${type} & ${name}${value};
12045         java_decl ""
12046         idl_decl ""
12047       end
12049       classrelation 135298 // _current (<directional aggregation>)
12050         relation 134914 o-->
12051           a role_name "_current" multiplicity "1" protected
12052             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
12054             classrelation_ref 135298 // _current (<directional aggregation>)
12055           b multiplicity "" parent class_ref 133378 // Sample
12056       end
12058       classrelation 135426 // _samplefactory (<directional aggregation>)
12059         relation 135042 o-->
12060           a role_name "_samplefactory" multiplicity "1" protected
12061             cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
12063             classrelation_ref 135426 // _samplefactory (<directional aggregation>)
12064           b multiplicity "" parent class_ref 134274 // SampleFactory
12065       end
12067       classrelation 135554 // _samples (<directional aggregation>)
12068         relation 135170 o-->
12069           stereotype "vector"
12070           a role_name "_samples" multiplicity "*" protected
12071             cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type} *> ${name}${value};
12073             classrelation_ref 135554 // _samples (<directional aggregation>)
12074           b multiplicity "" parent class_ref 133378 // Sample
12075       end
12077       class 134530 "iterator"
12078         visibility package stereotype "typedef" explicit_base_type "std::vector<Sample *>::iterator"
12079         cpp_decl "${description}typedef ${type} ${name};
12081         java_decl ""
12082         idl_decl "${comment}typedef ${type} ${name};
12084         explicit_switch_type ""
12085         
12086       end
12088       class 134658 "const_iterator"
12089         visibility package stereotype "typedef" explicit_base_type "std::vector<Sample *>::const_iterator"
12090         cpp_decl "${description}typedef ${type} ${name};
12092         java_decl ""
12093         idl_decl "${comment}typedef ${type} ${name};
12095         explicit_switch_type ""
12096         
12097       end
12099       operation 192386 "SampleList"
12100         public explicit_return_type ""
12101         nparams 1
12102           param inout name "geometry" type class_ref 131714 // Geometry
12103         cpp_decl "    ${description}${inline}${name}${(}${t0} & ${p0}${)}${volatile}${throw};
12105         cpp_def "${description}${inline}${class}::${name}${(}${t0} & ${p0}${)}${volatile}${throw} :
12106   _geometry(geometry),
12107   _current(NULL) 
12109   ${body}}
12111         
12112         
12113         comment "/**
12114  * @brief Default constructor
12115  * @param geometry The Geometry related to the Reflection.
12116  */
12118       end
12120       operation 192514 "~SampleList"
12121         cpp_virtual public explicit_return_type ""
12122         nparams 0
12123         cpp_decl "    ${description}${inline}${virtual}${name}${(}${)}${volatile}${throw};
12125         cpp_def "${description}${inline}${class}::${name}${(}${)}${volatile}${throw} 
12127   ${body}}
12129         
12130         
12131         comment "/**
12132  * @brief The default destructor.
12133  */
12135       end
12137       operation 192642 "SampleList"
12138         stereotype "copy"
12139         public explicit_return_type ""
12140         nparams 1
12141           param in name "source" type class_ref 134402 // SampleList
12142         cpp_decl "    ${description}${inline}${name}${(}const ${t0} & ${p0}${)}${volatile}${throw};
12144         cpp_def "${description}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${volatile}${throw} :
12145   _geometry(source._geometry) 
12147   ${body}}
12149         
12150         
12151         comment "/**
12152  * @brief The copy constructor.
12153  * @param ${p0} The ${t0} to copy from.
12154  */
12156       end
12158       operation 194306 "types"
12159         const public explicit_return_type "std::vector<SampleType>"
12160         nparams 0
12161         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
12163         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
12165   ${body}}
12167         
12168         
12169         comment "/**
12170  * @brief Get a list of all Sample type available.
12171  * @return A vector fill with all available sample type.
12172  */"
12173       end
12175       operation 192898 "add"
12176         public return_type class_ref 133378 // Sample
12177         nparams 2
12178           param in name "name" type class_ref 129026 // string
12179           param in name "type" type class_ref 134018 // SampleType
12180         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${abstract};
12182         cpp_def "${description}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}
12184   ${body}}
12186         
12187         
12188         comment "/**
12189  * @brief Add a Sample to the SampleList.
12190  * @param name The name of the Sample
12191  * @param type The type of the Sample to add
12192  * @throw HKLException if a sample with the same name is already present in the list. 
12193  */"
12194       end
12196       operation 194434 "add_copy"
12197         public return_type class_ref 133378 // Sample
12198         nparams 1
12199           param inout name "pos" type class_ref 134658 // const_iterator
12200         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
12202         cpp_def "${description}${inline}${type} * ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
12204   ${body}}
12206         
12207         
12208         comment "/**
12209  * @brief add a copy of a sample
12210  * @param pos An iterator on the Sample to copy.
12211  */"
12212       end
12214       operation 194562 "erase"
12215         public explicit_return_type "void"
12216         nparams 1
12217           param inout name "pos" type class_ref 134530 // iterator
12218         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
12220         cpp_def "${description}${inline}${type} ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
12222   ${body}}
12224         
12225         
12226         comment "/**
12227  * @brief Remove a sample from the SampleList.
12228  * @param pos the position of the Sample.
12229  * @throw HKLException If the sample is not present. 
12230  */"
12231       end
12233       operation 194690 "clear"
12234         public explicit_return_type "void"
12235         nparams 0
12236         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
12238         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
12240   ${body}}
12242         
12243         
12244         comment "/**
12245  * @brief Remove all sample from the SampleList.
12246  */"
12247       end
12249       operation 192770 "set_current"
12250         public return_type class_ref 133378 // Sample
12251         nparams 1
12252           param in name "name" type class_ref 129026 // string
12253         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
12255         cpp_def "${description}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
12257   ${body}}
12259         
12260         
12261         comment "/**
12262  * @brief Set the nth sample as the current sample.
12263  * @param name The name of the sample to set as current.
12264  * @throw HKLException if the index is out of range.
12265  */"
12266       end
12268       operation 195202 "get_current"
12269         const public return_type class_ref 133378 // Sample
12270         nparams 0
12271         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
12273         cpp_def "${description}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
12275   ${body}}
12277         
12278         
12279         comment "/**
12280  * @brief Get the current sample
12281  * @return A pointer on the current sample.
12282  */"
12283       end
12285       operation 193026 "current"
12286         public return_type class_ref 133378 // Sample
12287         nparams 0
12288         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
12290         cpp_def "${description}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
12292   ${body}}
12294         
12295         
12296         comment "/**
12297  * @brief Get the current sample
12298  * @return A pointer on the current sample.
12299  */"
12300       end
12302       operation 193154 "get_names"
12303         const public explicit_return_type "std::vector<std::string>"
12304         nparams 0
12305         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
12307         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
12309   ${body}}
12311         
12312         
12313         comment "/**
12314  * @brief Return the names of all samples.
12315  */
12317       end
12319       operation 194818 "size"
12320         const public explicit_return_type "uint"
12321         nparams 0
12322         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
12324         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
12326   ${body}}
12328         
12329         
12330       end
12332       operation 193410 "operator[]"
12333         public return_type class_ref 133378 // Sample
12334         nparams 1
12335           param in name "name" type class_ref 129026 // string
12336         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
12338         cpp_def "${description}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
12340   ${body}}
12342         
12343         
12344       end
12346       operation 193538 "begin"
12347         public explicit_return_type "SampleList::iterator"
12348         nparams 0
12349         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
12351         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
12353   ${body}}
12355         
12356         
12357         comment "/**
12358  * @brief Get an iterator on the first element of ReflectionList.
12359  * @return The iterator.
12360  */
12362       end
12364       operation 193666 "end"
12365         public explicit_return_type "SampleList::iterator"
12366         nparams 0
12367         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
12369         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
12371   ${body}}
12373         
12374         
12375         comment "/**
12376  * @brief Get an iterator on the end of ReflectionList.
12377  * @return The iterator.
12378  */
12380       end
12382       operation 194946 "begin"
12383         const public explicit_return_type "SampleList::const_iterator"
12384         nparams 0
12385         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
12387         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
12389   ${body}}
12391         
12392         
12393         comment "/**
12394  * @brief Get an iterator on the first element of ReflectionList.
12395  * @return The iterator.
12396  */
12398       end
12400       operation 195074 "end"
12401         const public explicit_return_type "SampleList::const_iterator"
12402         nparams 0
12403         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
12405         cpp_def "${description}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}
12407   ${body}}
12409         
12410         
12411         comment "/**
12412  * @brief Get an iterator on the end of ReflectionList.
12413  * @return The iterator.
12414  */
12416       end
12418       operation 193794 "operator=="
12419         const public explicit_return_type "bool"
12420         nparams 1
12421           param in name "sampleList" type class_ref 134402 // SampleList
12422         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
12424         cpp_def "${description}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
12426   ${body}}
12428         
12429         
12430         comment "/**
12431  * \\brief Are two ${class} equals ?
12432  * \\param ${p0} the ${t0} to compare with.
12433  * \\return true if both are equals flase otherwise.
12434  */"
12435       end
12437       operation 193922 "printToStream"
12438         const public return_type class_ref 152194 // ostream
12439         nparams 1
12440           param inout name "flux" type class_ref 152194 // ostream
12441         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
12443         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
12445   ${body}}
12447         
12448         
12449         comment "/**
12450  * @brief print the ${class} into a flux
12451  * @param ${p0} The stream to print into.
12452  * @return The modified flux.
12453  */"
12454       end
12456       operation 194050 "toStream"
12457         const public return_type class_ref 152194 // ostream
12458         nparams 1
12459           param inout name "flux" type class_ref 152194 // ostream
12460         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
12462         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
12464   ${body}}
12466         
12467         
12468         comment "/**
12469  * @brief print on a stream the content of the ${class}
12470  * @param flux the ostream to modify.
12471  * @return the modified ostream
12472  */"
12473       end
12475       operation 194178 "fromStream"
12476         public return_type class_ref 152322 // istream
12477         nparams 1
12478           param inout name "flux" type class_ref 152322 // istream
12479         cpp_decl "    ${description}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${abstract};
12481         cpp_def "${description}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}
12483   ${body}}
12485         
12486         
12487         comment "/**
12488  * @brief restore the content of the ${class} from an istream
12489  * @param flux the istream.
12490  * @return the modified istream.
12491  * @todo problem of security here.
12492  */"
12493       end
12494     end
12496     class 134018 "SampleType"
12497       visibility package stereotype "enum"
12498       cpp_decl "${description}enum ${name} {
12499 ${items}};
12501       java_decl "${comment}${@}${public}${final}${abstract}enum ${name}${implements} {
12502 ${items};
12503 ${members}}
12505       idl_decl "${comment}enum ${name} {
12506 ${items}};
12508       explicit_switch_type ""
12509       
12510       attribute 138498 "SAMPLE_MONOCRYSTAL"
12511         public explicit_type ""
12512         cpp_decl "  ${name}${value},${comment}"
12513         java_decl ""
12514         idl_decl ""
12515       end
12516     end
12518     class 147202 "_vector_int_"
12519       visibility package stereotype "typedef" base_type class_ref 146818 // vector
12520       nactuals 1
12521       actual class class_ref 146818 // vector
12522         rank 0 explicit_value "int"
12523       cpp_decl "${comment}typedef ${type} ${name};
12525       java_decl ""
12526       idl_decl "${comment}typedef ${type} ${name};
12528       explicit_switch_type ""
12529       
12530       classrelation 169346 // <generalisation>
12531         relation 167938 ---|>
12532           a public
12533             cpp default "${type}"
12534             classrelation_ref 169346 // <generalisation>
12535           b multiplicity "" parent class_ref 146818 // vector
12536       end
12537     end
12539     class 147330 "_vector_vector_int_"
12540       visibility package stereotype "typedef" base_type class_ref 146818 // vector
12541       nactuals 1
12542       actual class class_ref 146818 // vector
12543         rank 0 value class_ref 147202 // _vector_int_
12544       cpp_decl "${comment}typedef ${type} ${name};
12546       java_decl ""
12547       idl_decl "${comment}typedef ${type} ${name};
12549       explicit_switch_type ""
12550       
12551       classrelation 169474 // <generalisation>
12552         relation 168066 ---|>
12553           a public
12554             cpp default "${type}"
12555             classrelation_ref 169474 // <generalisation>
12556           b multiplicity "" parent class_ref 146818 // vector
12557       end
12558     end
12559   end
12561   deploymentview 128060 "Deployment hkl"
12562     //deployment diagram settings
12563     package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
12564     draw_component_as_icon default show_component_req_prov default show_component_rea default
12565     artifact 134914 "affinement"
12566       stereotype "source"
12567       cpp_h "#ifndef _${NAME}_H
12568 #define _${NAME}_H
12570 ${description}
12571 ${includes}
12572 ${declarations}
12573 ${namespace_start}
12574 ${definition}
12575 ${namespace_end}
12578  * \\brief Overload of the << operator for the Affinement class
12579  */
12580 inline std::ostream &
12581 operator<<(std::ostream & flux, hkl::Affinement const & affinement)
12583   return affinement.printToStream(flux);
12585 #endif
12587       cpp_src "${description}
12588 ${includes}
12589 #include <iomanip>
12590 #include \"constant.h\"
12591 ${namespace_start}
12592 ${members}
12593 ${namespace_end}"
12594       associated_classes
12595         class_ref 142466 // Affinement
12596       end
12597     end
12599     artifact 135298 "affinementlist"
12600       stereotype "source"
12601       cpp_h "#ifndef _${NAME}_H
12602 #define _${NAME}_H
12604 ${description}
12605 ${includes}
12606 ${declarations}
12607 ${namespace_start}
12608 ${definition}
12609 ${namespace_end}
12610 inline std::ostream &
12611 operator <<(std::ostream & flux, hkl::AffinementList const & affinementList)
12613   return affinementList.printToStream(flux);
12616 #endif
12618       cpp_src "${description}
12619 ${includes}
12620 ${namespace_start}
12621 ${members}
12622 ${namespace_end}"
12623       associated_classes
12624         class_ref 142978 // AffinementList
12625       end
12626     end
12628     artifact 129410 "axe"
12629       stereotype "source"
12630       cpp_h "#ifndef _${NAME}_H
12631 #define _${NAME}_H
12633 ${description}
12634 ${includes}
12635 ${declarations}
12636 ${namespace_start}
12637 ${definition}
12638 ${namespace_end}
12641  * \\brief Overload of the << operator for the Axe class
12642  */
12643 inline std::ostream &
12644 operator<<(std::ostream & flux, hkl::Axe const & axe)
12646   return axe.printToStream(flux);
12650  * \\brief Overload of the << operator for the AxeList class
12651  */
12652 inline std::ostream &
12653 operator<<(std::ostream & flux, hkl::AxeList const & axeList)
12655   return axeList.printToStream(flux);
12657 #endif
12659       cpp_src "${description}
12660 ${includes}
12661 ${namespace_start}
12662 ${members}
12663 ${namespace_end}"
12664       associated_classes
12665         class_ref 151042 // AxeType
12666         class_ref 145282 // Axe
12667         class_ref 145410 // AxeList
12668       end
12669     end
12671     artifact 139906 "axefactory"
12672       stereotype "source"
12673       cpp_h "#ifndef _${NAMESPACE}_${NAME}_H
12674 #define _${NAMESPACE}_${NAME}_H
12676 ${description}
12677 ${includes}
12678 ${declarations}
12679 ${namespace_start}
12680 ${definition}
12681 ${namespace_end}
12682 #endif
12684       cpp_src "${description}
12685 ${includes}
12686 ${namespace_start}
12687 ${members}
12688 ${namespace_end}"
12689       associated_classes
12690         class_ref 150914 // AxeFactory
12691       end
12692     end
12694     artifact 128258 "constant"
12695       stereotype "source"
12696       cpp_h "#ifndef _${NAME}_H
12697 #define _${NAME}_H
12699 #include <cmath>
12700 #include <iostream>
12701 ${description}
12702 ${includes}
12703 ${declarations}
12704 ${namespace_start}
12705 ${definition}
12706 ${namespace_end}
12707 #endif
12709       cpp_src "${description}
12710 ${includes}
12711 ${namespace_start}
12712 ${members}
12713 ${namespace_end}"
12714       associated_classes
12715         class_ref 128130 // constant
12716       end
12717     end
12719     artifact 128642 "convenience"
12720       stereotype "source"
12721       cpp_h "#ifndef _CONVENIENCE_H
12722 #define _CONVENIENCE_H
12724 #include <HKLException.h>
12726 namespace hkl
12727   {
12728   namespace convenience
12729     {
12731     /**
12732      * @brief return the right angle in between[_pi,pi]
12733      * @param angle The angle to normalize.
12734      * @return The angle.
12735      */
12736     double normalizeAngle(double angle);
12738     /*!
12739      * \\brief Compute the atan2 function.
12740      * \\param s The y coordinate of the point P in the xOy plan.
12741      * \\param c The x coordinate of the point P in the xOy plan.
12742      * \\return the angle between Ox and OP.
12743      */
12744     double atan2(double s, double c);
12746     /*!
12747      * Compute the asin function.
12748      * \\param s The sinus of the angle.
12749      * \\throw HKLException if \\f$ /abs(s) > 1\\f$.
12750      * \\return The asinus of the angle.
12751      */
12752     double asin(double s) throw (HKLException);
12754   } // namespace convenience
12755 } // namespace hkl
12757 #endif //_CONVENIENCE_H
12759       cpp_src "#include \"portability.h\"
12761 #include <cmath>
12763 #include \"constant.h\"
12764 #include \"convenience.h\"
12766 namespace hkl
12767   {
12768   namespace convenience
12769     {
12771     double
12772     normalizeAngle(double angle)
12773     {
12774       double res = ::atan2(::sin(angle), ::cos(angle));
12775       if (fabs(res - constant::math::pi) < constant::math::epsilon
12776           && angle < 0)
12777         res = -res;
12779       return res;
12780     }
12782     double
12783     atan2(double s, double c)
12784     {
12785       double angle;
12787       if (fabs(s) < constant::math::epsilon) s = 0.;
12788       if (fabs(c) < constant::math::epsilon) c = 0.;
12789       angle = ::atan2(s, c);
12790       if (fabs(angle) < constant::math::epsilon) angle = 0.;
12791       return angle;
12792     }
12794     double
12795     asin(double s) throw (HKLException)
12796     {
12797       double angle;
12798       if (fabs(s) - 1. > constant::math::epsilon)
12799         HKLEXCEPTION(\"sinus bigger than 1.\", \"\");
12800       else
12801         angle = ::asin(s);
12803       if (fabs(angle) < constant::math::epsilon) angle = 0.;
12805       return angle;
12806     }
12808   } // namespace convenience
12809 } // namespace hkl
12811       associated_classes
12812       end
12813     end
12815     artifact 135426 "diffractometer"
12816       stereotype "source"
12817       cpp_h "#ifndef _${NAME}_H
12818 #define _${NAME}_H
12820 ${description}
12821 ${includes}
12822 ${declarations}
12823 ${namespace_start}
12824 ${definition}
12825 ${namespace_end}
12826 inline std::ostream &
12827 operator << (std::ostream & flux, hkl::Diffractometer const & diffractometer)
12829   return diffractometer.printToStream(flux);
12832 #endif
12834       cpp_src "${description}
12835 ${includes}
12836 #include \"portability.h\"
12837 ${namespace_start}
12838 ${members}
12839 ${namespace_end}"
12840       associated_classes
12841         class_ref 143362 // Diffractometer
12842         class_ref 143490 // DiffractometerTemp
12843       end
12844     end
12846     artifact 136194 "diffractometerfactory"
12847       stereotype "source"
12848       cpp_h "#ifndef _${NAME}_H
12849 #define _${NAME}_H
12851 ${description}
12852 ${includes}
12853 ${declarations}
12854 ${namespace_start}
12855 ${definition}
12856 ${namespace_end}
12857 #endif
12859       cpp_src "${description}
12860 ${includes}
12861 ${namespace_start}
12862 ${members}
12863 ${namespace_end}"
12864       associated_classes
12865         class_ref 144514 // DiffractometerType
12866         class_ref 144386 // DiffractometerFactory
12867       end
12868     end
12870     artifact 129538 "fitparameter"
12871       stereotype "source"
12872       cpp_h "#ifndef _${NAME}_H
12873 #define _${NAME}_H
12875 ${description}
12876 ${includes}
12877 ${declarations}
12878 ${namespace_start}
12879 ${definition}
12880 ${namespace_end}
12883  * \\brief Overload of the << operator for the FitParameter class
12884  * \\param flux
12885  * \\param fitParameter
12886  * \\return The flux modified.
12887  */
12888 inline std::ostream &
12889 operator<<(std::ostream & flux, hkl::FitParameter const & fitParameter)
12891   return fitParameter.printToStream(flux);
12894 #endif
12896       cpp_src "${description}
12897 ${includes}
12898 ${namespace_start}
12899 ${members}
12900 ${namespace_end}"
12901       associated_classes
12902         class_ref 130178 // FitParameter
12903       end
12904     end
12906     artifact 130050 "fitparameterlist"
12907       stereotype "source"
12908       cpp_h "#ifndef _${NAME}_H
12909 #define _${NAME}_H
12911 ${description}
12912 ${includes}
12913 ${declarations}
12914 ${namespace_start}
12915 ${definition}
12916 ${namespace_end}
12918  * @brief Overload of the << operator for the %FitParameterList class
12919  * @param flux
12920  * @param fitParameterList
12921  * @return the modified flux.
12922  */
12923 std::ostream &
12924 operator<<(std::ostream & flux, hkl::FitParameterList const & fitParameterList);
12925 #endif
12927       cpp_src "${description}
12928 ${includes}
12929 ${namespace_start}
12930 ${members}
12931 ${namespace_end}"
12932       associated_classes
12933         class_ref 131330 // FitParameterList
12934       end
12935     end
12937     artifact 130434 "geometry"
12938       stereotype "source"
12939       cpp_h "#ifndef _${NAME}_H
12940 #define _${NAME}_H
12942 ${description}
12943 ${includes}
12944 ${declarations}
12945 ${namespace_start}
12946 ${definition}
12947 ${namespace_end}
12950  * \\brief Surcharge de l'operateur << pour la class Geometry
12951  * \\param flux 
12952  * \\param geometry
12954  * This function use the printToStream virtual function to print on screen
12955  * or in an ostream. Because the operator<< can not be declare as virtual
12956  * we need to use this hake to virtualize not the operator<< but the function
12957  * called by it printToStream
12958  */
12959 std::ostream &
12960 operator<<(std::ostream & flux, hkl::Geometry const & geometry);
12961 #endif
12963       cpp_src "${description}
12964 ${includes}
12965 ${namespace_start}
12966 ${members}
12967 ${namespace_end}
12970  * \\brief Surcharge de l'operateur << pour la class Geometry
12971  * \\param flux 
12972  * \\param geometry
12974  * This function use the printToStream virtual function to print on screen
12975  * or in an ostream. Because the operator<< can not be declare as virtual
12976  * we need to use this hake to virtualize not the operator<< but the function
12977  * called by it printToStream
12978  */
12979 std::ostream & operator<<(std::ostream & flux, hkl::Geometry const & geometry)
12981   return geometry.printToStream(flux);
12984       associated_classes
12985         class_ref 147202 // _vector_int_
12986         class_ref 147330 // _vector_vector_int_
12987         class_ref 131714 // Geometry
12988       end
12989     end
12991     artifact 128182 "HKLException"
12992       stereotype "source"
12993       cpp_h "#ifndef _${NAME}_H
12994 #define _${NAME}_H
12996 ${description}
12997 ${includes}
12998 #include <sstream>
13000 #define HKLEXCEPTION(a,b)  do {\\
13001     std::ostringstream location;\\
13002     location << __FILE__ << \" line : \" << __LINE__;\\
13003     throw HKLException((a),(b),location.str());\\
13004 } while(0)
13006 ${declarations}
13007 ${namespace_start}
13008 ${definition}
13009 ${namespace_end}
13010 #endif
13012       cpp_src "${description}
13013 ${includes}
13015 //#define DEBUG
13016 #ifdef DEBUG
13017 # include <iostream>
13018 #endif
13019 ${namespace_start}
13020 ${members}
13021 ${namespace_end}"
13022       idl_src "#ifndef _${NAME}_H
13023 #define _${NAME}_H
13025 ${comment}
13026 ${includes}
13027 ${module_start}
13028 ${definition}
13029 ${module_end}
13030 #endif
13032       associated_classes
13033         class_ref 128438 // ErrorSeverity
13034         class_ref 128310 // Error
13035         class_ref 128211 // ErrorList
13036         class_ref 128182 // HKLException
13037       end
13038     end
13040     artifact 129922 "hklobject"
13041       stereotype "source"
13042       cpp_h "#ifndef _${NAME}_H
13043 #define _${NAME}_H
13045 ${description}
13046 ${includes}
13047 ${declarations}
13048 ${namespace_start}
13049 ${definition}
13050 ${namespace_end}
13052  * @brief Overload of the << operator for the HKLObject class
13053  * @param flux
13054  * @param hklObject
13055  * @return the modified flux.
13056  */
13057 inline std::ostream &
13058 operator << (std::ostream & flux, hkl::HKLObject const & hklObject)
13060   return hklObject.printToStream(flux);
13063 #endif
13065       cpp_src "${description}
13066 ${includes}
13067 ${namespace_start}
13068 ${members}
13069 ${namespace_end}"
13070       associated_classes
13071         class_ref 131202 // HKLObject
13072       end
13073     end
13075     artifact 137602 "holder"
13076       stereotype "source"
13077       cpp_h "#ifndef _${NAMESPACE}_${NAME}_H
13078 #define _${NAMESPACE}_${NAME}_H
13080 ${description}
13081 ${includes}
13082 ${declarations}
13083 namespace hkl { class Holder; }
13084 ${namespace_start}
13085 ${definition}
13086 ${namespace_end}
13088  * @brief Overload of the << operator for the Holder class
13089  * @param flux
13090  * @param holder
13091  * @return the modified flux.
13092  */
13093 inline std::ostream &
13094 operator << (std::ostream & flux, hkl::Holder const & holder)
13096   return holder.printToStream(flux);
13100  * @brief Overload of the << operator for the HolderList class
13101  * @param flux
13102  * @param holders
13103  * @return the modified flux.
13104  */
13105 inline std::ostream &
13106 operator << (std::ostream & flux, hkl::HolderList const & holders)
13108   return holders.printToStream(flux);
13110 #endif
13112       cpp_src "${description}
13113 ${includes}
13114 ${namespace_start}
13115 ${members}
13116 ${namespace_end}"
13117       associated_classes
13118         class_ref 148610 // HolderRow
13119         class_ref 149762 // HolderList
13120         class_ref 148482 // Holder
13121       end
13122     end
13124     artifact 130306 "lattice"
13125       stereotype "source"
13126       cpp_h "#ifndef _${NAME}_H
13127 #define _${NAME}_H
13129 ${description}
13130 ${includes}
13131 #include \"fitparameter.h\"
13132 #include \"value.h\"
13133 ${declarations}
13134 ${namespace_start}
13135 ${definition}
13136 ${namespace_end}
13138  * @brief Surcharge de l'operateur << pour la class Lattice
13139  * @param flux The ostream to print into.
13140  * @param lattice The Lattice to print 
13141  * @return 
13142  */
13143 inline std::ostream &
13144 operator << (std::ostream & flux, hkl::Lattice const & lattice)
13146   return lattice.printToStream(flux);
13148 #endif
13150       cpp_src "${description}
13151 ${includes}
13152 ${namespace_start}
13153 ${members}
13154 ${namespace_end}"
13155       associated_classes
13156         class_ref 131586 // Lattice
13157       end
13158     end
13160     artifact 129666 "mymap"
13161       stereotype "source"
13162       cpp_h "#ifndef _${NAME}_H
13163 #define _${NAME}_H
13165 ${description}
13166 ${includes}
13167 ${declarations}
13168 ${namespace_start}
13169 ${definition}
13170 ${namespace_end}
13171 #endif
13173       associated_classes
13174         class_ref 130306 // MyMap
13175       end
13176     end
13178     artifact 128770 "mystring"
13179       stereotype "source"
13180       cpp_h "#ifndef _${NAME}_H
13181 #define _${NAME}_H
13183 ${description}
13184 ${includes}
13185 ${declarations}
13186 ${namespace_start}
13187 ${definition}
13188 ${namespace_end}
13189 #endif
13191       cpp_src "${description}
13192 ${includes}
13193 ${namespace_start}
13194 ${members}
13195 ${namespace_end}"
13196       java_src "${comment}
13197 ${package}
13198 ${imports}
13199 ${definition}"
13200       idl_src "#ifndef _${NAME}_H
13201 #define _${NAME}_H
13203 ${comment}
13204 ${includes}
13205 ${module_start}
13206 ${definition}
13207 ${module_end}
13208 #endif
13210       associated_classes
13211         class_ref 128898 // MyString
13212       end
13213     end
13215     artifact 128898 "object"
13216       stereotype "source"
13217       cpp_h "#ifndef _${NAME}_H
13218 #define _${NAME}_H
13220 ${description}
13221 ${includes}
13222 ${declarations}
13223 ${namespace_start}
13224 ${definition}
13225 ${namespace_end}
13227  * \\brief Surcharge de l'operateur << pour la class BaseObject
13228  * @param flux 
13229  * @param m 
13230  * @return 
13231  */
13232 inline std::ostream &
13233 operator << (std::ostream & flux, hkl::ObjectBase const & object)
13235   return object.printToStream(flux);
13237 #endif
13239       cpp_src "${description}
13240 ${includes}
13241 ${namespace_start}
13242 ${members}
13243 ${namespace_end}"
13244       associated_classes
13245         class_ref 129154 // ObjectBase
13246         class_ref 129282 // ObjectReadOnly
13247         class_ref 129410 // Object
13248       end
13249     end
13251     artifact 129026 "observer"
13252       stereotype "source"
13253       cpp_h "#ifndef _${NAME}_H
13254 #define _${NAME}_H
13256 ${description}
13257 ${includes}
13258 ${declarations}
13259 ${namespace_start}
13260 ${definition}
13261 ${namespace_end}
13262 #endif
13264       cpp_src "${description}
13265 ${includes}
13266 ${namespace_start}
13267 ${members}
13268 ${namespace_end}"
13269       associated_classes
13270         class_ref 129538 // Observer
13271         class_ref 129666 // Observable
13272       end
13273     end
13275     artifact 129282 "parameter"
13276       stereotype "source"
13277       cpp_h "#ifndef _${NAME}_H
13278 #define _${NAME}_H
13280 ${description}
13281 ${includes}
13282 ${declarations}
13283 ${namespace_start}
13284 ${definition}
13285 ${namespace_end}
13288  * \\brief Overload of the << operator for the Parameter class
13289  * \\param flux The ostream to modify.
13290  * \\param parameter The Parameter to print.
13291  * \\return the modified ostream 
13292  */
13293 inline std::ostream &
13294 operator<<(std::ostream & flux, hkl::Parameter const & parameter)
13296   return parameter.printToStream(flux);
13298 #endif
13300       cpp_src "${description}
13301 ${includes}
13302 ${namespace_start}
13303 ${members}
13304 ${namespace_end}"
13305       associated_classes
13306         class_ref 129922 // Parameter
13307       end
13308     end
13310     artifact 129794 "parameterlist"
13311       stereotype "source"
13312       cpp_h "#ifndef _${NAME}_H
13313 #define _${NAME}_H
13315 ${description}
13316 ${includes}
13317 ${declarations}
13318 ${namespace_start}
13319 ${definition}
13320 ${namespace_end}
13322  * @brief Overload of the << operator for the %ParameterList class
13323  * @param flux
13324  * @param parameterList
13325  * @return the modified flux.
13326  */
13327 inline std::ostream &
13328 operator<<(std::ostream & flux, hkl::ParameterList const & parameterList)
13330   return parameterList.printToStream(flux);
13333 #endif
13335       cpp_src "${description}
13336 ${includes}
13337 ${namespace_start}
13338 ${members}
13339 ${namespace_end}"
13340       associated_classes
13341         class_ref 131074 // ParameterList
13342       end
13343     end
13345     artifact 130562 "portability"
13346       stereotype "source"
13347       cpp_h "#define HKL_MAJOR 2
13348 #define HKL_MINOR 3
13349 #define HKL_PATCH 0
13351 #define HKL_VERSION (HKL_MAJOR * 10000 + HKL_MINOR * 100 + HKL_PATCH)
13353       associated_classes
13354       end
13355     end
13357     artifact 132610 "pseudoaxe"
13358       stereotype "source"
13359       cpp_h "#ifndef _${NAME}_H
13360 #define _${NAME}_H
13362 ${description}
13363 ${includes}
13364 ${declarations}
13365 ${namespace_start}
13366 ${definition}
13367 ${namespace_end}
13369  * \\brief Overload of the << operator for the PseudoAxe class
13370  */
13371 inline std::ostream &
13372 operator<<(std::ostream & flux, hkl::PseudoAxe const & pseudoAxe)
13374   return pseudoAxe.printToStream(flux);
13376 #endif
13378       cpp_src "${description}
13379 ${includes}
13380 ${namespace_start}
13381 ${members}
13382 ${namespace_end}"
13383       associated_classes
13384         class_ref 134786 // PseudoAxe
13385       end
13386     end
13388     artifact 132738 "pseudoaxeengine"
13389       stereotype "source"
13390       cpp_h "#ifndef _${NAME}_H
13391 #define _${NAME}_H
13393 ${description}
13394 ${includes}
13395 ${declarations}
13396 ${namespace_start}
13397 ${definition}
13398 ${namespace_end}
13400  * \\brief Overload of the << operator for the PseudoAxe class
13401  */
13402 template<typename T>
13403 inline std::ostream &
13404 operator<<(std::ostream & flux, hkl::PseudoAxeEngineTemp<T> const & pseudoAxeEngine)
13406   return pseudoAxeEngine.printToStream(flux);
13409 #endif
13411       cpp_src "${description}
13412 ${includes}
13413 ${namespace_start}
13414 ${members}
13415 ${namespace_end}"
13416       associated_classes
13417         class_ref 134914 // PseudoAxeEngine
13418         class_ref 135170 // PseudoAxeEngineTemp
13419         class_ref 144898 // PseudoAxeEngineWithSampleTemp
13420       end
13421     end
13423     artifact 132866 "pseudoaxeenginelist"
13424       stereotype "source"
13425       cpp_h "#ifndef _${NAME}_H
13426 #define _${NAME}_H
13428 ${description}
13429 ${includes}
13430 ${declarations}
13431 ${namespace_start}
13432 ${definition}
13433 ${namespace_end}
13435 inline std::ostream &
13436 operator <<(std::ostream & flux, hkl::PseudoAxeEngineList const & pseudoAxeEngineList)
13438   return pseudoAxeEngineList.printToStream(flux);
13441 #endif
13443       cpp_src "${description}
13444 ${includes}
13445 ${namespace_start}
13446 ${members}
13447 ${namespace_end}"
13448       associated_classes
13449         class_ref 135426 // PseudoAxeEngineList
13450       end
13451     end
13453     artifact 132994 "pseudoaxelist"
13454       stereotype "source"
13455       cpp_h "#ifndef _${NAME}_H
13456 #define _${NAME}_H
13458 ${description}
13459 ${includes}
13460 ${declarations}
13461 ${namespace_start}
13462 ${definition}
13463 ${namespace_end}
13465  * @brief Overload of the << operator for the %PseudoAxeList class
13466  * @param flux
13467  * @param pseudoAxeList
13468  * @return the modified flux.
13469  */
13470 inline std::ostream &
13471 operator<<(std::ostream & flux, hkl::PseudoAxeList const & pseudoAxeList)
13473   return pseudoAxeList.printToStream(flux);
13475 #endif
13477       cpp_src "${description}
13478 ${includes}
13479 ${namespace_start}
13480 ${members}
13481 ${namespace_end}"
13482       idl_src "#ifndef _${NAME}_H
13483 #define _${NAME}_H
13485 ${comment}
13486 ${includes}
13487 ${module_start}
13488 ${definition}
13489 ${module_end}
13490 #endif
13492       associated_classes
13493         class_ref 135042 // PseudoAxeList
13494       end
13495     end
13497     artifact 128386 "quaternion"
13498       stereotype "source"
13499       cpp_h "#ifndef _${NAME}_H
13500 #define _${NAME}_H
13502 ${description}
13503 ${includes}
13504 #include \"convenience.h\"
13505 ${declarations}
13506 ${namespace_start}
13507 ${definition}
13508 ${namespace_end}
13511  * \\brief Surcharge de l'operateur << pour la class Quaternion
13512  * @param flux 
13513  * @param m 
13514  * @return 
13515  */
13516 inline std::ostream &
13517 operator << (std::ostream & flux, hkl::Quaternion const & q)
13519   return q.printToStream(flux);
13521 #endif
13523       cpp_src "${description}
13524 ${includes}
13525 ${namespace_start}
13526 ${members}
13527 ${namespace_end}"
13528       associated_classes
13529         class_ref 128770 // Quaternion
13530       end
13531     end
13533     artifact 129154 "range"
13534       stereotype "source"
13535       cpp_h "#ifndef _${NAME}_H
13536 #define _${NAME}_H
13538 ${description}
13539 ${includes}
13540 ${declarations}
13541 ${namespace_start}
13542 ${definition}
13543 ${namespace_end}
13546  * \\brief Overload of the << operator for the Range clas
13547  * \\param flux The ostream to modify.
13548  * \\param range The range to print.
13549  * 
13550  * \\return the modified ostream 
13551  */
13552 inline std::ostream &
13553 operator<<(std::ostream & flux, hkl::Range const & range)
13555   return range.printToStream(flux);
13558 inline hkl::Range cos(hkl::Range const & range)
13560   hkl::Range res;
13562   double min = range.get_min().get_value();
13563   double current = range.get_current().get_value();
13564   double consign = range.get_consign().get_value();
13565   double max = range.get_max().get_value();
13567   if (max - min >= 2 * hkl::constant::math::pi)
13568     res.set(-1, cos(current), cos(consign), 1);
13569   else
13570     {
13571       int quad_min = (int)floor(2 * min / hkl::constant::math::pi) % 4;
13572       if (quad_min < 0)
13573         quad_min += 4;
13575       int quad_max = (int)floor(2 * max / hkl::constant::math::pi) % 4;
13576       if (quad_max < 0)
13577         quad_max += 4;
13579       //cout << \"quadrant : \" << quad_min << \", \" << quad_max << endl;
13580       switch (quad_max)
13581         {
13582         case 0:
13583           switch (quad_min)
13584             {
13585             case 0:
13586               res.set(cos(max), cos(current), cos(consign), cos(min));
13587               break;
13588             case 1:
13589               res.set(-1, cos(current), cos(consign), 1);
13590               break;
13591             case 2:
13592               res.set(cos(min), cos(current), cos(consign), 1);
13593               break;
13594             case 3:
13595               if (cos(min) < cos(max))
13596                 res.set(cos(min), cos(current), cos(consign), 1);
13597               else
13598                 res.set(cos(max), cos(current), cos(consign), 1);
13599               break;
13600             }
13601           break;
13602         case 1:
13603           switch (quad_min)
13604             {
13605             case 0:
13606             case 1:
13607               res.set(cos(max), cos(current), cos(consign), cos(min));
13608               break;
13609             case 2:
13610               if (cos(min) < cos(max))
13611                 res.set(cos(min), cos(current), cos(consign ), 1);
13612               else
13613                 res.set(cos(max), cos(current), cos(consign), 1);
13614               break;
13615             case 3:
13616               res.set(cos(max), cos(current), cos(consign), 1);
13617               break;
13618             }
13619           break;
13620         case 2:
13621           switch (quad_min)
13622             {
13623             case 0:
13624               res.set(-1, cos(current), cos(consign), cos(min));
13625               break;
13626             case 1:
13627               if (cos(min) < cos(max))
13628                 res.set(-1, cos(current), cos(consign), cos(max));
13629               else
13630                 res.set(-1, cos(current), cos(consign), cos(min));
13631               break;
13632             case 2:
13633               res.set(cos(min), cos(current), cos(consign), cos(max));
13634               break;
13635             case 3:
13636               res.set(-1, cos(current), cos(consign), 1);
13637               break;
13638             }
13639           break;
13640         case 3:
13641           switch (quad_min)
13642             {
13643             case 0:
13644               if (cos(min) < cos(max))
13645                 res.set(-1, cos(current), cos(consign), cos(max));
13646               else
13647                 res.set(-1, cos(current), cos(consign), cos(min));
13648               break;
13649             case 1:
13650               res.set(-1, cos(current), cos(consign), cos(max));
13651               break;
13652             case 2:
13653             case 3:
13654               res.set(cos(min), cos(current), cos(consign), cos(max));
13655               break;
13656             }
13657           break;
13658         }
13659     }
13660   //cout << \"cos   : \" << res << endl;
13661   return res;
13664 inline hkl::Range acos(hkl::Range const & range)
13666   double min = acos(range.get_max().get_value());
13667   double current = acos(range.get_current().get_value());
13668   double consign = acos(range.get_consign().get_value());
13669   double max = acos(range.get_min().get_value());
13671   return hkl::Range(min, current, consign, max);
13673 #endif
13675       cpp_src "${description}
13676 ${includes}
13677 ${namespace_start}
13678 ${members}
13679 ${namespace_end}"
13680       associated_classes
13681         class_ref 129794 // Range
13682       end
13683     end
13685     artifact 131586 "reflection"
13686       stereotype "source"
13687       cpp_h "#ifndef _${NAME}_H
13688 #define _${NAME}_H
13690 ${description}
13691 ${includes}
13692 ${declarations}
13693 ${namespace_start}
13694 ${definition}
13695 ${namespace_end}
13697  * @brief Surcharge de l'operateur << pour la class reflection
13698  * @param flux The flux to print into
13699  * @param reflection The Reflection to print.
13700  */
13701 inline std::ostream &
13702 operator << (std::ostream & flux, hkl::Reflection const & reflection)
13704   return reflection.printToStream(flux);
13706 #endif
13708       cpp_src "${description}
13709 ${includes}
13710 ${namespace_start}
13711 ${members}
13712 ${namespace_end}"
13713       associated_classes
13714         class_ref 133250 // ReflectionType
13715         class_ref 133122 // Reflection
13716       end
13717     end
13719     artifact 131714 "reflectionfactory"
13720       stereotype "source"
13721       cpp_h "#ifndef _${NAME}_H
13722 #define _${NAME}_H
13724 ${description}
13725 ${includes}
13726 ${declarations}
13727 ${namespace_start}
13728 ${definition}
13729 ${namespace_end}
13730 #endif
13732       cpp_src "${description}
13733 ${includes}
13734 #include \"reflection_monocrystal.h\"
13735 ${namespace_start}
13736 ${members}
13737 ${namespace_end}"
13738       associated_classes
13739         class_ref 133506 // ReflectionFactory
13740       end
13741     end
13743     artifact 131842 "reflectionlist"
13744       stereotype "source"
13745       cpp_h "#ifndef _${NAME}_H
13746 #define _${NAME}_H
13748 ${description}
13749 ${includes}
13750 ${declarations}
13751 ${namespace_start}
13752 ${definition}
13753 ${namespace_end}
13755 inline std::ostream &
13756 operator<<(std::ostream & flux, hkl::ReflectionList const & factory)
13758   return factory.printToStream(flux);
13761 #endif
13763       cpp_src "${description}
13764 ${includes}
13765 ${namespace_start}
13766 ${members}
13767 ${namespace_end}"
13768       associated_classes
13769         class_ref 133634 // ReflectionList
13770       end
13771     end
13773     artifact 128130 "svector"
13774       stereotype "source"
13775       cpp_h "#ifndef _${NAME}_H
13776 #define _${NAME}_H
13778 ${description}
13779 ${includes}
13780 #include <math.h>
13781 #include <cstdlib>
13782 #include <iomanip>
13783 #include \"HKLException.h\"
13784 #include \"constant.h\"
13786 ${declarations}
13787 ${namespace_start}
13789 //forward declaration
13790 class smatrix;
13792 ${definition}
13793 ${namespace_end}
13796  * \\brief Surcharge de l'operateur << pour la class svector
13797  * @param flux 
13798  * @param m 
13799  * @return 
13800  */
13801 std::ostream & operator << (std::ostream & flux, hkl::svector const & v);
13804  * \\brief Surcharge de l'operateur << pour la class smatrix
13805  * @param flux 
13806  * @param m 
13807  * @return 
13808  */
13809 std::ostream & operator << (std::ostream & flux, hkl::smatrix const & m);
13811 #endif
13813       cpp_src "${description}
13814 ${includes}
13815 ${namespace_start}
13816 ${members}
13817 ${namespace_end}
13820  * \\brief Surcharge de l'operateur << pour la class svector
13821  * @param flux 
13822  * @param m 
13823  * @return 
13824  */
13825 std::ostream & operator << (std::ostream & flux, hkl::svector const & v)
13827   return v.printToStream(flux);
13831  * \\brief Surcharge de l'operateur << pour la class smatrix
13832  * @param flux 
13833  * @param m 
13834  * @return 
13835  */
13836 std::ostream & operator << (std::ostream & flux, hkl::smatrix const & m)
13838   return m.printToStream(flux);
13842       associated_classes
13843         class_ref 128002 // svector
13844         class_ref 128514 // smatrix
13845       end
13846     end
13848     artifact 128060 "value"
13849       stereotype "source"
13850       cpp_h "#ifndef _${NAME}_H
13851 #define _${NAME}_H
13853 ${description}
13854 ${includes}
13855 #include <cmath>
13856 #include <iomanip>
13857 #include \"constant.h\"
13858 ${declarations}
13859 ${namespace_start}
13860 ${definition}
13861 ${namespace_end}
13864  * \\brief Surcharge de l'operateur << pour la class Value
13865  * @param flux 
13866  * @param m 
13867  * @return 
13868  */
13869 inline std::ostream & operator << (std::ostream & flux, hkl::Value const & value)
13871   return value.printToStream(flux);
13874 inline hkl::Value
13875 fabs(hkl::Value const & value)
13877   hkl::Value res(fabs(value.get_value()));
13878   return res;
13881 inline hkl::Value
13882 cos(hkl::Value const & value)
13884   hkl::Value res(cos(value.get_value()));
13885   return res;
13888 inline double
13889 operator/(double d, hkl::Value const & value)
13891   return d / value.get_value();
13894 inline double
13895 operator*(double d, hkl::Value const & value)
13897   return d * value.get_value();
13899 #endif
13901       cpp_src "${description}
13902 ${includes}
13903 ${namespace_start}
13904 ${members}
13905 ${namespace_end}"
13906       java_src "${comment}
13907 ${package}
13908 ${imports}
13909 ${definition}"
13910       idl_src "#ifndef _${NAME}_H
13911 #define _${NAME}_H
13913 ${comment}
13914 ${includes}
13915 ${module_start}
13916 ${definition}
13917 ${module_end}
13918 #endif
13920       associated_classes
13921         class_ref 128060 // Value
13922       end
13923     end
13925     artifact 130178 "source"
13926       stereotype "source"
13927       cpp_h "#ifndef _${NAME}_H
13928 #define _${NAME}_H
13930 ${description}
13931 ${includes}
13932 #include \"value.h\"
13933 #include \"svector.h\"
13934 #include \"quaternion.h\"
13935 ${declarations}
13936 ${namespace_start}
13937 ${definition}
13938 ${namespace_end}
13940  * @brief Surcharge de l'operateur << pour la class Source
13941  * @param flux The ostream to print into.
13942  * @param source The Source to print. 
13943  * @return the modified flux.
13944  */
13945 inline std::ostream &
13946 operator << (std::ostream & flux, hkl::Source const & source)
13948   return source.printToStream(flux);
13950 #endif
13952       cpp_src "${description}
13953 ${includes}
13954 ${namespace_start}
13955 ${members}
13956 ${namespace_end}"
13957       associated_classes
13958         class_ref 131458 // Source
13959       end
13960     end
13962     artifact 132098 "sample"
13963       stereotype "source"
13964       cpp_h "#ifndef _${NAME}_H
13965 #define _${NAME}_H
13967 ${description}
13968 ${includes}
13969 #include \"reflectionlist.h\"
13970 ${declarations}
13971 ${namespace_start}
13972 ${definition}
13973 ${namespace_end}
13975  * @brief Surcharge de l'operateur << pour la class cristal
13976  * @param flux The ostream to print into.
13977  * @param sample The Sample to print 
13978  * @return 
13979  */
13980 inline std::ostream &
13981 operator << (std::ostream & flux, hkl::Sample const & sample)
13983   return sample.printToStream(flux);
13986 #endif
13988       cpp_src "${description}
13989 ${includes}
13990 ${namespace_start}
13991 ${members}
13992 ${namespace_end}"
13993       associated_classes
13994         class_ref 134018 // SampleType
13995         class_ref 133378 // Sample
13996       end
13997     end
13999     artifact 132354 "samplefactory"
14000       stereotype "source"
14001       cpp_h "#ifndef _${NAME}_H
14002 #define _${NAME}_H
14004 ${description}
14005 ${includes}
14006 ${declarations}
14007 ${namespace_start}
14008 ${definition}
14009 ${namespace_end}
14010 #endif
14012       cpp_src "${description}
14013 ${includes}
14014 #include \"sample_monocrystal.h\"
14015 ${namespace_start}
14016 ${members}
14017 ${namespace_end}"
14018       associated_classes
14019         class_ref 134274 // SampleFactory
14020       end
14021     end
14023     artifact 132482 "samplelist"
14024       stereotype "source"
14025       cpp_h "#ifndef _${NAME}_H
14026 #define _${NAME}_H
14028 ${description}
14029 ${includes}
14030 ${declarations}
14031 ${namespace_start}
14032 ${definition}
14033 ${namespace_end}
14035 inline std::ostream &
14036 operator <<(std::ostream & flux, hkl::SampleList const & sampleList)
14038   return sampleList.printToStream(flux);
14040 #endif
14042       cpp_src "${description}
14043 ${includes}
14044 ${namespace_start}
14045 ${members}
14046 ${namespace_end}"
14047       associated_classes
14048         class_ref 134402 // SampleList
14049       end
14050     end
14052     artifact 133890 "mode"
14053       stereotype "source"
14054       cpp_h "#ifndef _${NAME}_H
14055 #define _${NAME}_H
14057 ${description}
14058 ${includes}
14059 #include \"convenience.h\"
14060 ${declarations}
14061 ${namespace_start}
14062 ${definition}
14063 ${namespace_end}
14066  * \\brief Surcharge de l'operateur << for the Mode class
14067  * \\param flux The flux to modifie 
14068  * \\param mode The mode to stream.
14069  * \\return The modified flux.
14070  */
14071 template<typename T>
14072 std::ostream &
14073 operator << (std::ostream & flux, hkl::ModeTemp<T> const & mode)
14075   return mode.printToStream(flux);
14078 #endif
14080       cpp_src "${description}
14081 ${includes}
14082 ${namespace_start}
14083 ${members}
14084 ${namespace_end}"
14085       associated_classes
14086         class_ref 138754 // Mode
14087         class_ref 138882 // ModeTemp
14088       end
14089     end
14091     artifact 134018 "modelist"
14092       stereotype "source"
14093       cpp_h "#ifndef _${NAME}_H
14094 #define _${NAME}_H
14096 ${description}
14097 ${includes}
14098 ${declarations}
14099 ${namespace_start}
14100 ${definition}
14101 ${namespace_end}
14102 inline std::ostream &
14103 operator <<(std::ostream & flux, hkl::ModeList const & modeList)
14105   return modeList.printToStream(flux);
14108 #endif
14110       cpp_src "${description}
14111 ${includes}
14112 ${namespace_start}
14113 ${members}
14114 ${namespace_end}"
14115       associated_classes
14116         class_ref 139138 // ModeList
14117       end
14118     end
14119   end
14121   package_ref 134146 // axe
14123   package_ref 128002 // geometry
14125   package_ref 128514 // reflection
14127   package_ref 128642 // sample
14129   package_ref 128770 // pseudoAxeEngine
14131   package_ref 129922 // mode
14133   package_ref 131074 // affinement
14135   package_ref 132226 // twoC
14137   package_ref 131714 // eulerian4C
14139   package_ref 132738 // kappa4C
14141   package_ref 133250 // eulerian6C
14143   package_ref 133634 // kappa6C
14144 preserve_bodies