1 // Copyright (C) 2003 CEA/DEN, EDF R&D
6 // Author : Alexey Petrov
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.
17 #include "SALOME_Exception.idl"
18 #include "SALOME_GenericObj.idl"
19 #include "SALOME_Component.idl"
20 #include "SALOMEDS.idl"
21 #include "SALOMEDS_Attributes.idl"
25 The main package of interfaces of the post-processing module %VISU.
28 //-------------------------------------------------------
29 typedef string IdType;
32 * This enumeration contains a set of elements defining the type
33 * of the scaling, which can be applied on different presentations.
35 enum Scaling{ LINEAR, /*!< Linear type of scaling. */
36 LOGARITHMIC /*!< Logarithmic type of scaling. */
40 * This enumeration contains a set of elements defining the
41 * type of the %entity (topological units) constituting a mesh.
43 enum Entity{ NODE, /*!< Node corresponds to a geometrical point. */
44 EDGE, /*!< Edge corresponds to a geometrical line connecting two points. */
45 FACE, /*!< Face corresponds to a geometrical plane bounded by several lines. */
46 CELL /*!< Cell is a volumic element of a mesh */
50 * This enumeration contains a set of elements defining the type of the %VISU object.
51 * This enumeration is used for navigation between a set of %VISU interfaces.
54 TNONE, /*!< Not a %VISU object */
55 TCURVE, /*!< Curve line object for construction of 2D XY plots */
56 TTABLE, /*!< Table containing numerical data */
57 TCONTAINER, /*!< Container object used for storing a set of curve lines */
58 TMESH, /*!< Meshing object */
59 TSCALARMAP, /*!< Scalarmap 3D presentation object */
60 TISOSURFACE, /*!< Iso surface 3D presentation object */
61 TDEFORMEDSHAPE, /*!< Deformed shape 3D presentation object */
62 TPLOT3D, /*!< Plot3D 3D presentation object */
63 TCUTPLANES, /*!< Cut planes 3D presentation object */
64 TCUTLINES, /*!< Cut lines 3D presentation object */
65 TVECTORS, /*!< Vectors 3D presentation object */
66 TSTREAMLINES, /*!< Streamlines 3D presentation object */
67 TVISUGEN, /*!< %VISU generator used for performing operations with different %VISU objects */
68 TVIEWMANAGER, /*!< View manager used for performing operations with different views */
69 TRESULT, /*!< The data on which different presentations are based */
70 TXYPLOT, /*!< 2D XY plot consisting of one or several curve lines */
71 TTABLEVIEW, /*!< Table view is used for displaying data tables */
72 TVIEW3D, /*!< 3D view is used for displaying 3D graphical presentations */
73 TENTITY, /*!< An element composing a mesh: node, edge, face or cell */
74 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. */
75 TGROUP, /*!< A group of families */
76 TFIELD, /*!< Field represents the results of calculations (it can be scalar or vector values), grouped together under one physical concept. */
77 TTIMESTAMP, /*!<Time stamp represents a subfield: the results of calculations are taken in one definite moment. */
78 TANIMATION, /*!< Represents Animation object. */
84 * Returns ID of the object.
89 * Returns the type of the presentable object
95 * \brief Removable object interface
97 * Removable object interface is the root class of all removable objects.
99 interface RemovableObject : Base {
101 * Remove object from study.
103 void RemoveFromStudy();
106 /*! \brief Presentable object interface
108 * Presentable object interface is the root class of all presentable objects.
110 interface PrsObject : RemovableObject {
113 //-------------------------------------------------------
114 /*! \brief %Table representation interface
116 * Presentation parameters of the %Table view.
118 interface Table : PrsObject {
120 * Sets the title of the table.
121 * \param theTitle String parameter defining the title of this table.
123 void SetTitle(in string theTitle);
126 * Gets the title of the table.
127 * \return A string value containing the title of the table.
132 * This enumeration contains a set of elements defining the orientation of the table.
135 HORIZONTAL, /*!< Horizontal orientation of the table. */
136 VERTIACAL /*!< Vertical orientation of the table. */
140 * Sets orientation of the table.
141 * \param theOrientation This input parameter defines the orientation of the table.
142 * It is taken from the <VAR>Orientation</VAR> enumeration.
144 void SetOrientation(in Orientation theOrientation);
147 * Gets orientation of the table.
148 * \return Orientation of the table. The returned value will correspond
149 * to one of the elements the <VAR>Orientation</VAR> enumeration.
151 Orientation GetOrientation();
154 * Gets the number of rows of the table.
155 * \return Long value corresponding to the number of rows of the table
160 * Gets the number of columns of the table.
161 * \return Long value corresponding to the number of columns of the table
166 //-------------------------------------------------------
167 /*! \brief Interface of curve representation.
169 * Manages presentation parameters of one curve.
170 * It can be used for presentation of a set of curves using a combined presentation.
172 interface Curve : PrsObject {
174 * Sets the title of the curve.
175 * \param theTitle This string parameter defines the title of this curve.
177 void SetTitle(in string theTitle);
180 * Gets the title of the curve.
181 * \return String value corresponding to the title of the curve.
186 * Sets the color of the curve.
187 * \param theColor The color of the curve. This parameter is taken
188 * from the <VAR>Orientation</VAR> enumeration.
190 void SetColor(in SALOMEDS::Color theColor);
193 * Gets the color of the curve.
194 * \return Color of the curve. The returned value will correspond
195 * to one of the elements the <VAR>Color</VAR> enumeration.
197 SALOMEDS::Color GetColor();
200 * This enumeration contains a set of elements defining the
201 * presentation type of markers (data points) with help of
202 * which the curve is constructed on the graphics.
204 enum MarkerType { NONE,
217 * Sets the presentation type of markers (data points) with help of
218 * which the curve is constructed on the graphics.
219 * \param theType This parameter defines the type of marker with help
220 * of which the curve is constructed on the graphics.
221 * It is taken from <VAR>MarkerType</VAR> enumeration.
223 void SetMarker(in MarkerType theType);
226 * Gets the presentation type of markers (data points) with
227 * help of which the curve is constructed on the graphics.
228 * \return The type of marker with help of which the curve is constructed
229 * on the graphics. The returned value will correspond to
230 * one of the elements the <VAR>MarkerType</VAR> enumeration.
232 MarkerType GetMarker();
235 * This enumeration contains a set of elements defining the
236 * type of presentation of a curve line on the graphics.
238 enum LineType{ VOIDLINE, SOLIDLINE, DASHLINE, DOTLINE, DASHDOTLINE, DASHDOTDOTLINE};
241 * Sets the type of presentation of curve lines on the graphics.
242 * \param theType This parameter defines the type of presentation of curve lines on the graphics.
243 * \param theLineWidth Long value defining the width of the curve line.
245 void SetLine(in LineType theType, in long theLineWidth);
248 * Gets the type of representation of curve lines on the graphics.
249 * \return The type of representation of curve lines on the graphics.
254 * Gets the width of the curve line.
255 * \return Long value corresponding to the width of the curve line.
260 //-------------------------------------------------------
261 /*! \brief %Container presentable object interface
263 * This class is provided in order to create one presentation using several presentable objects.
264 * This can provide a combination of a set of curves to display them in XY plot view.
266 interface Container : PrsObject {
268 * Adds a curve into the container.
269 * \param theCurve The added curve.
271 void AddCurve(in Curve theCurve);
274 * Removes a curve from the container.
275 * \param theCurve The removed curve.
277 void RemoveCurve(in Curve theCurve);
280 * Gets the number of curves which are stored in the container.
281 * \return A long value corresponding to the number of curves which are stored in the container.
286 * Removes all curves from the container.
291 //-------------------------------------------------------
292 /*! \brief 3D presentation interface
294 * This is a root class for all 3D presentations, which can be displayed in %VISU module.
296 interface Prs3d : PrsObject, SALOME::GenericObj {
297 //interface Prs3d : PrsObject{
298 void SetOffset(in float theDx, in float theDy, in float theDz);
299 void GetOffset(out float theDx, out float theDy, out float theDz);
303 * This enumeration contains a set of elements defining the
304 * type of presentation of the mesh.
306 enum PresentationType{ POINT,
314 /*! \brief Interface of the mesh.
316 * Manages presentation parameters of a 3D presentation of a mesh.
317 * This object can be used for presentation of set of curves using Container class.
319 interface Mesh : Prs3d {
321 * Sets the color of mesh cells.
322 * \param theColor The color of the cells. This parameter is taken from <VAR>Color</VAR> enumeration.
324 void SetCellColor(in SALOMEDS::Color theColor);
327 * Gets the color of mesh cells.
329 SALOMEDS::Color GetCellColor();
332 * Sets the color of mesh nodes.
333 * \param theColor The color of the nodes. This parameter is taken from <VAR>Color</VAR> enumeration.
335 void SetNodeColor(in SALOMEDS::Color theColor);
338 * Gets the color of mesh nodes.
340 SALOMEDS::Color GetNodeColor();
343 * Sets the color of mesh links.
344 * \param theColor The color of the links. This parameter is taken from <VAR>Color</VAR> enumeration.
346 void SetLinkColor(in SALOMEDS::Color theColor);
349 * Gets the color of mesh links.
351 SALOMEDS::Color GetLinkColor();
354 * Sets the type of representation of a mesh.
355 * \param theType The of representation of a mesh. This parameter is
356 * taken from <VAR>PresentationType</VAR> enumeration.
358 void SetPresentationType(in PresentationType theType);
361 * Gets the type of representation of the mesh.
362 * \return The type of representation of the mesh.
364 PresentationType GetPresentationType();
367 //-------------------------------------------------------
368 /*! \brief Interface of the %Scalar Map
370 * This interface is responsable for coloring of 3D field presentations
371 * according the scalar values applied to different cells.
372 * As well it contains presentation parameters of the scalar bar. The scalar
373 * bar is displayed along with each colored field presentation and serves for
374 * consulting the correspondance between colors and data values.
376 interface ScalarMap : Prs3d {
377 /*! Sets the method of coloring of the elements composing a 3D presentation.
379 void SetScalarMode(in long theScalarMode);
381 /*! Gets the method of coloring of the elements composing a 3D presentation.
383 long GetScalarMode();
386 * Sets the type of scaling of the values reflected by the scalar bar.
387 * \param theScaling The value of this parameter is taken from the <VAR>Scaling</VAR> enumeration.
389 void SetScaling(in Scaling theScaling);
392 * Gets the type of scaling of the values reflected by this presentation.
394 Scaling GetScaling();
397 * Sets scalar range - min and max boundaries of the scalar bar.
398 * \param theMin Min boundary of the scalar bar.
399 * \param theMax Max boundary of the scalar bar.
401 void SetRange(in double theMin, in double theMax);
404 * Gets the min boundary of the scalar bar.
409 * Gets the max boundary of the scalar bar.
413 /*! %Orientation of the scalar bar. */
415 HORIZONTAL, /*!< Horizontal orientation of the scalar bar.*/
416 VERTICAL /*!< Vertical orientation of the scalar bar.*/
420 * Sets the type of orientation of the scalar bar.
421 * \param theOrientation This parameter defines the orientation of the scalar bar.
422 * It is taken from the <VAR>Orientaton</VAR> enumeration.
424 void SetBarOrientation(in Orientation theOrientation);
427 * Gets the type of orientation of the scalar bar.
429 Orientation GetBarOrientation();
431 /*! \brief Position of the scalar bar.
433 * Sets the position of the scalar bar origin on the screen.
434 * \param X Horizontal position. The value can be between 0 and 1.
435 * \param Y Vertical position. The value can be between 0 and 1.
437 void SetPosition(in double X, in double Y);
440 * Gets horizontal position of the scalar bar origin.
445 * Gets vertical position of the scalar bar origin.
449 /*! \brief Size of this presentable object.
451 * Sets the size of the scalar bar.
452 * \param theWidth Width of this presentable object. The value can be between 0 and 1.
453 * \param theHeight Height of this presentable object. The value can be between 0 and 1.
455 void SetSize(in double theWidth, in double theHeight);
458 * Gets the width of this presentable object.
459 * \return A double value corresponding to the width of this presentable object.
464 * Gets the height of this presentable object.
465 * \return A double value corresponding to the height of this presentable object.
470 * Sets the number of colors which will be used for presentation of this presentable object.
471 * \param theNbColors A long value defining the number of colors.
473 void SetNbColors(in long theNbColors);
476 * Gets the number of colors which will be used for visualization of this presentable object.
477 * \return A long value corresponding to the number of colors which
478 * will be used for visualization of this presentable object.
483 * Sets the number of labels which will be used for indication of color gradation
485 * \param theNbLabels A long value defining the number of labels.
487 void SetLabels(in long theNbLabels);
490 * Gets the number of labels which will be used for indication of color gradation of the scalar bar.
491 * \return A long value corresponding to the number of labels which will
492 * be used for indication of color gradation of the scalar bar.
497 * Sets the title of the scalar bar. By default - the name of the selected result is used.
498 * \param theName String parameter defining the name of the scalar bar.
500 void SetTitle(in string theName);
503 * Gets the title of the scalar bar.
508 //-------------------------------------------------------
509 /*! \brief Deformed shape presentation interface
511 * Presentation parameters of the deformed shape presentation.
513 interface DeformedShape : ScalarMap {
515 * Sets the scale of the presentatable object.
516 * \param theScale Double value defining the scale of this presentable object.
518 void SetScale(in double theScale);
521 * Gets the scale of the presentatable object.
525 /*! This boolean method returns True if this deformed shape presentation is colored.
529 /*! Shows this presentation in colored mode.
530 * \param theColored If this boolean parameter is True this presentable
531 * object will be shown in colored mode.
533 void ShowColored(in boolean theColored);
535 /*! Gets the color of this presentable object.
536 * \return The color of this presentable object.
538 SALOMEDS::Color GetColor();
540 /*! Sets the color of this presentation.
541 * \param theColor The color of this presentation. This parameter
542 * is taken from the <VAR>Color</VAR> enumeration.
544 void SetColor(in SALOMEDS::Color theColor);
547 //-------------------------------------------------------
549 * \brief Plot3D interface
551 * Presentation parameters of Plot3D presentation. This type of presentation
552 * consists of deforming initial planar mesh according to values assigned to the mesh elements.
553 * If mesh not planar but volumic one, it is possible to generate intermediate planar mesh.
555 interface Plot3D : ScalarMap {
557 * This enumeration contains a set of elements defining
558 * the type of orientation in 3D space of the cutting plane.
560 enum Orientation { XY, /*!< The object is located in the plane formed by X and Y axis. */
561 YZ, /*!< The object is located in the plane formed by Y and Z axis. */
562 ZX }; /*!< The object is located in the plane formed by Z and X axis. */
565 * Sets the orientation in 3D space of cutting plane for the presentation.
566 * \param theOrientation This parameter defines the type of orientation of cutting plane
567 * in 3D space. It is taken from the <VAR>Orientation</VAR> enumeration.
568 * \param theXAngle The angle of rotation of the cutting plane
569 * around the first axis of the chosen orientation.
570 * \param theXAngle The angle of rotation of the cutting plane
571 * around the second axis of the chosen orientation.
573 void SetOrientation (in Orientation theOrientation, in double theXAngle, in double theYAngle);
576 * Gets the type of orientation in 3D space of cutting plane.
578 Orientation GetOrientationType();
581 * Gets rotation angle of the cutting plane
582 * around the first axis of the chosen orientation.
587 * Gets rotation angle of the cutting plane
588 * around the second axis of the chosen orientation.
593 * Sets the position of a cutting plane.
594 * \param thePlanePosition The position of the cutting plane.
595 * \param theIsRelative Define, whether the input position is relative.
597 void SetPlanePosition (in double thePlanePosition,
598 in boolean theIsRelative);
601 * Gets the position of the cutting plane
603 double GetPlanePosition();
606 * Returns true if a position of cutting plane is relative
608 boolean IsPositionRelative();
611 * Sets the scale factor for scalar values
612 * (how much corresponding mesh elements should be translated).
613 * \param theScaleFactor The scaling factor.
615 void SetScaleFactor (in double theScaleFactor);
618 * Gets the scale factor for scalar values.
619 * (how much corresponding mesh elements is translated)
621 double GetScaleFactor();
624 * Sets presentation type: contour or surface.
625 * \param theIsContourPrs Define, whether presentation type is contour.
627 void SetContourPrs (in boolean theIsContourPrs );
630 * Returns true if presentation type is contour.
632 boolean GetIsContourPrs();
635 * Sets the number of contours.
636 * \param theNb The number of contours.
638 void SetNbOfContours (in long theNb);
641 * Gets the number of contours.
643 long GetNbOfContours();
646 //-------------------------------------------------------
647 /*! \brief Cut planes interface
649 * Presentation parameters of Cut planes presentation. This type of presentation
650 * consists of cutting your initial mesh by a definite number of planes. As the
651 * result you will see these planes which will be cutted by the borders of the mesh.
653 interface CutPlanes : ScalarMap {
655 * This enumeration contains a set of elements defining the type of orientation in 3D space
658 enum Orientation {XY, /*!< The object is located in the plane formed by X and Y axis. */
659 YZ, /*!< The object is located in the plane formed by Y and Z axis. */
660 ZX}; /*!< The object is located in the plane formed by Z and X axis. */
663 * Sets the type of orientation in 3D space of cut planes presentation.
664 * \param theOrientation This parameter defines the type of orientation of cut planes
665 * in 3D space. It is taken from the <VAR>Orientation</VAR> enumeration.
666 * \param theXAngle The angle of rotation of the cut planes around
667 * the first axis of the chosen orientation.
668 * \param theXAngle The angle of rotation of the cut planes around
669 * the second axis of the chosen orientation.
671 void SetOrientation(in Orientation theOrientation, in double theXAngle, in double theYAngle);
674 * Gets the type of orientation in 3D space of cut planes presentation.
676 Orientation GetOrientationType();
679 * Gets rotation angle of the cut plane presentation around the first axis of the chosen orientation.
684 * Gets rotation angle of the cut plane presentation around the second axis of the chosen orientation.
689 * Sets the displacement of the cut planes in 3D space.
691 * \param theDisp This parameter defines position of the cut planes
692 * in 3D space. It varies from 0 to 1. If the chosen value is 0.5, the cut planes
693 * will be evenly located regarding each other; in other words, the distance between all
694 * of them will be equal. If the value is higher or lower than 0.5, the planes will be displaced
695 * to one or another side.
697 void SetDisplacement(in double theDisp);
700 * Gets the displacement of the cut planes in 3D space.
702 double GetDisplacement();
705 * Sets the position of a definite cut plane.
706 * \param thePlaneNumber The number of this cut plane.
707 * \param thePlanePosition The position of this cut plane.
709 void SetPlanePosition(in long thePlaneNumber, in double thePlanePosition);
712 * Sets the position of the choosen plane to default value.
713 * \param thePlaneNumber The number of this cut plane.
715 void SetDefault(in long thePlaneNumber);
718 * Gets the position of the choosen plane
720 double GetPlanePosition(in long thePlaneNumber);
723 * Determines whether the choosen plane has default position.
724 * \param thePlaneNumber The number of this cut plane.
726 boolean IsDefault(in long thePlaneNumber);
729 * Sets the number of cut planes.
730 * \param theNb The number of cut planes.
732 void SetNbPlanes(in long theNb);
735 * Gets the number of cut planes.
740 //-------------------------------------------------------
741 /*! \brief Cut lines presentation.
743 * Presentation parameters of a Cut lines presentation.
744 * Cut Lines is a type of presentation which displays colored cells
745 * with applied scalar values on the mesh where lines are placed.
746 * The procedure of construction of a Cut Lines presentation reuses the algorithm
747 * of creation of Cut Planes presentation and consists of two steps:
749 * 1. From Cut Planes presentation one plane is taken and
750 * it is used as base plane for construction of cut lines.
751 * 2. This plane is cut by a regular array of planes. The result of this
752 * operation is a regular array of lines in space, belonging to the same plane
753 * and having the same orientation. They are located inside or on the mesh.
755 interface CutLines : ScalarMap {
757 * Sets the type of orientation in 3D space of the base plane of a cut lines presentation.
758 * \param theOrientation The orientation of the base plane in 3D space.
759 * \param theXAngle The angle of rotation of the base plane around
760 * the first axis of the chosen orientation.
761 * \param theXAngle The angle of rotation of the base plane around
762 * the second axis of the chosen orientation.
764 void SetOrientation(in CutPlanes::Orientation theOrientation, in double theXAngle, in double theYAngle);
767 * Sets the type of orientation in 3D space of the cutting planes of a cut lines presentation.
768 * \param theOrientation This parameter defines the type of orientation of the cutting planes
769 * in 3D space. It is taken from the <VAR>Orientation</VAR> enumeration.
770 * \param theXAngle The angle of rotation of the cutting planes
771 * around the first axis of the chosen orientation.
772 * \param theXAngle The angle of rotation of the cutting planes
773 * around the second axis of the chosen orientation.
775 void SetOrientation2(in CutPlanes::Orientation theOrientation, in double theXAngle, in double theYAngle);
778 * Gets the type of orientation in 3D space of the base plane of a cut lines presentation.
780 CutPlanes::Orientation GetOrientationType();
783 * Gets the type of orientation in 3D space of the cutting planes of a cut lines presentation.
785 CutPlanes::Orientation GetOrientationType2();
788 * Gets rotation angle of the base plane around the first axis of the chosen orientation.
793 * Gets rotation angle of the cutting planes around the first axis of the chosen orientation.
795 double GetRotateX2();
798 * Gets rotation angle of the base plane around the second axis of the chosen orientation.
803 * Gets rotation angle of the cutting planes around the second axis of the chosen orientation.
805 double GetRotateY2();
808 * Sets the displacement of the base plane of the cut lines presentation in 3D space.
810 * \param theDisp This parameter defines position of the base plane
811 * in 3D space. It varies from 0 to 1.
813 void SetDisplacement(in double theDisp);
816 * Sets the displacement of the cutting planes of the cut lines presentation in 3D space.
818 * \param theDisp This parameter defines position of the cutting planes
819 * in 3D space. It varies from 0 to 1.
821 void SetDisplacement2(in double theDisp);
824 * Gets the displacement of the base plane of the cut lines presentation in 3D space.
826 double GetDisplacement();
829 * Gets the displacement of the cutting planes of the cut lines presentation in 3D space.
831 double GetDisplacement2();
833 /*! Sets the position of the base plane in 3D space.
834 * \param thePlanePosition A double value defining the position of the base plane in 3D space.
836 void SetBasePlanePosition(in double thePlanePosition);
838 /*! Gets the position of the base plane in 3D space.
840 double GetBasePlanePosition();
842 /*! Sets the position of one of cutting planes in 3D space.
843 * \param thePlaneNumber A long value defining the order number of this cutting plane.
844 * \param thePlanePosition A double value defining the position of the base plane in 3D space.
846 void SetLinePosition(in long thePlaneNumber, in double thePlanePosition);
848 /*! Gets the position of one of cutting planes in 3D space.
849 * \param thePlaneNumber A long value defining the order number of this cutting plane.
851 double GetLinePosition(in long thePlaneNumber);
853 /*! Sets the position of the base plane to default value.
858 * Determines whether the base plane has default position.
859 * \return True if the base plane has default position.
864 * Sets the position of the choosen cutting plane to default value.
865 * \param thePlaneNumber The number of this cutting plane.
867 void SetDefaultPosition(in long thePlaneNumber);
870 * Determines whether the choosen cutting plane has default position.
871 * \param thePlaneNumber The number of this cutting plane.
872 * \return True if this cutting plane has default position.
874 boolean IsDefaultPosition(in long thePlaneNumber);
877 * Sets the number of cut lines.
878 * \param theNb The number of cut lines.
880 void SetNbLines(in long theNb);
883 * Gets the number of cut lines.
888 /*! \brief Interface of the stream lines representation
890 * This interface contains presentation parameters of stream lines presentations.
891 * <BR>Stream lines is a type of presentation transforming into lines the
892 * cells with vectors having most similar direction. A stream line can be thought
893 * of as the path that a massless particle takes in a vector field.
894 * Streamlines are used to convey the structure of a vector field.
895 * Usually streamlines are created to explore the most interesting features in the field.
897 interface StreamLines : DeformedShape {
898 /*! This enumerations contains a set of elements necessary
899 * for definition of direction of the stream lines.
901 enum Direction{ FORWARD,
906 /*! Sets the parameters of the stream lines presentation.
907 * \param theIntStep Inegration step is a parameter of smoothness of the stream lines.
908 * This parameter defines the accuracy of construction of the streamlines.
909 * A smaller value of this parameter allows to construct smoother
910 * streamlines (at the cost of more computation time).
911 * \param thePropogationTime This parameter controls the maximum length of
912 * the stream line (measured in units of time).
913 * \param theStepLength This parameter defines the size of the output line segments
914 * that make up the streamline (which is represented as a polyline).
915 * \param thePrs3d The source presentation. The points of the field located on this source
916 * presentation will serve as starting points for generation of stream lines.
917 * \note If this parameter is not defined, your stream lines
918 * presentation will be generated on all points of the field.
919 * \param thePercents This parameter defines the quantity of points of the field
920 * (from 0 to 100%) which will be used as starting points for
921 * construction of the stream lines. Thus, the value of this
922 * parameter can vary from 0 to 1.
923 * \param theDirection Direction of the stream lines (Forward, Backward or Both).
924 * \return True if all parameters are properly set.
926 boolean SetParams(in double theIntStep,
927 in double thePropogationTime,
928 in double theStepLength,
930 in double thePercents,
931 in Direction theDirection);
933 /*! Gets the value of integration step of the stream lines presentation.
935 double GetIntegrationStep();
937 /*! Gets the value of propagation time of the stream lines presentation.
939 double GetPropagationTime();
941 /*! Gets the value of step length of the stream lines presentation.
943 double GetStepLength();
945 /*! Returns the source presentation used for generation of the stream lines.
949 /*! Gets the quantity of points of the field used as starting
950 * points for generation of the stream lines presentation.
952 double GetUsedPoints();
954 /*! Returns the direction of the stream lines.
956 Direction GetDirection();
959 /*! \brief Interface of the isometric surface presentation
961 * This interface contains presentation parameters of
962 * isometric surface presentations.
963 * <BR>Iso surfaces presentation combines all equal scalar
964 * values on the cells and on the basis of them constructs
965 * isobaric surfaces, which form this presentation.
967 interface IsoSurfaces : ScalarMap {
969 * Sets the number of isometric surfaces.
970 * \param theNb A long value defining the number of isometric surfaces
971 * which will be used for construction of this presentation.
973 void SetNbSurfaces(in long theNb);
976 * Gets the number of isometric surfaces
978 long GetNbSurfaces();
981 //-------------------------------------------------------
982 /*! \brief Interface of the vector presentation.
984 * This interface contains presentation parameters of vector presentations.
986 interface Vectors : DeformedShape {
988 * Sets the width of the lines of the vectors.
989 * \param theWidth A double value defining the width of the lines of the vectors.
991 void SetLineWidth(in double theWidth);
994 * Gets the width of the lines of the vectors.
996 double GetLineWidth();
999 * This enumeration contains a set of elements defining the type of representation of the vector head.
1001 enum GlyphType{ ARROW,
1008 * Sets the type of representation of the vector head.
1009 * \param theType This parameter defines the type of representation of the vector head.
1010 * This value is taken from the <VAR>GlyphType</VAR> enumeration.
1012 void SetGlyphType(in GlyphType theType);
1015 * Gets the type of representation of the vector head.
1017 GlyphType GetGlyphType();
1020 * This enumeration contains a set of elements defining the position of the vector head.
1022 enum GlyphPos{ CENTER, /*!<In the center of the vector.*/
1023 TAIL, /*!<In the tail of the vector.*/
1024 HEAD /*!<In the head of the vector.*/
1028 * Sets the position of the vector head.
1029 * \param thePos This parameter defines the position of the vector head.
1030 * This value is taken from the <VAR>GlyphPos</VAR> enumeration.
1032 void SetGlyphPos(in GlyphPos thePos);
1035 * Gets the position of the vector head.
1037 GlyphPos GetGlyphPos();
1040 //-------------------------------------------------------
1041 /*! \brief %Animation class
1043 * This class provides a set of methods used for:<br>
1045 * <li> generating different animations on the basis of a field,
1046 * <li> setting the parameters of the animations,
1047 * <li> playing these animations in the %VISU module.
1050 * <BR><B>Field</B> represents the results of calculations
1051 * (it can be scalar or vector values), grouped together under one physical concept.
1052 * <BR><B>Time stamp</B> represents a subfield: the results
1053 * of calculations are taken in one definite moment.
1055 interface Animation : Base {
1056 /*! Defines the field which will be used as a base for generation of the animation.
1057 * \param theObject The %SObject corresponding to the field.
1059 void addField(in SALOMEDS::SObject theObject);
1061 /*! Generates presentations on the basis of the field.
1062 * \param theFieldNum The number of the field, which will be used
1063 * as the basis for construction of the presentation.
1065 void generatePresentations(in long theFieldNum);
1067 /*! Generates a set of frames from the created by the method
1068 * <VAR>generatePresentations</VAR>3D presentations. A sequence of
1069 * these frames will be transformed into an animation.
1070 * \return True, if the frames have been successfully generated.
1072 boolean generateFrames();
1074 /*! Clears the view before starting an animation.
1078 /*! \name Playback of an animation:
1082 /*! Starts an animation.
1084 void startAnimation();
1086 /*! Stops an animation.
1088 void stopAnimation();
1090 /*! Forwards to the next frame.
1094 /*! Returns to the previous frame.
1098 /*! Returns to the first frame of the animation.
1102 /*! Forwards to the last frame of the animation.
1106 /*! Passes to a definite frame of the animation.
1107 * \param theFrame A long value defining the number of the frame.
1109 void gotoFrame(in long theFrame);
1112 /*! Gets the number of time stamps (subfields) contained in the given field.
1116 /*! Gets the number of generated frames
1120 /*! Returns True, if the animation is currently running.
1122 boolean isRunning();
1124 /*! Returns the number of the current frame.
1126 long getCurrentFrame();
1130 ScalarMap getPresentation(in long theField, in long theFrame);
1132 /*! Sets the type of presentation (vectors, deformed shape etc.)
1133 * which will be generated by the method <VAR>generatePresentations</VAR>.
1135 void setPresentationType(in long theFieldNum, in VISUType theType);
1137 /*! Gets the type of presentation (vectors, deformed shape etc.) which will
1138 * be generated by the method <VAR>generatePresentations</VAR>.
1140 VISUType getPresentationType(in long theFieldNum);
1142 /*! Sets the speed of the animation.
1143 * \param theSpeed The speed of the animation. The value varies from 1 to 99.
1145 void setSpeed(in long theSpeed);
1147 /*! Gets the speed of the animation.
1151 /*! Ruturns True, if playback of the animation is proportional.
1152 * This option allows to render your animation with proportional periods
1153 * of time between every frame (not depending on the time stamps).
1155 boolean isProportional();
1157 /*! Sets the range of the animation. The range is defined on the basis of
1158 * the time stamps of the field which have been used for generation of the animation.
1159 * This method allows to bound the range of generated frames.
1160 * If this method is not used, the animation will be generated
1161 * on the basis of all time stamps contained in the field.
1162 * /param theMin The value of the first time stamp which will be used for generation of the animation.
1163 * /param theMax The value of the last time stamp which will be used for generation of the animation.
1165 void setAnimationRange(in double theMin, in double theMax);
1167 /*! Gets the number of the first time stamp which will be used for generation of the animation.
1169 double getMinRange();
1171 /*! Gets the number of the last time stamp which will be used for generation of the animation.
1173 double getMaxRange();
1175 /*! Returns True if the range of the animation has been defined
1176 * by the method <VAR>setAnimationRange</VAR>. Otherwise
1177 * the animation will be generated on the basis of all time stamps contained in the field.
1179 boolean isRangeDefined();
1181 /*! Saves all the frames composing the animation into a definite directory.
1182 * \param thePath The directory where all the frames will be saved.
1184 void dumpTo(in string thePath);
1186 /*! Returns True, if the playback of the animation is cycling.
1188 boolean isCycling();
1190 /*! Gets the first time stamp of the field defined at the input of the animation.
1191 * \note This method is used if animation range is <b>NOT</b> defined.
1193 double getMinTime();
1195 /*! Gets the last time stamp of the field defined at the input of the animation.
1196 * \note This method is used if animation range is <b>NOT</b> defined.
1198 double getMaxTime();
1200 /*! Sets proprtional playback of the animation. This option allows to render your animation
1201 * with proportional periods of time between every frame (not depending on the time stamps).
1202 * \param theProp If this boolean parameter is True, playback
1203 * of your animation will be set as proportional.
1205 void setProportional(in boolean theProp);
1207 /*! Sets cycling playback of the animation. The number of cycles
1208 * can be infinite, untill you use <VAR>startAnimation</VAR> method.
1209 * \param theCycle If this boolean parameter is True, playback
1210 * of your animation will be set as cycling.
1212 void setCycling(in boolean theCycle);
1214 SALOMEDS::SObject publishInStudy();
1216 void saveAnimation();
1218 void restoreFromStudy(in SALOMEDS::SObject theSObj);
1220 boolean isSavedInStudy();
1223 /*! \brief Interface %Result
1225 * This interface serves for inner representation of data generated
1226 * in other sources (MED object or file). This data is needed
1227 * for further construction of graphical presentations.
1229 interface Result : RemovableObject, SALOME::GenericObj {
1230 //interface Result : Base{
1231 /*! Reads all data from the corresponding sources. By default the data is loaded on demand.
1236 //-------------------------------------------------------
1237 interface ViewManager;
1240 /*! \brief %VISU_Gen interface
1242 * This is the main interface of %VISU component. It is necessary for creation of
1243 * post-processing presentations from given %Result and %Table object reference,
1244 * using the views provided by %ViewManager.
1246 interface VISU_Gen : Engines::Component, SALOMEDS::Driver, Base {
1247 /*! Sets a definite study to be current.
1249 void SetCurrentStudy(in SALOMEDS::Study theStudy);
1251 /*! Gets the current study.
1253 SALOMEDS::Study GetCurrentStudy();
1256 * Gets the %View Manager which is used for creation of
1257 * post-processing presentations.
1259 ViewManager GetViewManager();
1262 * Imports tables from a file and create TableAttribute in Sudy
1264 SALOMEDS::SObject ImportTables(in string theFileName);
1267 * Export table to a file
1269 boolean ExportTableToFile(in SALOMEDS::SObject theTable, in string theFileName);
1272 * Imports data from a file. The access to this file will be conserved outside of the application.
1273 * \param theFileName String parameter defining the name of the file
1274 * from which the data will be imported.
1276 Result ImportFile(in string theFileName);
1279 * Imports data from a file. The access to this file will closed.
1280 * \param theFileName String parameter defining the name of the file
1281 * from which the data will be imported.
1283 Result CopyAndImportFile(in string theFileName);
1286 * Imports data from a %MED object.
1288 Result ImportMed(in SALOMEDS::SObject theMedSObject);
1291 * Imports data from a %MED field.
1293 Result ImportMedField(in SALOME_MED::FIELD theField);
1296 * Creates a mesh on the basis of the data generated in other sources (MED object or file).
1297 * \param theResult Data generated in other sources. (MED object or file)
1298 * \param theMeshName One of the meshes presented in MED file
1299 * \param theEntity Type of entity where the field is defined
1301 Mesh MeshOnEntity(in Result theResult, in string theMeshName, in Entity theEntity);
1304 * Creates on the basis of a family a mesh which will be composed of geometrical
1305 * elements, corresponding to the type of cells (node, edge, face or cell) of this family.
1306 * \param theResult Data generated in other sources. (MED object or file)
1307 * \param theMeshName One of the meshes presented in MED file
1308 * \param theEntity Type of entity where the field is defined.
1310 Mesh FamilyMeshOnEntity(in Result theResult, in string theMeshName,
1311 in Entity theEntity, in string theFamilyName);
1314 * Creates a mesh on the basis of a group of families.
1315 * \param theResult Data generated in other sources. (MED object or file)
1316 * \param theMeshName One of the meshes presented in MED file
1317 * \param theGroupName Name of the group.
1319 Mesh GroupMesh(in Result theResult, in string theMeshName, in string theGroupName);
1322 * Creates a scalar map presentation.
1323 * \param theResult Data generated in other sources. (MED object or file)
1324 * \param theMeshName One of the meshes presented in MED file
1325 * \param theEntity Type of entity where the field is defined
1326 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
1327 * \param theIteration Number of iteration on the field
1329 ScalarMap ScalarMapOnField(in Result theResult, in string theMeshName,
1330 in Entity theEntity, in string theFieldName,
1331 in double theIteration);
1334 * Creates a deformed shape presentation.
1335 * \param theResult Data generated in other sources. (MED object or file)
1336 * \param theMeshName One of the meshes presented in MED file
1337 * \param theEntity Type of entity where the field is defined
1338 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
1339 * \param theIteration Number of iteration on the field
1341 DeformedShape DeformedShapeOnField(in Result theResult, in string theMeshName,
1342 in Entity theEntity, in string theFieldName,
1343 in double theIteration);
1346 * Creates a vector presentation.
1347 * \param theResult Data generated in other sources. (MED object or file)
1348 * \param theMeshName One of the meshes presented in MED file
1349 * \param theEntity Type of entity where the field is defined
1350 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
1351 * \param theIteration Number of iteration on the field
1353 Vectors VectorsOnField(in Result theResult, in string theMeshName,
1354 in Entity theEntity, in string theFieldName,
1355 in double theIteration);
1358 * Creates an iso surface presentation.
1359 * \param theResult Data generated in other sources. (MED object or file)
1360 * \param theMeshName One of the meshes presented in MED file
1361 * \param theEntity Type of entity where the field is defined
1362 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
1363 * \param theIteration Number of iteration on the field
1365 IsoSurfaces IsoSurfacesOnField(in Result theResult, in string theMeshName,
1366 in Entity theEntity, in string theFieldName,
1367 in double theIteration);
1370 * Creates an stream lines presentation.
1371 * \param theResult Data generated in other sources. (MED object or file)
1372 * \param theMeshName One of the meshes presented in MED file
1373 * \param theEntity Type of entity where the field is defined
1374 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
1375 * \param theIteration Number of iteration on the field
1377 StreamLines StreamLinesOnField(in Result theResult, in string theMeshName,
1378 in Entity theEntity, in string theFieldName,
1379 in double theIteration);
1382 * Creates a presentation of cut planes.
1383 * \param theResult Data generated in other sources. (MED object or file)
1384 * \param theMeshName One of the meshes presented in MED file
1385 * \param theEntity Type of entity where the field is defined
1386 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
1387 * \param theIteration Number of iteration on the field
1389 CutPlanes CutPlanesOnField(in Result theResult, in string theMeshName,
1390 in Entity theEntity, in string theFieldName,
1391 in double theIteration);
1394 * Creates a presentation of cut lines.
1395 * \param theResult Data generated in other sources. (MED object or file)
1396 * \param theMeshName One of the meshes presented in MED file
1397 * \param theEntity Type of entity where the field is defined
1398 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
1399 * \param theIteration Number of iteration on the field
1401 CutLines CutLinesOnField(in Result theResult, in string theMeshName,
1402 in Entity theEntity, in string theFieldName,
1403 in double theIteration);
1406 * Creates a Plot3D presentation.
1407 * \param theResult Data generated in other sources. (MED object or file)
1408 * \param theMeshName One of the meshes presented in MED file
1409 * \param theEntity Type of entity where the field is defined
1410 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
1411 * \param theIteration Number of iteration on the field
1413 Plot3D Plot3DOnField(in Result theResult, in string theMeshName,
1414 in Entity theEntity, in string theFieldName,
1415 in double theIteration);
1418 * Creates a table presentation.
1419 * \param theTableEntry The entry of the table which will be displayed.
1421 Table CreateTable(in string theTableEntry);
1424 * Creates a curve on the basis of points, whose values are taken from the table.
1425 * \param theTable Table containing the data for construction of curves.
1426 * \param HRow Index of the row in the table: abscissa of the point.
1427 * \param VRow Index of the row in the table: ordinate of the point.
1429 Curve CreateCurve(in Table theTable, in long theHRow, in long theVRow);
1432 * Creates a presentation form containing an array of references to the curves.
1434 Container CreateContainer();
1436 /*! Creates an animation in the 3D view.
1437 * \param theView3d The 3D view, where the animation will be rendered.
1439 Animation CreateAnimation(in View3D theView3d);
1441 void DeleteResult(in Result theResult);
1443 void DeletePrs3d(in Prs3d thePrs3d);
1446 /*! \brief %View interface
1448 * Contains a set of methods used by the %View frame, which can be one of
1449 * the following types: 3d, Table, XY plot.
1450 * %View interface is a base for all types of %view interfaces.
1452 interface View: Base {
1454 /*! \brief %ViewRepresentation enumeration
1456 * displaying part ("ALL" isn't setable)
1458 enum ViewRepresentation {
1465 void ShowPart (in ViewRepresentation ViewRepr, in boolean state );
1467 boolean IsPartShown( in ViewRepresentation ViewRepr );
1470 * New methods for view parameters management.
1473 /*! \brief Split workarea of this view.
1475 * Horizontally split workarea of this view.
1476 * This view is moved in a new right area.
1480 /*! \brief Split workarea of this view.
1482 * Horizontally split workarea of this view.
1483 * This view stays in an old left area, others are moved in a new right area.
1487 /*! \brief Split workarea of this view.
1489 * Vertically split workarea of this view.
1490 * This view is moved in a new bottom area.
1494 /*! \brief Split workarea of this view.
1496 * Vertically split workarea of this view.
1497 * This view stays in an old top area, others are moved in a new bottom area.
1502 * Put this view window on top of its work area.
1507 * Put \a theView in workarea of this view right after it.
1508 * If \a theView was alone in its workarea, workarea of \a theView will be destroyed.
1509 * If \a theView was in the same workarea with this view, simple reordering will take place.
1510 * \param theView A view window to be attracted to this one.
1512 void Attract (in View theView);
1515 * Put all the view windows from workarea of \a theView in workarea of this view right after it.
1516 * Workarea of \a theView will be destroyed.
1517 * If \a theView was in the same workarea with this view, simple reordering will take place.
1518 * \param theView A view window to be attracted to this one together with all its workarea.
1520 void AttractAll (in View theView);
1523 * Set position of this view window relatively its splitter.
1524 * \param thePosition Desired position of this view window relatively
1525 * its splitter. Meaningfull values lays in range [0..1].
1527 * Direction of positioning is defined by the splitter orientation.
1529 void SetRelativePositionInSplitter (in double thePosition);
1532 * Set size of this view window relatively its splitter.
1533 * \param theSize Desired size of this view window relatively
1534 * its splitter. Meaningfull values lays in range [0..1].
1536 * Direction of resizing is defined by the splitter orientation.
1538 void SetRelativeSizeInSplitter (in double theSize);
1541 * Set horizontal position of this view window relatively its workstack.
1542 * \param thePosition Desired horizontal position of this view window
1543 * relatively its workstack. Meaningfull values lays in range [0..1].
1545 void SetRelativePositionX (in double thePosition);
1548 * Set vertical position of this view window relatively its workstack.
1549 * \param thePosition Desired vertical position of this view window
1550 * relatively its workstack. Meaningfull values lays in range [0..1].
1552 void SetRelativePositionY (in double thePosition);
1555 * Set horizontal size of this view window relatively its workstack.
1556 * \param theSize Desired horizontal size of this view window relatively
1557 * its workstack. Meaningfull values lays in range [0..1].
1559 void SetRelativeSizeX (in double theSize);
1562 * Set vertical size of this view window relatively its workstack.
1563 * \param theSize Desired vertical size of this view window relatively
1564 * its workstack. Meaningfull values lays in range [0..1].
1566 void SetRelativeSizeY (in double theSize);
1569 * Old methods for view parameters management, they don't work now
1571 void SetViewWidth (in long Width); //setting width of view
1572 void SetViewHeight (in long Height); //setting height of view
1573 long GetViewWidth(); //getting view width
1574 long GetViewHeight(); //getting view height
1575 enum ViewPosition {TOP, CENTER, BOTTOM, RIGHT, LEFT}; //position of the study frame
1576 void SetViewPositionHorizontal (in ViewPosition ViewPosHor); //setting of the horizontal view position
1577 void SetViewPositionVertical (in ViewPosition ViewPosVer); //setting of the vertical view position
1578 void SetRelativePosition( in double x, in double y );
1579 void SetRelativeSize( in double x, in double y );
1580 void Minimize(); // Minimizes to the task bar or to the bottom of the Desktop the %View frame.
1581 void Restore(); // Restores the %View frame.
1582 void Maximize(); // Maximizes the %View frame.
1585 * Sets the title of the %View frame.
1586 * \param theTitle String parameter defining the title of the %View frame.
1588 void SetTitle(in string theTitle);
1591 * Gets the title of the %View frame.
1596 * Sets background color of the %View frame.
1597 * \param theColor Background color defined in <VAR>SALOMEDS::Color</VAR> enumeration.
1599 void SetBackground(in SALOMEDS::Color theColor);
1602 * Gets background color of the %View frame.
1604 SALOMEDS::Color GetBackground();
1607 * Removes all presentations (presentable objects) from the %view.
1612 * Displays all presentations (presentable objects) in the %view.
1617 * Removes a definite presentation (presentable object) from the %view.
1618 * \param thePrsObj The presentation (presentable object) which should be deleted.
1620 void Erase(in PrsObject thePrsObj);
1623 * Displays a definite presentation (presentable object) in the %view.
1624 * \param thePrsObj The presentation (presentable object) which should be displayed.
1626 void Display(in PrsObject thePrsObj);
1629 * Allows to display only a definite presentation (presentable object) in the %view.
1630 * All other presentations are removed from the %view.
1631 * \param thePrsObj The presentation (presentable object) which should be displayed.
1633 void DisplayOnly(in PrsObject thePrsObj);
1642 * \param theFileName The name of the file where the view will be saved.
1643 * \return True, if the view have been saved successfully.
1645 boolean SavePicture(in string theFileName);
1648 //-------------------------------------------------------
1649 /*! \brief 3D view interface
1651 * This interface contains a set of methods necessary for representation of objects in 3D space.
1653 interface View3D : View {
1655 * This enumeration contains a set of elements determining a predefined point of view
1656 * (position of the camera in 3D space relative to the presentable object).
1658 enum ViewType{ FRONT, BACK, LEFT, RIGHT, TOP, BOTTOM};
1661 * This enumeration contains a set of elements determining the axis
1663 enum Axis{ XAxis, YAxis, ZAxis};
1666 * Data type defining coordinates in 3D space.
1668 typedef double XYZ[3];
1671 * Makes all presentations, which are currently present in the %view, completely visible.
1676 * Sets a predefined point of view (FRONT, BACK, LEFT, RIGHT, TOP, BOTTOM). (In other words it means
1677 * a predefined position of the camera in 3D space with respect to the object which is represented.)
1679 void SetView(in ViewType theType);
1682 * Sets the position of the camera in 3D space.
1683 * This point is used as the first point of the vector
1684 * defining the view direction of the camera.
1686 void SetPointOfView(in XYZ theCoord);
1689 * Gets the position of the camera in 3D space.
1690 * This point is used as the first point of the vector
1691 * defining the view direction of the camera.
1693 XYZ GetPointOfView();
1696 * Sets the vertical line of the camera in 3D space.
1698 void SetViewUp(in XYZ theDir);
1701 * Gets the vertical line of the camera in 3D space.
1706 * Sets the point of sight of the camera. This point is used as the
1707 * second point of the vector defining the view direction of the camera.
1709 void SetFocalPoint(in XYZ theDir);
1712 * Gets the point of sight of the camera. This point is used as the
1713 * second point of the vector defining the view direction of the camera.
1715 XYZ GetFocalPoint();
1718 * Zooming of the presentable object. Sets the scale.
1720 void SetParallelScale(in double theScale);
1723 * Zooming of the presentable object. Gets the scale.
1725 double GetParallelScale();
1728 * Scaling of the view along a definite axis.
1729 * \param theAxis The axis of the scaling
1730 * \param theParam The coefficient of the scaling
1732 void ScaleView(in Axis theAxis, in double theParam);
1735 * Removes the scaling of the view.
1740 * Saves view parameters.
1741 * \return True if the view parameters have been created, False if the parameters have been modified.
1742 * \param theName The name under which the view parameters will be saved.
1744 boolean SaveViewParams(in string theName);
1746 /*! Restores view parameters.
1747 * \return True if the view parameters have been found and applied to the view,
1748 * False if the parameters with this name don't exist.
1749 * \param theName The name of the view parameters which will be restored.
1751 boolean RestoreViewParams(in string theName);
1754 //-------------------------------------------------------
1755 /*! \brief Interface of the Table view
1757 * This interface is used for creation of a view necessary for presentation of a table.
1759 interface TableView : View {
1762 //-------------------------------------------------------
1763 /*! \brief Interface of the 2D plot view
1765 * This interface is used for creation of a view necessary for presentation
1766 * of a XY plot generated on the basis of one or several curve lines.
1768 interface XYPlot : View {
1769 /*! Sets the title of the XY plot
1770 * \param theTitle The title of the XY plot
1772 void SetSubTitle(in string theTitle);
1774 /*! Gets the title of the XY plot
1776 string GetSubTitle();
1779 * This enumeration contains a set of elements determining the type
1780 * of the curve lines, which will be displayed in your XY plot.
1782 enum CurveType { POINTS, MULTYLINE, SPLINE};
1784 /*! Sets the type of the curve lines.
1785 * \param theType The type of the curve lines taken from <VAR>CurveType</VAR> enumeration.
1787 void SetCurveType(in CurveType theType);
1789 /*! Gets the type of the curve lines.
1791 CurveType GetCurveType();
1793 /*! Sets the size of the markers (data points) with help of
1794 * which the curve is constructed on the graphics.
1795 * \param theSize Long value defining the size of the markers.
1797 void SetMarkerSize(in long theSize);
1799 /*! Gets the size of the markers (data points) with help of
1800 * which the curve is constructed on the graphics.
1802 long GetMarkerSize();
1804 /*! Enable/disables X-axis grid of the 2D plot.
1806 void EnableXGrid(in boolean theMajor, in long theNumMajor, in boolean theMinor, in long theNumMinor);
1808 /*! Enable/disables Y-axis grid of the 2D plot.
1810 void EnableYGrid(in boolean theMajor, in long theNumMajor, in boolean theMinor, in long theNumMinor);
1812 /*! Sets horizontal scaling of the 2D plot.
1813 * \param theScaling Type of scaling taken from <VAR>Scaling</VAR> enumeration.
1815 void SetHorScaling(in Scaling theScaling);
1817 /*! Gets the type horizontal scaling of the 2D plot.
1819 Scaling GetHorScaling();
1821 /*! Sets vertical scaling of the 2D plot.
1822 * \param theScaling Type of scaling taken from <VAR>Scaling</VAR> enumeration.
1824 void SetVerScaling(in Scaling theScaling);
1826 /*! Gets the type vertical scaling of the 2D plot.
1828 Scaling GetVerScaling();
1830 /*! Sets the title of the X-axis of the plot.
1831 * \param theTitle String value defining the title of the X-axis of the plot.
1833 void SetXTitle(in string theTitle);
1835 /*! Gets the title of the X-axis of the plot.
1839 /*! Sets the title of the Y-axis of the plot.
1840 * \param theTitle String value defining the title of the X-axis of the plot.
1842 void SetYTitle(in string theTitle);
1844 /*! Gets the title of the Y-axis of the plot.
1848 /*! Shows/hides the legend (description) of the 2D plot.
1850 void ShowLegend(in boolean theShowing);
1852 /*! Shrinks and enlarges the 2D plot to fit the 2D viewer.
1857 //-------------------------------------------------------
1858 /*! \brief Interface of the %ViewManager
1860 * The ViewManager is necessary for work with view windows (creation and deletion).
1862 interface ViewManager: Base {
1863 /*! \brief Getting an active %View Frame
1865 * Returns an object reference to the active %View Frame.
1866 * Type of the %View must be checked.
1867 * \note <BR>Returns nil if there are no views currently opened.
1869 View GetCurrentView();
1871 /*! \brief Creation of a 3d %View.
1873 * Returns an object reference to the newly created 3D %View.
1875 View3D Create3DView();
1877 /*! \brief Creation of a Table %View.
1879 * Returns an object reference to the newly created Table %View.
1881 TableView CreateTableView(in Table theTable);
1883 /*! \brief Creation of a 2D plot %View.
1885 * Returns an object reference to the newly created 2D plot %View.
1887 XYPlot CreateXYPlot();
1889 /*! Deletes a definite view.
1890 * \param theView The view which should be deleted.
1892 void Destroy(in View theView);