Salome HOME
MPV: Merge V1_2d
[modules/visu.git] / idl / VISU_Gen.idl
1 //  Copyright (C) 2003  CEA/DEN, EDF R&D
2 //
3 //
4 //
5 //  File   : VISU_Gen.idl
6 //  Author : Alexey Petrov
7
8 /*! \file VISU_Gen.idl This file conatins a set of interfaces of the %VISU module.
9       This module provides various forms of data visualization in %SALOME application.
10       These forms include data tables, XY plots, 3d representations
11       and combination of these forms.
12 */
13
14 #ifndef __VISU_GEN__
15 #define __VISU_GEN__ 
16  
17 #include "SALOME_Exception.idl" 
18 #include "SALOME_GenericObj.idl"
19 #include "SALOME_Component.idl" 
20 #include "SALOMEDS.idl" 
21 #include "SALOMEDS_Attributes.idl" 
22 #include "MED.idl" 
23  
24 /*! 
25   The main package of interfaces of the post-processing module %VISU. 
26 */ 
27 module VISU {
28   //------------------------------------------------------- 
29   typedef string IdType; 
30 /*! 
31  This enumeration contains a set of elements defining the type of the scaling, which 
32 can be applied on different presentations. 
33 */ 
34   enum Scaling{ LINEAR, /*!< Linear type of scaling. */ 
35                 LOGARITHMIC /*!< Logarithmic type of scaling. */ 
36               }; 
37 /*! 
38  This enumeration contains a set of elements defining the type of the %entity (topological units) constituting a mesh. 
39 */ 
40  
41   enum Entity{ NODE, /*!< Node corresponds to a geometrical point. */
42                EDGE, /*!< Edge corresponds to a geometrical line connecting two points. */
43                FACE, /*!< Face corresponds to a geometrical plane bounded by several lines. */
44                CELL  /*!< Cell is a volumic element of a mesh */
45                };
46 /*!
47  This enumeration contains a set of elements defining the type of the %VISU object. This enumeration is used for navigation between a set of %VISU interfaces.
48 */
49    enum VISUType{ TNONE, /*!< Not a %VISU object */
50                   TCURVE, /*!< Curve line object for construction of 2D XY plots */
51                   TTABLE, /*!< Table containing numerical data */
52                   TCONTAINER, /*!< Container object used for storing a set of curve lines */
53                   TMESH, /*!< Meshing object */
54                   TSCALARMAP, /*!< Scalarmap 3D presentation object */
55                   TISOSURFACE, /*!< Iso surface 3D presentation object */
56                   TDEFORMEDSHAPE, /*!< Deformed shape 3D presentation object */
57                   TCUTPLANES, /*!< Cut planes 3D presentation object */
58                   TCUTLINES, /*!< Cut lines 3D presentation object */
59                   TVECTORS, /*!< Vectors 3D presentation object */
60                   TSTREAMLINES, /*!< Streamlines 3D presentation object */
61                   TVISUGEN, /*!< %VISU generator used for performing operations with different %VISU objects */
62                   TVIEWMANAGER, /*!< View manager used for performing operations with different views */
63                   TRESULT, /*!< The data on which different presentations are based */
64                   TXYPLOT, /*!< 2D XY plot consisting of one or several curve lines */
65                   TTABLEVIEW, /*!< Table view is used for displaying data tables */
66                   TVIEW3D, /*!< 3D view is used for displaying 3D graphical presentations */
67                   TENTITY, /*!< An element composing a mesh: node, edge, face or cell */
68                   TFAMILY, /*!< The whole mesh can be divided into one or several submeshes, called families, which are defined by the user. Each family in its turn is composed of entities of a definite type. */
69                   TGROUP, /*!< A group of families */
70                   TFIELD, /*!< Field represents the results of calculations (it can be scalar or vector values), grouped together under one physical concept. */
71                   TTIMESTAMP, /*!<Time stamp represents a subfield: the results of calculations are taken in one definite moment. */
72                   TALL
73                   };
74   interface Base {
75 /*!
76    Returns ID of the object.
77 */
78     IdType GetID();
79 /*!
80 Returns the type of the presentable object
81 */
82     VISUType GetType();
83   };
84 /*! \brief Presentable object interface
85
86 Presentable object interface is the root class of all presentable objects.
87 */
88   interface PrsObject : Base{
89   };
90   //-------------------------------------------------------
91 /*! \brief %Table representation interface
92
93 Presentation parameters of the %Table view.
94 */
95   interface Table : PrsObject {
96 /*!
97 Sets the title of the table.
98 \param theTitle String parameter defining the title of this table.
99 */
100     void SetTitle(in string theTitle);
101 /*!
102 Gets the title of the table.
103 \return A string value containing the title of the table.
104 */
105     string GetTitle();
106 /*!
107  This enumeration contains a set of elements defining the orientation of the table.
108 */
109     enum Orientation{ HORIZONTAL, /*!<Horizontal orientation of the table.*/
110                        VERTIACAL /*!<Vertical orientation of the table.*/
111                     };
112 /*!
113 Sets orientation of the table.
114 \param theOrientation This input parameter defines the orientation of the table. It is taken from
115 the <VAR>Orientation</VAR> enumeration.
116 */
117     void SetOrientation(in Orientation theOrientation);
118 /*!
119 Gets orientation of the table.
120 \return Orientation of the table. The returned value will correspond to one of the elements the <VAR>Orientation</VAR> enumeration.
121
122 */
123     Orientation GetOrientation();
124  /*!
125 Gets the number of rows of the table.
126 \return Long value corresponding to the number of rows of the table
127  */
128     long GetNbRows();
129  /*!
130 Gets the number of columns of the table.
131 \return Long value corresponding to the number of columns of the table
132
133  */
134     long GetNbColumns();
135   };
136   //-------------------------------------------------------
137 /*! \brief Interface of curve representation.
138
139 Manages presentation parameters of one curve.
140 It can be used for presentation of a set of curves using a combined presentation.
141 */
142   interface Curve : PrsObject{
143 /*!
144 Sets the title of the curve.
145 \param theTitle This string parameter defines the title of this curve.
146 */
147     void SetTitle(in string theTitle);
148 /*!
149 Gets the title of the curve.
150 \return String value corresponding to the title of the curve.
151 */
152     string GetTitle();
153 /*!
154 Sets the color of the curve.
155 \param theColor The color of the curve. This parameter is taken from the <VAR>Orientation</VAR> enumeration.
156
157 */
158     void SetColor(in SALOMEDS::Color theColor);
159 /*!
160 Gets the color of the curve.
161 \return Color of the curve. The returned value will correspond to one of the elements the <VAR>Color</VAR> enumeration.
162
163 */
164     SALOMEDS::Color GetColor();
165  /*!
166  This enumeration contains a set of elements defining the presentation type of markers (data points) with help of
167 which the curve is constructed on the graphics.
168 */
169     enum MarkerType{ NONE,
170                      CIRCLE,
171                      RECTANGLE,
172                      DIAMOND,
173                      DTRIANGLE,
174                      UTRIANGLE,
175                      LTRIANGLE,
176                      RTRIANGLE,
177                      CROSS,
178                      XCROSS
179                      };
180 /*!
181 Sets the presentation type of markers (data points) with help of
182 which the curve is constructed on the graphics.
183 \param theType This parameter defines the type of marker with help of which the curve is constructed on the graphics. It is taken from <VAR>MarkerType</VAR> enumeration.
184 */
185     void SetMarker(in MarkerType theType);
186 /*!
187 Gets the presentation type of markers (data points) with help of
188 which the curve is constructed on the graphics.
189 \return The type of marker with help of which the curve is constructed on the graphics. The returned value will correspond to one of the elements the <VAR>MarkerType</VAR> enumeration.
190
191 */
192     MarkerType GetMarker();
193 /*!
194  This enumeration contains a set of elements defining the
195  type of presentation of a curve line on the graphics.
196 */
197     enum LineType{ VOIDLINE, SOLIDLINE, DASHLINE, DOTLINE, DASHDOTLINE, DASHDOTDOTLINE};
198 /*!
199 Sets the type of presentation of curve lines on the graphics.
200 \param theType This parameter defines the type of presentation of curve lines on the graphics.
201 \param theLineWidth Long value defining the width of the curve line.
202 */
203     void SetLine(in LineType theType, in long theLineWidth);
204 /*!
205 Gets the type of representation of curve lines on the graphics.
206 \return The type of representation of curve lines on the graphics.
207 */
208     LineType GetLine();
209
210 /*!
211 Gets the width of the curve line.
212 \return Long value corresponding to the width of the curve line.
213 */
214     long GetLineWidth();
215   };
216 //-------------------------------------------------------
217 /*! \brief %Container presentable object interface
218
219 This class is provided in order to create one presentation using several presentable objects.
220 This can provide a combination of a set of curves to display them in XY plot view.
221 */
222   interface Container : PrsObject{
223 /*!
224 Adds a curve into the container.
225 \param theCurve The added curve.
226 */
227     void AddCurve(in Curve theCurve);
228 /*!
229 Removes a curve from the container.
230 \param theCurve The removed curve.
231 */
232     void RemoveCurve(in Curve theCurve);
233 /*!
234 Gets the number of curves which are stored in the container.
235 \return A long value corresponding to the number of curves which are stored in the container.
236 */
237     long GetNbCurves();
238 /*!
239 Removes all curves from the container.
240 */
241     void Clear();
242
243   };
244   //-------------------------------------------------------
245 /*! \brief 3D presentation interface
246
247 This is a root class for all 3D presentations, which can be displayed in %VISU module.
248 */
249   interface Prs3d : PrsObject, SALOME::GenericObj{
250     //interface Prs3d : PrsObject{
251   };
252 /*!
253  This enumeration contains a set of elements defining the
254  type of presentation of the mesh.
255 */
256
257     enum PresentationType{ POINT,
258                            WIREFRAME,
259                            SHADED,
260                            INSIDEFRAME,
261                            SURFACEFRAME,
262                            SHRINK
263                          };
264 /*! \brief Interface of the mesh.
265
266 Manages presentation parameters of a 3D presentation of a mesh.
267 This object can be used for presentation of set of curves using Container class.
268
269 */
270     interface Mesh : Prs3d{
271 /*!
272 Sets the color of mesh cells.
273 \param theColor The color of the cells. This parameter is taken from <VAR>Color</VAR> enumeration.
274
275 */
276     void SetCellColor(in SALOMEDS::Color theColor);
277 /*!
278 Gets the color of mesh cells.
279 */
280     SALOMEDS::Color GetCellColor();
281 /*!
282 Sets the color of mesh nodes.
283 \param theColor The color of the nodes. This parameter is taken from <VAR>Color</VAR> enumeration.
284
285 */
286     void SetNodeColor(in SALOMEDS::Color theColor);
287 /*!
288 Gets the color of mesh nodes.
289 */
290     SALOMEDS::Color GetNodeColor();
291
292 /*!
293 Sets the color of mesh links.
294 \param theColor The color of the links. This parameter is taken from <VAR>Color</VAR> enumeration.
295
296 */
297     void SetLinkColor(in SALOMEDS::Color theColor);
298 /*!
299 Gets the color of mesh links.
300 */
301     SALOMEDS::Color GetLinkColor();
302 /*!
303 Sets the type of representation of a mesh.
304 \param theType The of representation of a mesh. This parameter is taken from <VAR>PresentationType</VAR> enumeration.
305 */
306     void SetPresentationType(in PresentationType theType);
307 /*!
308 Gets the type of representation of the mesh.
309 \return The type of representation of the mesh.
310 */
311     PresentationType GetPresentationType();
312   };
313   //-------------------------------------------------------
314 /*! \brief Interface of the %Scalar Map
315
316 This interface is responsable for coloring of 3D field presentations according the scalar values applied to different cells.
317 As well it contains presentation parameters of the scalar bar. The scalar bar is displayed
318 along with each colored field presentation and serves for consulting the correspondance
319 between colors and data values.
320
321 */
322   interface ScalarMap : Prs3d{
323 /*! Sets the method of coloring of the elements composing a 3D presentation.
324 */
325     void SetScalarMode(in long theScalarMode);
326 /*! Gets the method of coloring of the elements composing a 3D presentation.
327 */
328     long GetScalarMode();
329 /*!
330 Sets the type of scaling of the values reflected by the scalar bar.
331 \param theScaling The value of this parameter is taken from the <VAR>Scaling</VAR> enumeration.
332 */
333     void SetScaling(in Scaling theScaling);
334 /*!
335 Gets the type of scaling of the values reflected by this presentation.
336 */
337     Scaling GetScaling();
338 /*!
339 Sets scalar range - min and max boundaries of the scalar bar.
340 \param theMin  Min boundary of the scalar bar.
341 \param theMax  Max boundary of the scalar bar.
342 */
343     void SetRange(in double theMin, in double theMax);
344 /*!
345  Gets the min boundary of the scalar bar.
346 */
347     double GetMin();
348 /*!
349  Gets the max boundary of the scalar bar.
350 */
351     double GetMax();
352
353 /*! %Orientation of the scalar bar. */
354     enum Orientation{
355                      HORIZONTAL, /*!< Horizontal orientation of the scalar bar.*/
356                        VERTICAL  /*!< Vertical orientation of the scalar bar.*/
357                     };
358 /*!
359  Sets the type of orientation of the scalar bar.
360  \param theOrientation This parameter defines the orientation of the scalar bar. It is taken from the <VAR>Orientaton</VAR> enumeration.
361 */
362     void SetBarOrientation(in Orientation theOrientation);
363 /*!
364  Gets the type of orientation of the scalar bar.
365 */
366     Orientation GetBarOrientation();
367
368 /*! \brief Position of the scalar bar.
369
370 Sets the position of the scalar bar origin on the screen.
371 \param X   Horizontal position. The value can be between 0 and 1.
372 \param Y   Vertical position. The value can be between 0 and 1.
373 */
374     void SetPosition(in double X, in double Y);
375 /*!
376   Gets horizontal position of the scalar bar origin.
377 */
378     double GetPosX();
379 /*!
380   Gets vertical position of the scalar bar origin.
381 */
382     double GetPosY();
383 /*! \brief Size of this presentable object.
384
385 Sets the size of the scalar bar.
386 \param theWidth  Width of this presentable object. The value can be between 0 and 1.
387 \param theHeight  Height of this presentable object. The value can be between 0 and 1.
388 */
389     void SetSize(in double theWidth, in double theHeight);
390 /*!
391 Gets the width of this presentable object.
392 \return A double value corresponding to the width of this presentable object.
393 */
394     double GetWidth();
395 /*!
396 Gets the height of this presentable object.
397 \return A double value corresponding to the height of this presentable object.
398 */
399     double GetHeight();
400 /*!
401 Sets the number of colors which will be used for presentation of this presentable object.
402 \param theNbColors A long value defining the number of colors.
403 */
404     void SetNbColors(in long theNbColors);
405 /*!
406 Gets the number of colors which will be used for visualization of this presentable object.
407 \return A long value corresponding to the number of colors which will be used for visualization of this presentable object.
408 */
409     long GetNbColors();
410 /*!
411 Sets the number of labels which will be used for indication of color gradation
412  of the scalar bar.
413  \param theNbLabels A long value defining the number of labels.
414 */
415     void SetLabels(in long theNbLabels);
416 /*!
417 Gets the number of labels which will be used for indication of color gradation
418  of the scalar bar.
419  \return A long value corresponding to the number of labels which will be used for indication of color gradation
420  of the scalar bar.
421 */
422     long GetLabels();
423 /*!
424 Sets the title of the scalar bar. By default - the name of the selected result is used.
425 \param theName String parameter defining the name of the scalar bar.
426 */
427     void SetTitle(in string theName);
428 /*!
429 Gets the title of the scalar bar.
430 */
431     string GetTitle();
432   };
433   //-------------------------------------------------------
434 /*! \brief Deformed shape presentation interface
435
436 Presentation parameters of the deformed shape presentation.
437 */
438   interface DeformedShape : ScalarMap{
439 /*!
440 Sets the scale of the presentatable object.
441 \param theScale Double value defining the scale of this presentable object.
442 */
443     void SetScale(in double theScale);
444 /*!
445 Gets the scale of the presentatable object.
446 */
447     double GetScale();
448 /*! This boolean method returns True if this deformed shape presentation is colored.
449 */
450     boolean IsColored();
451 /*! Shows this presentation in colored mode.
452 \param theColored If this boolean parameter is True this presentable object will be shown in colored mode.
453 */
454     void ShowColored(in boolean theColored);
455 /*! Gets the color of this presentable object.
456 \return The color of this presentable object.
457 */
458     SALOMEDS::Color GetColor();
459 /*! Sets the color of this presentation.
460 \param theColor The color of this presentation. This parameter is taken from the <VAR>Color</VAR> enumeration.
461 */
462     void SetColor(in SALOMEDS::Color theColor);
463   };
464   //-------------------------------------------------------
465 /*! \brief Cut planes interface
466
467 Presentation parameters of Cut planes presentation. This type of presentation consists of
468 cutting your initial mesh by a definite number of planes. As the result you will see these planes
469 which will be cutted by the borders of the mesh.
470 */
471   interface CutPlanes : ScalarMap{
472 /*!
473  This enumeration contains a set of elements defining the type of orientation in 3D space
474  of the cut planes.
475 */
476     enum Orientation {XY, /*!< The object is located in the plane formed by X and Y axis. */
477                       YZ, /*!< The object is located in the plane formed by Y and Z axis. */
478                       ZX}; /*!< The object is located in the plane formed by Z and X axis. */
479 /*!
480 Sets the type of orientation in 3D space of cut planes presentation.
481 \param theOrientation This parameter defines the type of orientation of cut planes in 3D space. It is taken from the <VAR>Orientation</VAR> enumeration.
482 \param theXAngle The angle of rotation of the cut planes around the first axis of the chosen orientation.
483 \param theXAngle The angle of rotation of the cut planes around the second axis of the chosen orientation.
484 */
485     void SetOrientation(in Orientation theOrientation, in double theXAngle, in double theYAngle);
486 /*!
487 Gets the type of orientation in 3D space of cut planes presentation.
488 */
489     Orientation GetOrientationType();
490 /*!
491 Gets rotation angle of the cut plane presentation around the first axis of the chosen orientation.
492 */
493     double GetRotateX();
494 /*!
495 Gets rotation angle of the cut plane presentation around the second axis of the chosen orientation.
496 */
497     double GetRotateY();
498 /*!
499 Sets the displacement of the cut planes in 3D space.
500
501 \param theDisp This parameter defines position of the cut planes
502 in 3D space. It varies from 0 to 1. If the chosen value is 0.5, the cut planes
503 will be evenly located regarding each other; in other words, the distance between all
504 of them will be equal. If the value is higher or lower than 0.5, the planes will be displaced
505 to one or another side.
506 */
507     void SetDisplacement(in double theDisp);
508 /*!
509 Gets the displacement of the cut planes in 3D space.
510 */
511     double GetDisplacement();
512 /*!
513 Sets the position of a definite cut plane.
514 \param thePlaneNumber The number of this cut plane.
515 \param thePlanePosition The position of this cut plane.
516 */
517      void SetPlanePosition(in long thePlaneNumber, in double thePlanePosition);
518
519 /*!
520 Sets the position of the choosen plane to default value.
521 \param thePlaneNumber The number of this cut plane.
522 */
523      void SetDefault(in long thePlaneNumber);
524
525 /*!
526 Gets the position of the choosen plane
527 */
528
529     double GetPlanePosition(in long thePlaneNumber);
530
531 /*!
532 Determines whether the choosen plane has default position.
533 \param thePlaneNumber The number of this cut plane.
534 */
535
536     boolean IsDefault(in long thePlaneNumber);
537
538 /*!
539 Sets the number of cut planes.
540 \param theNb The number of cut planes.
541 */
542     void SetNbPlanes(in long theNb);
543 /*!
544 Gets the number of cut planes.
545 */
546     long GetNbPlanes();
547   };
548   //-------------------------------------------------------
549 /*! \brief Cut lines presentation.
550
551 Presentation parameters of a Cut lines presentation.
552 Cut Lines is a type of presentation which displays colored cells with applied scalar values on the mesh where lines are placed.
553 The procedure of construction of a Cut Lines presentation reuses the algorithm of creation of Cut Planes presentation and consists of two steps:
554
555    1. From Cut Planes presentation one plane is taken and it is used as base plane for construction of cut lines.
556    2. This plane is cut by a regular array of planes. The result of this operation is a regular array of lines in space,  belonging to the same plane and having the same orientation. They are located inside or on the mesh.
557
558 */
559   interface CutLines : ScalarMap{
560
561     /*!
562       Sets the type of orientation in 3D space of the base plane of a cut lines presentation.
563       \param theOrientation The orientation of the base plane in 3D space.
564 \param theXAngle The angle of rotation of the base plane around the first axis of the chosen orientation.
565 \param theXAngle The angle of rotation of the base plane around the second axis of the chosen orientation.
566
567     */
568     void SetOrientation(in CutPlanes::Orientation theOrientation, in double theXAngle, in double theYAngle);
569     /*!
570       Sets the type of orientation in 3D space of the cutting planes of a cut lines presentation.
571       \param theOrientation This parameter defines the type of orientation of the cutting planes in 3D space. It is taken from the <VAR>Orientation</VAR> enumeration.
572 \param theXAngle The angle of rotation of the cutting planes around the first axis of the chosen orientation.
573 \param theXAngle The angle of rotation of the cutting planes around the second axis of the chosen orientation.
574
575     */
576     void SetOrientation2(in CutPlanes::Orientation theOrientation, in double theXAngle, in double theYAngle);
577 /*!
578       Gets the type of orientation in 3D space of the base plane of a cut lines presentation.
579
580 */
581     CutPlanes::Orientation GetOrientationType();
582 /*!
583       Gets the type of orientation in 3D space of the cutting planes of a cut lines presentation.
584 */
585     CutPlanes::Orientation GetOrientationType2();
586 /*!
587 Gets rotation angle of the base plane around the first axis of the chosen orientation.
588 */
589     double GetRotateX();
590 /*!
591 Gets rotation angle of the cutting planes around the first axis of the chosen orientation.
592 */
593     double GetRotateX2();
594
595 /*!
596 Gets rotation angle of the base plane around the second axis of the chosen orientation.
597 */
598     double GetRotateY();
599 /*!
600 Gets rotation angle of the cutting planes around the second axis of the chosen orientation.
601 */
602     double GetRotateY2();
603
604 /*!
605 Sets the displacement of the base plane of the cut lines presentation in 3D space.
606
607 \param theDisp This parameter defines position of the base plane
608 in 3D space. It varies from 0 to 1.
609 */
610     void SetDisplacement(in double theDisp);
611 /*!
612 Sets the displacement of the cutting planes of the cut lines presentation in 3D space.
613
614 \param theDisp This parameter defines position of the cutting planes
615 in 3D space. It varies from 0 to 1.
616 */
617
618     void SetDisplacement2(in double theDisp);
619
620 /*!
621 Gets the displacement of the base plane of the cut lines presentation in 3D space.
622 */
623     double GetDisplacement();
624 /*!
625 Gets the displacement of the cutting planes of the cut lines presentation in 3D space.
626 */
627     double GetDisplacement2();
628 /*! Sets the position of the base plane in 3D space.
629 \param thePlanePosition A double value defining the position of the base plane in 3D space.
630 */
631     void SetBasePlanePosition(in double thePlanePosition);
632 /*! Gets the position of the base plane in 3D space.
633 */
634     double GetBasePlanePosition();
635 /*! Sets the position of one of cutting planes in 3D space.
636 \param thePlaneNumber A long value defining the order number of this cutting plane.
637 \param thePlanePosition A double value defining the position of the base plane in 3D space.
638 */
639
640     void SetLinePosition(in long thePlaneNumber, in double thePlanePosition);
641 /*! Gets the position of one of cutting planes in 3D space.
642 \param thePlaneNumber A long value defining the order number of this cutting plane.
643 */
644
645     double GetLinePosition(in long thePlaneNumber);
646
647 /*! Sets the position of the base plane to default value.
648 */
649     void SetDefault();
650 /*!
651 Determines whether the base plane has default position.
652 \return True if the base plane has default position.
653 */
654     boolean IsDefault();
655
656 /*!
657 Sets the position of the choosen cutting plane to default value.
658 \param thePlaneNumber The number of this cutting plane.
659 */
660
661     void SetDefaultPosition(in long thePlaneNumber);
662 /*!
663 Determines whether the choosen cutting plane has default position.
664 \param thePlaneNumber The number of this cutting plane.
665 \return True if this cutting plane has default position.
666 */
667
668     boolean IsDefaultPosition(in long thePlaneNumber);
669 /*!
670 Sets the number of cut lines.
671 \param theNb The number of cut lines.
672 */
673     void SetNbLines(in long theNb);
674 /*!
675 Gets the number of cut lines.
676 */
677     long GetNbLines();
678   };
679   /*! \brief Interface of the stream lines representation
680
681   This interface contains presentation parameters of
682   stream lines presentations.
683 <BR>Stream lines is a type of presentation transforming into lines the cells with vectors having most similar direction.
684 A stream line can be thought of as the path that a massless particle takes in a vector field. Streamlines are used to convey the structure of a vector field.
685 Usually streamlines are created to explore the most interesting features in the field.
686   */
687   interface StreamLines : DeformedShape{
688 /*! This enumerations contains a set of elements necessary
689 for definition of direction of the stream lines.
690
691 */
692     enum Direction{ FORWARD,
693                     BACKWARD,
694                     BOTH
695     };
696 /*! Sets the parameters of the stream lines presentation.
697 \param theIntStep Inegration step is a parameter of smoothness of the stream lines. This parameter defines the accuracy of construction of the streamlines. A smaller value of this parameter allows to construct smoother streamlines (at the cost of more computation time).
698 \param thePropogationTime This parameter controls the maximum length of the stream line (measured in units of time).
699 \param theStepLength This parameter defines the size of the output line segments that make up the streamline (which is represented as a polyline).
700 \param thePrs3d The source presentation. The points of the field located on this source presentation
701  will serve as starting points for generation of stream lines.
702  \note If this parameter is not defined, your stream lines presentation will be generated on all points of the field.
703 \param thePercents This parameter defines the quantity of points of the field (from 0 to 100%) which will be used as starting points for construction of the stream lines. Thus, the value of this parameter can vary from 0 to 1.
704 \param theDirection Direction of the stream lines.(Forward, Backward or Both)
705 \return True if all parameters are properly set.
706 */
707     boolean SetParams(in double theIntStep,
708                    in double thePropogationTime,
709                    in double theStepLength,
710                    in Prs3d thePrs3d,
711                    in double thePercents,
712                    in Direction theDirection);
713 /*! Gets the value of integration step of the stream lines presentation.
714 */
715     double GetIntegrationStep();
716 /*! Gets the value of propagation time of the stream lines presentation.
717 */
718     double GetPropagationTime();
719 /*! Gets the value of step length of the stream lines presentation.
720 */
721     double GetStepLength();
722 /*! Returns the source presentation used for generation of the stream lines.
723 */
724     Prs3d GetSource();
725 /*! Gets the quantity of points of the field used as starting points for generation of the stream lines presentation.
726 */
727     double GetUsedPoints();
728 /*! Returns the direction of the stream lines.
729 */
730     Direction GetDirection();
731   };
732
733
734 /*! \brief Interface of the isometric surface presentation
735
736    This interface contains presentation parameters of
737     isometric surface presentations.
738 <BR>Iso surfaces presentation combines all equal scalar values on the cells and on the basis of them constructs
739 isobaric surfaces, which form this presentation.
740 */
741   interface IsoSurfaces : ScalarMap{
742 /*!
743    Sets the number of isometric surfaces.
744 \param theNb A long value defining the number of isometric surfaces which will be used for construction of this presentation.
745 */
746     void SetNbSurfaces(in long theNb);
747 /*!
748    Gets the number of isometric surfaces
749 */
750     long GetNbSurfaces();
751   };
752   //-------------------------------------------------------
753 /*! \brief Interface of the vector presentation.
754
755 This interface contains presentation parameters of vector presentations.
756 */
757   interface Vectors : DeformedShape{
758 /*!
759 Sets the width of the lines of the vectors.
760 \param theWidth A double value defining the width of the lines of the vectors.
761 */
762     void SetLineWidth(in double theWidth);
763 /*!
764 Gets the width of the lines of the vectors.
765 */
766     double GetLineWidth();
767 /*!
768  This enumeration contains a set of elements defining the type of representation of the vector head.
769 */
770     enum GlyphType{ ARROW,
771                     CONE2,
772                     CONE6,
773                     NONE
774                   };
775 /*!
776 Sets the type of representation of the vector head.
777 \param theType This parameter defines the type of representation of the vector head.
778 This value is taken from the <VAR>GlyphType</VAR> enumeration.
779 */
780     void SetGlyphType(in GlyphType theType);
781 /*!
782 Gets the type of representation of the vector head.
783 */
784     GlyphType GetGlyphType();
785 /*!
786  This enumeration contains a set of elements defining the position of the vector head.
787 */
788
789     enum GlyphPos{ CENTER, /*!<In the center of the vector.*/
790                    TAIL,   /*!<In the tail of the vector.*/
791                    HEAD  /*!<In the head of the vector.*/
792                  };
793 /*!
794 Sets the position of the vector head.
795 \param thePos This parameter defines the position of the vector head.
796 This value is taken from the <VAR>GlyphPos</VAR> enumeration.
797 */
798     void SetGlyphPos(in GlyphPos thePos);
799 /*!
800 Gets the position of the vector head.
801 */
802     GlyphPos GetGlyphPos();
803   };
804   //-------------------------------------------------------
805 /*! \brief %Animation class
806
807 This class provides a set of methods used for:<br>
808 <ul>
809     <li> generating different animations on the basis of a field,
810     <li> setting the parameters of the animations,
811     <li> playing these animations in the %VISU module.
812 </ul>
813 \note
814 <BR><B>Field</B> represents the results of calculations (it can be scalar or vector values), grouped together under one physical concept.
815 <BR><B>Time stamp</B> represents a subfield: the results of calculations are taken in one definite moment.
816 */
817
818   interface Animation : Base{
819 /*! Defines the field which will be used as a base for generation of the animation.
820 \param theObject The %SObject corresponding to the field.
821 */
822     void addField(in SALOMEDS::SObject theObject);
823 /*! Generates presentations on the basis of the field.
824 \param theFieldNum The number of the field, which will be used as the basis for construction of the presentation.
825 */
826     void generatePresentations(in long theFieldNum);
827 /*! Generates a set of frames from the created by the method <VAR>generatePresentations</VAR>3D presentations. A sequence of these frames will be
828 transformed into an animation.
829 \return  True, if the frames have been successfully generated.
830 */
831     boolean generateFrames();
832 /*! Clears the view before starting an animation.
833 */
834     void clearView();
835
836 /*! \name Playback of an animation:
837 */
838 /*@{*/
839
840 /*! Starts an animation.
841 */
842     void startAnimation();
843 /*! Stops an animation.
844 */
845     void stopAnimation();
846
847 /*! Forwards to the next frame.
848 */
849     void nextFrame();
850 /*! Returns to the previous frame.
851 */
852     void prevFrame();
853 /*! Returns to the first frame of the animation.
854 */
855     void firstFrame();
856 /*! Forwards to the last frame of the animation.
857 */
858     void lastFrame();
859 /*!  Passes to a definite frame of the animation.
860 \param theFrame A long value defining the number of the frame.
861 */
862     void gotoFrame(in long theFrame);
863 /*@}*/
864
865 /*! Gets the number of time stamps (subfields) contained in the given field.
866 */
867     long getNbFields();
868 /*! Gets the number of generated frames
869 */
870     long getNbFrames();
871 /*! Returns True, if the animation is currently running.
872 */
873     boolean isRunning();
874 /*! Returns the number of the current frame.
875 */
876     long getCurrentFrame();
877 /*!
878 */
879     ScalarMap getPresentation(in long theField, in long theFrame);
880 /*! Sets the type of presentation (vectors, deformed shape etc.) which will be generated by the method <VAR>generatePresentations</VAR>.
881 */
882     void setPresentationType(in long theFieldNum, in VISUType theType);
883 /*! Gets the type of presentation (vectors, deformed shape etc.) which will
884 be generated by the method <VAR>generatePresentations</VAR>.
885 */
886     VISUType getPresentationType(in long theFieldNum);
887
888 /*! Sets the speed of the animation.
889 \param theSpeed The speed of the animation. The value varies from 1 to 99.
890 */
891     void setSpeed(in long theSpeed);
892 /*!  Gets the speed of the animation.
893 */
894     long getSpeed();
895 /*! Ruturns True, if playback of the animation is proportional.
896 This option allows to render your animation with proportional periods of time between every frame (not depending on the time stamps).
897 */
898     boolean isProportional();
899 /*! Sets the range of the animation. The range is defined on the basis of
900 the time stamps of the field which have been used for generation of the animation. This method allows to bound the range of generated frames.
901 If this method is not used, the animation will be generated on the basis of all time stamps contained in the field.
902 /param theMin The value of the first time stamp which will be used for generation of the animation.
903 /param theMax The value of the last time stamp which will be used for generation of the animation.
904
905 */
906     void setAnimationRange(in double theMin, in double theMax);
907 /*! Gets the number of the first time stamp which will be used for generation of the animation.
908 */
909     double getMinRange();
910 /*! Gets the number of the last time stamp which will be used for generation of the animation.
911 */
912     double getMaxRange();
913 /*! Returns True if the range of the animation has been defined by the method <VAR>setAnimationRange</VAR>. Otherwise
914 the animation will be generated on the basis of all time stamps contained in the field.
915 */
916     boolean isRangeDefined();
917 /*! Saves all the frames composing the animation into a definite directory.
918 \param thePath The directory where all the frames will be saved.
919 */
920     void dumpTo(in string thePath);
921
922 /*! Returns True, if the playback of the animation is cycling.
923 */
924     boolean isCycling();
925 /*! Gets the first time stamp of the field defined at the input of the animation.
926 \note This method is used if animation range is <b>NOT</b> defined.
927 */
928     double getMinTime();
929 /*! Gets the last time stamp of the field defined at the input of the animation.
930 \note This method is used if animation range is <b>NOT</b> defined.
931 */
932     double getMaxTime();
933 /*! Sets proprtional playback of the animation. This option allows to render your animation with proportional periods of time between every frame (not depending on the time stamps).
934 \param theProp If this boolean parameter is True, playback of your animation will be set as proportional.
935 */
936     void setProportional(in boolean theProp);
937 /*! Sets cycling playback of the animation. The number of cycles can be infinite, untill you use <VAR>startAnimation</VAR> method.
938 \param theCycle If this boolean parameter is True, playback of your animation will be set as cycling.
939 */
940     void setCycling(in boolean theCycle);
941   };
942
943 /*! \brief Interface %Result
944
945 This interface serves for inner representation of data generated in other sources. (MED object or file)
946 This data is needed for further construction of graphical presentations.
947 */
948   interface Result : Base, SALOME::GenericObj{
949     //interface Result : Base{
950 /*! Reads all data from the corresponding sources. By default the data is loaded on demand.
951 */
952     boolean BuildAll();
953   };
954   //-------------------------------------------------------
955   interface ViewManager;
956   interface View3D;
957 /*! \brief %VISU_Gen interface
958
959 This is the main interface of %VISU component. It is necessary for creation of
960 post-processing presentations from given %Result and %Table object reference, using the views
961 provided by %ViewManager.
962 */
963    interface VISU_Gen : Engines::Component, SALOMEDS::Driver, Base{
964 /*! Sets a definite study to be current.
965 */
966      void SetCurrentStudy(in SALOMEDS::Study theStudy);
967 /*! Gets the current study.
968 */
969      SALOMEDS::Study GetCurrentStudy();
970 /*!
971     Gets the %View Manager which is used for creation of
972     post-processing presentations.
973 */
974     ViewManager GetViewManager();
975
976 /*!
977 Imports tables from a file and create TableAttribute in Sudy
978 */
979     SALOMEDS::SObject ImportTables(in string theFileName);
980 /*!
981 Export table to a file
982 */
983      boolean ExportTableToFile(in SALOMEDS::SObject theTable, in string theFileName);
984
985 /*!
986 Imports data from a file. The access to this file will be conserved outside of the application.
987 \param theFileName String parameter defining the name of the file from which the data will
988 be imported.
989 */
990     Result ImportFile(in string theFileName);
991 /*!
992 Imports data from a file. The access to this file will closed.
993 \param theFileName String parameter defining the name of the file from which the data will
994 be imported.
995 */
996
997     Result CopyAndImportFile(in string theFileName);
998 /*!
999 Imports data from a %MED object.
1000 */
1001     Result ImportMed(in SALOMEDS::SObject theMedSObject);
1002 /*!
1003 Imports data from a %MED field.
1004 */
1005     Result ImportMedField(in SALOME_MED::FIELD theField);
1006 /*!
1007 Creates a mesh on the basis of the data generated in other sources (MED object or file).
1008 \param theResult   Data generated in other sources. (MED object or file)
1009 \param theMeshName  One of the meshes presented in MED file
1010 \param theEntity Type of entity where the field is defined
1011 */
1012     Mesh MeshOnEntity(in Result theResult, in string theMeshName, in Entity theEntity);
1013 /*!
1014 Creates on the basis of a family a mesh  which will
1015 be composed of geometrical elements, corresponding to the type of cells (node, edge, face or cell) of this family.
1016 \param theResult   Data generated in other sources. (MED object or file)
1017 \param theMeshName  One of the meshes presented in MED file
1018 \param theEntity Type of entity where the field is defined.
1019
1020 */
1021     Mesh FamilyMeshOnEntity(in Result theResult, in string theMeshName, in Entity theEntity, in string theFamilyName);
1022 /*!
1023 Creates a mesh on the basis of a group of families.
1024 \param theResult   Data generated in other sources. (MED object or file)
1025 \param theMeshName  One of the meshes presented in MED file
1026 \param theGroupName Name of the group.
1027 */
1028     Mesh GroupMesh(in Result theResult, in string theMeshName, in string theGroupName);
1029 /*!
1030 Creates a scalar map presentation.
1031 \param theResult   Data generated in other sources. (MED object or file)
1032 \param theMeshName  One of the meshes presented in MED file
1033 \param theEntity Type of entity where the field is defined
1034 \param theFieldName  Group of data attributed to the %MESH. The data can be scalar or vector.
1035 \param theIteration  Number of iteration on the field
1036 */
1037     ScalarMap ScalarMapOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
1038 /*!
1039 Creates a deformed shape presentation.
1040 \param theResult   Data generated in other sources. (MED object or file)
1041 \param theMeshName  One of the meshes presented in MED file
1042 \param theEntity Type of entity where the field is defined
1043 \param theFieldName  Group of data attributed to the %MESH. The data can be scalar or vector.
1044 \param theIteration  Number of iteration on the field
1045 */
1046     DeformedShape DeformedShapeOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
1047 /*!
1048 Creates a vector presentation.
1049 \param theResult   Data generated in other sources. (MED object or file)
1050 \param theMeshName  One of the meshes presented in MED file
1051 \param theEntity Type of entity where the field is defined
1052 \param theFieldName  Group of data attributed to the %MESH. The data can be scalar or vector.
1053 \param theIteration  Number of iteration on the field
1054 */
1055
1056     Vectors VectorsOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
1057 /*!
1058 Creates an iso surface presentation.
1059 \param theResult   Data generated in other sources. (MED object or file)
1060 \param theMeshName  One of the meshes presented in MED file
1061 \param theEntity Type of entity where the field is defined
1062 \param theFieldName  Group of data attributed to the %MESH. The data can be scalar or vector.
1063 \param theIteration  Number of iteration on the field
1064 */
1065
1066     IsoSurfaces IsoSurfacesOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
1067 /*!
1068 Creates an stream lines presentation.
1069 \param theResult   Data generated in other sources. (MED object or file)
1070 \param theMeshName  One of the meshes presented in MED file
1071 \param theEntity Type of entity where the field is defined
1072 \param theFieldName  Group of data attributed to the %MESH. The data can be scalar or vector.
1073 \param theIteration  Number of iteration on the field
1074 */
1075     StreamLines StreamLinesOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
1076
1077 /*!
1078 Creates a presentation of cut planes.
1079 \param theResult   Data generated in other sources. (MED object or file)
1080 \param theMeshName  One of the meshes presented in MED file
1081 \param theEntity Type of entity where the field is defined
1082 \param theFieldName  Group of data attributed to the %MESH. The data can be scalar or vector.
1083 \param theIteration  Number of iteration on the field
1084 */
1085     CutPlanes CutPlanesOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
1086
1087 /*!
1088 Creates a presentation of cut lines.
1089 \param theResult   Data generated in other sources. (MED object or file)
1090 \param theMeshName  One of the meshes presented in MED file
1091 \param theEntity Type of entity where the field is defined
1092 \param theFieldName  Group of data attributed to the %MESH. The data can be scalar or vector.
1093 \param theIteration  Number of iteration on the field
1094 */
1095     CutLines CutLinesOnField(in Result theResult, in string theMeshName, in Entity theEntity, in string theFieldName, in double theIteration);
1096
1097 /*!
1098 Creates a table presentation.
1099 \param theTableEntry The entry of the table which will be displayed.
1100
1101 */
1102     Table CreateTable(in string theTableEntry);
1103 /*!
1104 Creates a curve on the basis of points, whose values are taken from the table.
1105 \param theTable  Table containing the data for construction of curves.
1106 \param HRow  Index of the row in the table:  abscissa of the point.
1107 \param VRow  Index of the row in the table:  ordinate of the point.
1108 */
1109     Curve CreateCurve(in Table theTable, in long theHRow, in long theVRow);
1110 /*!
1111 Creates a presentation form containing an array of references to the curves.
1112 */
1113      Container CreateContainer();
1114 /*! Creates an animation in the 3D view.
1115 \param theView3d The 3D view, where the animation will be rendered.
1116 */
1117      Animation CreateAnimation(in View3D theView3d);
1118   };
1119 /*! \brief %View interface
1120
1121  Contains a set of methods used by the %View frame, which can be one of
1122  the following types: 3d, Table, XY plot.
1123  %View interface is a base for all types of %view interfaces.
1124 */
1125   interface View: Base{
1126 /*!
1127 Sets the title of the %View frame.
1128 \param theTitle String parameter defining the title of the %View frame.
1129 */
1130     void SetTitle(in string theTitle);
1131 /*!
1132 Gets the title of the %View frame.
1133 */
1134     string GetTitle();
1135 /*!
1136 Sets background color of the %View frame.
1137 \param theColor Background color defined in <VAR>SALOMEDS::Color</VAR> enumeration.
1138 */
1139     void SetBackground(in SALOMEDS::Color theColor);
1140 /*!
1141 Gets background color of the %View frame.
1142 */
1143     SALOMEDS::Color GetBackground();
1144 /*!
1145 Minimizes to the task bar or to the bottom of the Desktop the %View frame.
1146 */
1147     void Minimize();
1148 /*!
1149 Restores the %View frame.
1150 */
1151     void Restore();
1152 /*!
1153 Maximizes the %View frame.
1154 */
1155     void Maximize();
1156 /*!
1157 Removes all presentations (presentable objects) from the %view.
1158 */
1159     void EraseAll();
1160 /*!
1161 Displays all presentations (presentable objects) in the %view.
1162 */
1163     void DisplayAll();
1164 /*!
1165 Removes a definite presentation (presentable object) from the %view.
1166 \param thePrsObj The presentation (presentable object) which should be deleted.
1167 */
1168     void Erase(in PrsObject thePrsObj);
1169 /*!
1170 Displays a definite presentation (presentable object) in the %view.
1171 \param thePrsObj The presentation (presentable object) which should be displayed.
1172 */
1173     void Display(in PrsObject thePrsObj);
1174 /*!
1175 Allows to display only a definite presentation (presentable object) in the %view.
1176 All other presentations are removed from the %view.
1177 \param thePrsObj The presentation (presentable object) which should be displayed.
1178 */
1179     void DisplayOnly(in PrsObject thePrsObj);
1180 /*!
1181 Updates the view.
1182 */
1183     void Update();
1184
1185 /*!
1186 Saves the view.
1187 \param theFileName The name of the file where the view will be saved.
1188 \return True, if the view have been saved successfully.
1189 */
1190     boolean SavePicture(in string theFileName);
1191   };
1192
1193   //-------------------------------------------------------
1194 /*! \brief 3D view interface
1195
1196 This interface contains a set of methods necessary for representation of objects in 3D space.
1197 */
1198
1199   interface View3D : View {
1200 /*!
1201 This enumeration contains a set of elements determining a predefined point of view
1202   (position of the camera in 3D space relative to the presentable object).
1203 */
1204     enum ViewType{ FRONT, BACK, LEFT, RIGHT, TOP, BOTTOM};
1205 /*!
1206 This enumeration contains a set of elements determining the axis
1207 */
1208     enum Axis{ XAxis, YAxis, ZAxis};
1209 /*!
1210 Data type defining coordinates in 3D space.
1211 */
1212     typedef double XYZ[3];
1213
1214 /*!
1215  Makes all presentations, which are currently present in the %view, completely visible.
1216 */
1217
1218     void FitAll();
1219
1220 /*!
1221 Sets a predefined point of view (FRONT, BACK, LEFT, RIGHT, TOP, BOTTOM). (In other words it means
1222  a predefined position of the camera in 3D space with respect to the object which is represented.)
1223 */
1224     void SetView(in ViewType theType);
1225
1226 /*!
1227 Sets the position of the camera in 3D space. This point is used as the first point of the vector defining
1228 the view direction of the camera.
1229 */
1230     void SetPointOfView(in XYZ theCoord);
1231 /*!
1232 Gets the position of the camera in 3D space.This point is used as the first point of the vector defining
1233 the view direction of the camera.
1234 */
1235     XYZ GetPointOfView();
1236 /*!
1237 Sets the vertical line of the camera in 3D space.
1238 */
1239     void SetViewUp(in XYZ theDir);
1240 /*!
1241 Gets the vertical line of the camera in 3D space.
1242 */
1243     XYZ GetViewUp();
1244 /*!
1245 Sets the point of sight of the camera. This point is used as the second point of the vector defining
1246 the view direction of the camera.
1247 */
1248     void SetFocalPoint(in XYZ theDir);
1249 /*!
1250 Gets the point of sight of the camera. This point is used as the second point of the vector defining
1251 the view direction of the camera.
1252 */
1253     XYZ GetFocalPoint();
1254 /*!
1255 Zooming of the presentable object. Sets the scale.
1256 */
1257     void SetParallelScale(in double theScale);
1258 /*!
1259 Zooming of the presentable object. Gets the scale.
1260 */
1261     double GetParallelScale();
1262 /*!
1263 Scaling of the view along a definite axis.
1264 \param theAxis The axis of the scaling
1265 \param theParam The coefficient of the scaling
1266 */
1267     void ScaleView(in Axis theAxis, in double theParam);
1268 /*!
1269 Removes the scaling of the view.
1270 */
1271     void RemoveScale();
1272 /*!
1273 Saves view parameters.
1274 \return True if the view parameters have been created, False if the parameters have been modified.
1275 \param theName The name under which the view parameters will be saved.
1276 */
1277     boolean SaveViewParams(in string theName);
1278 /*! Restores view parameters.
1279 \return True if the view parameters have been found and applied to the view,
1280 False if the parameters with this name don't exist.
1281 \param theName The name of the view parameters which will be restored.
1282 */
1283     boolean RestoreViewParams(in string theName);
1284   };
1285
1286
1287   //-------------------------------------------------------
1288 /*! \brief Interface of the Table view
1289
1290 This interface is used for creation of a view necessary for presentation of a table.
1291 */
1292   interface TableView : View {
1293
1294   };
1295
1296
1297   //-------------------------------------------------------
1298 /*! \brief Interface of the 2D plot view
1299
1300 This interface is used for creation of a view necessary for presentation of a XY plot generated on the basis
1301 of one or several curve lines.
1302 */
1303   interface XYPlot : View {
1304 /*! Sets the title of the XY plot
1305 \param theTitle  The title of the XY plot
1306 */
1307
1308     void SetSubTitle(in string theTitle);
1309 /*! Gets the title of the XY plot
1310 */
1311     string GetSubTitle();
1312 /*!
1313 This enumeration contains a set of elements determining the type of the curve lines, which
1314 will be displayed in your XY plot.
1315 */
1316     enum CurveType { POINTS, MULTYLINE, SPLINE};
1317 /*! Sets the type of the curve lines.
1318 \param theType The type of the curve lines taken from <VAR>CurveType</VAR> enumeration.
1319 */
1320     void SetCurveType(in CurveType theType);
1321
1322 /*! Gets the type of the curve lines.
1323
1324 */
1325     CurveType GetCurveType();
1326 /*! Sets the size of the markers (data points) with help of
1327 which the curve is constructed on the graphics.
1328 \param theSize Long value defining the size of the markers.
1329 */
1330     void SetMarkerSize(in long theSize);
1331 /*! Gets the size of the markers (data points) with help of
1332 which the curve is constructed on the graphics.
1333 */
1334     long GetMarkerSize();
1335 /*! Enable/disables X-axis grid of the 2D plot.
1336 */
1337     void EnableXGrid(in boolean theMajor, in long theNumMajor, in boolean theMinor, in long theNumMinor);
1338
1339 /*! Enable/disables Y-axis grid of the 2D plot.
1340 */
1341     void EnableYGrid(in boolean theMajor, in long theNumMajor, in boolean theMinor, in long theNumMinor);
1342
1343 /*! Sets horizontal scaling of the 2D plot.
1344 \param theScaling Type of scaling taken from <VAR>Scaling</VAR> enumeration.
1345 */
1346     void SetHorScaling(in Scaling theScaling);
1347 /*! Gets the type horizontal scaling of the 2D plot.
1348 */
1349     Scaling GetHorScaling();
1350 /*! Sets vertical scaling of the 2D plot.
1351 \param theScaling Type of scaling taken from <VAR>Scaling</VAR> enumeration.
1352 */
1353     void SetVerScaling(in Scaling theScaling);
1354 /*! Gets the type vertical scaling of the 2D plot.
1355 */
1356     Scaling GetVerScaling();
1357
1358 /*! Sets the title of the X-axis of the plot.
1359 \param theTitle String value defining the title of the X-axis of the plot.
1360 */
1361     void SetXTitle(in string theTitle);
1362 /*! Gets the title of the X-axis of the plot.
1363 */
1364     string GetXTitle();
1365 /*! Sets the title of the Y-axis of the plot.
1366 \param theTitle String value defining the title of the X-axis of the plot.
1367 */
1368     void SetYTitle(in string theTitle);
1369 /*! Gets the title of the Y-axis of the plot.
1370 */
1371     string GetYTitle();
1372 /*! Shows/hides the legend (description) of the 2D plot.
1373 */
1374     void ShowLegend(in boolean theShowing);
1375 /*! Shrinks and enlarges the 2D plot to fit the 2D viewer.
1376 */
1377     void FitAll();
1378   };
1379
1380   //-------------------------------------------------------
1381 /*! \brief Interface of the %ViewManager
1382
1383    The %ViewManager is necessary for work with view windows (creation and deletion).
1384 */
1385
1386     interface ViewManager: Base{
1387 /*! \brief Getting an active %View Frame
1388
1389  Returns an object reference to the active %View Frame.
1390  Type of the %View must be checked.
1391  \note <BR>Returns nil if there are no views currently opened.
1392 */
1393
1394     View GetCurrentView();
1395 /*! \brief Creation of a 3d %View.
1396
1397  Returns an object reference to the newly created 3D %View.
1398 */
1399     View3D Create3DView();
1400 /*! \brief Creation of a Table %View.
1401
1402  Returns an object reference to the newly created Table %View.
1403 */
1404
1405     TableView CreateTableView(in Table theTable);
1406
1407 /*! \brief Creation of a 2D plot %View.
1408
1409  Returns an object reference to the newly created 2D plot %View.
1410 */
1411
1412     XYPlot CreateXYPlot();
1413
1414 /*! Deletes a definite view.
1415 \param theView The view which should be deleted.
1416 */
1417     void Destroy(in View theView);
1418
1419 /*! Runs a cycle of events in GUI (desktop).
1420 \note This method is one-way.
1421 */
1422     void ProcessEvents();
1423  };
1424 };
1425 #endif
1426
1427