1 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License.
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 // File : VISU_Gen.idl
21 // Author : Alexey Petrov
23 /*! \file VISU_Gen.idl This file conatins a set of interfaces of the %VISU module.
24 * This module provides various forms of data visualization in %SALOME application.
25 * These forms include data tables, XY plots, 3d representations
26 * and combination of these forms.
32 #include "SALOME_Exception.idl"
33 #include "SALOME_GenericObj.idl"
34 #include "SALOME_Component.idl"
35 #include "SALOMEDS.idl"
36 #include "SALOMEDS_Attributes.idl"
40 The main package of interfaces of the post-processing module %VISU.
43 //-------------------------------------------------------
44 typedef string IdType;
46 typedef sequence<string> string_array;
49 * This enumeration contains a set of elements defining the type
50 * of the scaling, which can be applied on different presentations.
52 enum Scaling{ LINEAR, /*!< Linear type of scaling. */
53 LOGARITHMIC /*!< Logarithmic type of scaling. */
57 * This enumeration contains a set of elements defining the
58 * type of the %entity (topological units) constituting a mesh.
61 NODE, /*!< Node corresponds to a geometrical point. */
62 EDGE, /*!< Edge corresponds to a geometrical line connecting two points. */
63 FACE, /*!< Face corresponds to a geometrical plane bounded by several lines. */
64 CELL, /*!< Cell is a volumic element of a mesh */
65 NONE /*!< Indicates undefined entity value */
69 * This enumeration contains a set of elements defining the type of the %VISU object.
70 * This enumeration is used for navigation between a set of %VISU interfaces.
73 TNONE, /*!< Not a %VISU object */
74 TCURVE, /*!< Curve line object for construction of 2D XY plots */
75 TTABLE, /*!< Table containing numerical data */
76 TCONTAINER, /*!< Container object used for storing a set of curve lines */
77 TMESH, /*!< Meshing object */
78 TSCALARMAP, /*!< Scalarmap 3D presentation object */
79 TISOSURFACES, /*!< Iso surface 3D presentation object */
80 TDEFORMEDSHAPE, /*!< Deformed shape 3D presentation object */
81 TSCALARMAPONDEFORMEDSHAPE, /*!< Scalar map on deformed shape 3D presentation object */
82 TGAUSSPOINTS, /*!< Gauss Points 3D presentation object */
83 TPLOT3D, /*!< Plot3D 3D presentation object */
84 TCUTPLANES, /*!< Cut planes 3D presentation object */
85 TCUTLINES, /*!< Cut lines 3D presentation object */
86 TVECTORS, /*!< Vectors 3D presentation object */
87 TSTREAMLINES, /*!< Streamlines 3D presentation object */
88 TVISUGEN, /*!< %VISU generator used for performing operations with different %VISU objects */
89 TVIEWMANAGER, /*!< View manager used for performing operations with different views */
90 TRESULT, /*!< The data on which different presentations are based */
91 TXYPLOT, /*!< 2D XY plot consisting of one or several curve lines */
92 TTABLEVIEW, /*!< Table view is used for displaying data tables */
93 TVIEW3D, /*!< 3D view is used for displaying 3D graphical presentations */
94 TGAUSSVIEW, /*!< 3D view is used for displaying Gauss Points graphical presentations */
95 TENTITY, /*!< An element composing a mesh: node, edge, face or cell */
96 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. */
97 TGROUP, /*!< A group of families */
98 TFIELD, /*!< Field represents the results of calculations (it can be scalar or vector values), grouped together under one physical concept. */
99 TTIMESTAMP, /*!<Time stamp represents a subfield: the results of calculations are taken in one definite moment. */
100 TANIMATION, /*!< Represents Animation object. */
101 TCOLOREDPRS3DHOLDER, /*!< Colored 3D presentation holder */
102 TCOLOREDPRS3DCACHE, /*!< Colored 3D presentation cache */
103 TPART, /*!< MULTIPR: part of a mesh */
109 * Returns ID of the object.
114 * Returns the type of the presentable object
120 * \brief Removable object interface
122 * Removable object interface is the root class of all removable objects.
124 interface RemovableObject : Base {
126 * Remove object from study.
128 void RemoveFromStudy();
131 /*! \brief Presentable object interface
133 * Presentable object interface is the root class of all presentable objects.
135 interface PrsObject : RemovableObject {
138 //-------------------------------------------------------
139 /*! \brief %Table representation interface
141 * Presentation parameters of the %Table view.
143 interface Table : PrsObject {
145 * Sets the title of the table.
146 * \param theTitle String parameter defining the title of this table.
148 void SetTitle(in string theTitle);
151 * Gets the title of the table.
152 * \return A string value containing the title of the table.
157 * This enumeration contains a set of elements defining the orientation of the table.
160 HORIZONTAL, /*!< Horizontal orientation of the table. */
161 VERTIACAL /*!< Vertical orientation of the table. */
165 * Sets orientation of the table.
166 * \param theOrientation This input parameter defines the orientation of the table.
167 * It is taken from the <VAR>Orientation</VAR> enumeration.
169 void SetOrientation(in Orientation theOrientation);
172 * Gets orientation of the table.
173 * \return Orientation of the table. The returned value will correspond
174 * to one of the elements the <VAR>Orientation</VAR> enumeration.
176 Orientation GetOrientation();
179 * Gets the number of rows of the table.
180 * \return Long value corresponding to the number of rows of the table
185 * Gets the number of columns of the table.
186 * \return Long value corresponding to the number of columns of the table
191 //-------------------------------------------------------
192 /*! \brief Interface of curve representation.
194 * Manages presentation parameters of one curve.
195 * It can be used for presentation of a set of curves using a combined presentation.
197 interface Curve : PrsObject {
199 * Sets the title of the curve.
200 * \param theTitle This string parameter defines the title of this curve.
202 void SetTitle(in string theTitle);
205 * Gets the title of the curve.
206 * \return String value corresponding to the title of the curve.
211 * Sets the color of the curve.
212 * \param theColor The color of the curve. This parameter is taken
213 * from the <VAR>Orientation</VAR> enumeration.
215 void SetColor(in SALOMEDS::Color theColor);
218 * Gets the color of the curve.
219 * \return Color of the curve. The returned value will correspond
220 * to one of the elements the <VAR>Color</VAR> enumeration.
222 SALOMEDS::Color GetColor();
225 * This enumeration contains a set of elements defining the
226 * presentation type of markers (data points) with help of
227 * which the curve is constructed on the graphics.
229 enum MarkerType { NONE,
242 * Sets the presentation type of markers (data points) with help of
243 * which the curve is constructed on the graphics.
244 * \param theType This parameter defines the type of marker with help
245 * of which the curve is constructed on the graphics.
246 * It is taken from <VAR>MarkerType</VAR> enumeration.
248 void SetMarker(in MarkerType theType);
251 * Gets the presentation type of markers (data points) with
252 * help of which the curve is constructed on the graphics.
253 * \return The type of marker with help of which the curve is constructed
254 * on the graphics. The returned value will correspond to
255 * one of the elements the <VAR>MarkerType</VAR> enumeration.
257 MarkerType GetMarker();
260 * This enumeration contains a set of elements defining the
261 * type of presentation of a curve line on the graphics.
263 enum LineType{ VOIDLINE, SOLIDLINE, DASHLINE, DOTLINE, DASHDOTLINE, DASHDOTDOTLINE};
266 * Sets the type of presentation of curve lines on the graphics.
267 * \param theType This parameter defines the type of presentation of curve lines on the graphics.
268 * \param theLineWidth Long value defining the width of the curve line.
270 void SetLine(in LineType theType, in long theLineWidth);
273 * Gets the type of representation of curve lines on the graphics.
274 * \return The type of representation of curve lines on the graphics.
279 * Gets the width of the curve line.
280 * \return Long value corresponding to the width of the curve line.
285 //-------------------------------------------------------
286 /*! \brief %Container presentable object interface
288 * This class is provided in order to create one presentation using several presentable objects.
289 * This can provide a combination of a set of curves to display them in XY plot view.
291 interface Container : PrsObject {
293 * Adds a curve into the container.
294 * \param theCurve The added curve.
296 void AddCurve(in Curve theCurve);
299 * Removes a curve from the container.
300 * \param theCurve The removed curve.
302 void RemoveCurve(in Curve theCurve);
305 * Gets the number of curves which are stored in the container.
306 * \return A long value corresponding to the number of curves which are stored in the container.
311 * Removes all curves from the container.
316 //-------------------------------------------------------
318 /*! \brief 3D presentation interface
320 * This is a root class for all 3D presentations, which can be displayed in %VISU module.
322 interface Prs3d : PrsObject, SALOME::GenericObj
325 * Move the 3D presentation according to the given offset parameters
327 void SetOffset(in float theDx, in float theDy, in float theDz);
330 * Gets offset parameters for the 3D presentation
332 void GetOffset(out float theDx, out float theDy, out float theDz);
335 * Gets memory size actually used by the presentation (Mb).
337 float GetMemorySize();
341 * This enumeration contains a set of elements defining the
342 * type of presentation of the mesh.
344 enum PresentationType{ POINT,
352 /*! \brief Interface of the mesh.
354 * Manages presentation parameters of a 3D presentation of a mesh.
355 * This object can be used for presentation of set of curves using Container class.
357 interface Mesh : Prs3d {
359 * Sets the color of mesh cells.
360 * \param theColor The color of the cells. This parameter is taken from <VAR>Color</VAR> enumeration.
362 void SetCellColor(in SALOMEDS::Color theColor);
365 * Gets the color of mesh cells.
367 SALOMEDS::Color GetCellColor();
370 * Sets the color of mesh nodes.
371 * \param theColor The color of the nodes. This parameter is taken from <VAR>Color</VAR> enumeration.
373 void SetNodeColor(in SALOMEDS::Color theColor);
376 * Gets the color of mesh nodes.
378 SALOMEDS::Color GetNodeColor();
381 * Sets the color of mesh links.
382 * \param theColor The color of the links. This parameter is taken from <VAR>Color</VAR> enumeration.
384 void SetLinkColor(in SALOMEDS::Color theColor);
387 * Gets the color of mesh links.
389 SALOMEDS::Color GetLinkColor();
392 * Sets the type of representation of a mesh.
393 * \param theType The of representation of a mesh. This parameter is
394 * taken from <VAR>PresentationType</VAR> enumeration.
396 void SetPresentationType(in PresentationType theType);
399 * Gets the type of representation of the mesh.
400 * \return The type of representation of the mesh.
402 PresentationType GetPresentationType();
406 //-------------------------------------------------------
407 /*! \brief Basic Interface for the %Colored 3D Presentations
409 * This interface is responsable for coloring of 3D field presentations
410 * according the scalar values applied to different cells.
411 * As well it contains presentation parameters of the scalar bar. The scalar
412 * bar is displayed along with each colored field presentation and serves for
413 * consulting the correspondance between colors and data values.
415 interface ColoredPrs3d : Prs3d
417 /*! Sets the method of coloring of the elements composing a 3D presentation.
419 void SetScalarMode(in long theScalarMode);
421 /*! Gets the method of coloring of the elements composing a 3D presentation.
423 long GetScalarMode();
426 * Sets scalar range - min and max boundaries of the scalar bar.
427 * \param theMin Min boundary of the scalar bar.
428 * \param theMax Max boundary of the scalar bar.
430 void SetRange(in double theMin, in double theMax);
433 * Gets the min boundary of the scalar bar.
438 * Gets the max boundary of the scalar bar.
443 * Sets scalar range that corresponds to the source data.
445 void SetSourceRange();
448 * Gets the min boundary of the scalar bar from source data.
450 double GetSourceMin();
453 * Gets the max boundary of the scalar bar from source data.
455 double GetSourceMax();
458 * Defines whether the scalar range corresponds to the source data or not.
460 boolean IsRangeFixed();
462 /*! \brief Position of the scalar bar.
464 * Sets the position of the scalar bar origin on the screen.
465 * \param X Horizontal position. The value can be between 0 and 1.
466 * \param Y Vertical position. The value can be between 0 and 1.
468 void SetPosition(in double X, in double Y);
471 * Gets horizontal position of the scalar bar origin.
476 * Gets vertical position of the scalar bar origin.
480 /*! \brief Size of this presentable object.
482 * Sets the size of the scalar bar.
483 * \param theWidth Width of this presentable object. The value can be between 0 and 1.
484 * \param theHeight Height of this presentable object. The value can be between 0 and 1.
486 void SetSize(in double theWidth, in double theHeight);
489 * Gets the width of this presentable object.
490 * \return A double value corresponding to the width of this presentable object.
495 * Gets the height of this presentable object.
496 * \return A double value corresponding to the height of this presentable object.
501 * Sets the number of colors which will be used for presentation of this presentable object.
502 * \param theNbColors A long value defining the number of colors.
504 void SetNbColors(in long theNbColors);
507 * Gets the number of colors which will be used for visualization of this presentable object.
508 * \return A long value corresponding to the number of colors which
509 * will be used for visualization of this presentable object.
514 * Sets the number of labels which will be used for indication of color gradation
516 * \param theNbLabels A long value defining the number of labels.
518 void SetLabels(in long theNbLabels);
521 * Gets the number of labels which will be used for indication of color gradation of the scalar bar.
522 * \return A long value corresponding to the number of labels which will
523 * be used for indication of color gradation of the scalar bar.
528 * Sets the title of the scalar bar. By default - the name of the selected result is used.
529 * \param theName String parameter defining the name of the scalar bar.
531 void SetTitle(in string theName);
534 * Gets the title of the scalar bar.
538 /*! %Orientation of the scalar bar (to provide backward compatibility). */
540 HORIZONTAL, /*!< Horizontal orientation of the scalar bar.*/
541 VERTICAL /*!< Vertical orientation of the scalar bar.*/
545 * Sets the type of orientation of the scalar bar (to provide backward compatibility).
546 * \param theOrientation This parameter defines the orientation of the scalar bar.
547 * It is taken from the <VAR>Orientaton</VAR> enumeration.
549 void SetBarOrientation(in Orientation theOrientation);
552 * Gets the type of orientation of the scalar bar (to provide backward compatibility).
554 Orientation GetBarOrientation();
557 * Add group as geometry of presentation.
558 * \param theMeshName - mesh name
559 * \param theGroupName - group name
561 void AddMeshOnGroup(in string theGroupName);
566 * Remove all groups.(The scalar map will be placed on all mesh).
568 void RemoveAllGeom();
572 //-------------------------------------------------------
574 interface ColoredPrs3dCache;
577 //-------------------------------------------------------
578 /*! \brief %ColoredPrs3dHolder interface.
579 * Interface of 3d presentation's holder, which represents colored 3d presentations,
580 * created on fields. It is publishing in the object browser in a separate folder
581 * and can be controled by viewer's slider.
583 interface ColoredPrs3dHolder : PrsObject, SALOME::GenericObj
586 * Presentation input parameters.
594 long myTimeStampNumber;
598 * Apply input parameters to last visited presentation in the cache.
600 boolean Apply(in ColoredPrs3d thePrs3d,
601 in BasicInput theInput,
602 in View3D theView3D);
605 * Gets the last visited presentation in the cache.
607 ColoredPrs3d GetDevice();
610 * Gets type of the managed presentations.
612 VISUType GetPrsType();
614 /*! Defines timestamp representation.
622 /*! Defines representation range of timestamps.
624 typedef sequence<TimeStampInfo> TimeStampsRange;
627 * Gets TimeStampsRange information from the last visited presentation.
629 TimeStampsRange GetTimeStampsRange();
632 * Gets input parameters of the last visited presentation.
634 BasicInput GetBasicInput();
637 * Gets a %ColoredPrs3dCache, to which the holder belongs
639 ColoredPrs3dCache GetCache();
642 * Gets memory size actually used by the holder (Mb).
644 float GetMemorySize();
648 //-------------------------------------------------------
649 /*! \brief %ColoredPrs3dCache interface.
650 * This interface is responsible for memory management of 3d presentations.
651 * One cache corresponds to one study.
653 interface ColoredPrs3dCache : RemovableObject, SALOME::GenericObj
655 /*! This enumeration contains the cache memory modes. */
657 MINIMAL, /*!< Minimal memory mode (default behaviour). */
658 LIMITED /*!< Limited memory mode (fixed memory size for presentations). */
661 /*! This enumeration defines how to enlarge the cache limited memory. */
663 NO_ENLARGE, /*!< No need to enlarge (default behaviour). */
664 ENLARGE, /*!< Enlarge limited memory. */
665 IMPOSSIBLE /*!< Impossible to enlarge (not enough free memory). */
668 /*! Sets a memory mode.*/
669 void SetMemoryMode(in MemoryMode theMode);
671 /*! Gets a memory mode.*/
672 MemoryMode GetMemoryMode();
674 /*! Sets a memory size for limited mode (Mb). */
675 void SetLimitedMemory(in float theMemorySize);
677 /*! Gets a memory size for limited mode (Mb). */
678 float GetLimitedMemory();
681 * Gets memory size actually used by the cache system (Mb).
683 float GetMemorySize();
685 /*! Creates %ColoredPrs3dHolder.*/
686 ColoredPrs3dHolder CreateHolder(in VISUType theType,
687 in ColoredPrs3dHolder::BasicInput theInput);
689 /*! Gets a memory which is required to create a holder. */
690 EnlargeType GetRequiredMemory(in VISUType theType,
691 in ColoredPrs3dHolder::BasicInput theInput,
692 out float theRequiredMemory);
696 //-------------------------------------------------------
697 /*! \brief Interface of the %Scalar Map
699 * This interface is responsable for coloring of 3D field presentations
700 * according the scalar values applied to different cells.
701 * As well it contains presentation parameters of the scalar bar. The scalar
702 * bar is displayed along with each colored field presentation and serves for
703 * consulting the correspondance between colors and data values.
705 interface ScalarMap : ColoredPrs3d {
707 * Sets the type of scaling of the values reflected by the scalar bar.
708 * \param theScaling The value of this parameter is taken from the <VAR>Scaling</VAR> enumeration.
710 void SetScaling(in Scaling theScaling);
713 * Gets the type of scaling of the values reflected by this presentation.
715 Scaling GetScaling();
719 //-------------------------------------------------------
720 /*! \brief Gauss Points presentation interface
722 * Presentation parameters of the Gauss Points presentation.
724 //-------------------------------------------------------
725 interface GaussPoints : ColoredPrs3d
727 //! Set flag indicating which scalar bar is active.
728 void SetIsActiveLocalScalarBar(in boolean theFlag);
730 //! Get flag indicating which scalar bar is active.
731 boolean GetIsActiveLocalScalarBar();
733 //! Set flag indicating visibility of global scalar bar.
734 void SetIsDispGlobalScalarBar(in boolean theFlag);
736 //! Get flag indicating visibility of global scalar bar.
737 boolean GetIsDispGlobalScalarBar();
739 //! Set value of the distance between global and local scalar bars.
740 void SetSpacing(in double theSpacing);
742 //! Get value of the distance between global and local scalar bars.
746 * Set the Multicolored mode.
747 * \param theIsColored is used to switch between Results and Geometry modes.
748 * Multiple colors are using when the presentation is
749 * drawing in the Results mode, one color - in the Geometry mode.
751 void SetIsColored(in boolean theIsColored);
753 //! Gets current color mode
754 boolean GetIsColored();
756 /*! Sets the color of this presentation in case of IsColored switched off.
757 * \param theColor The color of this presentation. This parameter
758 * is taken from the <VAR>Color</VAR> enumeration.
760 void SetColor(in SALOMEDS::Color theColor);
763 * When the Bicolor parameter is set to true, scalar bars are
764 * drawing with two colors : red color correspoonds to positive
765 * scalar values, blue color - to negative values.
767 void SetBiColor(in boolean theIsBiColor);
769 //! Get the Bicolor mode.
770 boolean GetBiColor();
772 //! Checks whether the Gauss Points will be deformed or not
773 boolean GetIsDeformed();
775 //! Apply deformation on the Gauss Points
776 void SetIsDeformed(in boolean theIsDeformed);
779 * Sets the scale factor for scalar values
780 * (how much corresponding mesh elements should be translated).
781 * \param theScaleFactor The scaling factor.
783 void SetScaleFactor(in double theScaleFactor);
786 * Gets the scale factor for scalar values.
787 * (how much corresponding mesh elements is translated)
789 double GetScaleFactor();
792 * This enumeration contains a set of elements defining the type of representation of the vector head.
800 //! Set type of the primitives which is used for drawing the Gauss Points
801 void SetPrimitiveType(in PrimitiveType thePrimitiveType);
803 //! Get type of the primitives which is used for drawing the Gauss Points
804 PrimitiveType GetPrimitiveType();
806 //! Sets Point Sprite clamp
807 void SetClamp(in double theClamp);
809 //! Gets Point Sprite clamp
812 //! Sets minimum size of Point Sprites
813 void SetMinSize(in double theMinSize);
815 //! Gets minimum size of Point Sprites
818 //! Sets maximum size of Point Sprites
819 void SetMaxSize(in double theMaxSize);
821 //! Gets maximum size of Point Sprites
824 //! Sets magnification for Point Sprites
825 void SetMagnification(in double theMagnification);
827 //! Gets magnification for Point Sprites
828 double GetMagnification();
830 //! Sets the increment of changing Magnification parameter
831 void SetMagnificationIncrement(in double theIncrement);
833 //! Gets the increment of changing Magnification parameter
834 double GetMagnificationIncrement();
836 //! Sets Point Sprites size
837 void SetGeomSize(in double theGeomSize);
839 //! Sets size of Point Sprite
840 double GetGeomSize();
842 //! Get path to the image using for Main Point Sprite texture
843 string GetMainTexture();
845 //! Get path to the image using for Alpha Point Sprite texture
846 string GetAlphaTexture();
848 //! Points Main and AlphaMask images to be used by Point Sprites
849 void SetTextures(in string theMainTexture, in string theAlphaTexture);
851 //! Sets Point Sprite Alpha threshold
852 void SetAlphaThreshold(in double theAlphaThreshold);
854 //! Gets Point Sprite Alpha threshold
855 double GetAlphaThreshold();
857 //! Sets resolution of the Geometrical Sphere
858 void SetResolution(in long theResolution);
860 //! Sets resolution of the Geometrical Sphere
861 long GetResolution();
863 //! Sets how many faces of can be drawn in the Geometrical Sphere primitive mode
864 void SetFaceLimit(in long theFaceLimit);
866 //! Defines how many faces of can be drawn in the Geometrical Sphere primitive mode
870 /*! \brief Deformed shape presentation interface
872 * Presentation parameters of the deformed shape presentation.
874 interface DeformedShape : ScalarMap
877 * Sets the scale of the presentatable object.
878 * \param theScale Double value defining the scale of this presentable object.
880 void SetScale(in double theScale);
883 * Gets the scale of the presentatable object.
887 /*! This boolean method returns True if this deformed shape presentation is colored.
891 /*! Shows this presentation in colored mode.
892 * \param theColored If this boolean parameter is True this presentable
893 * object will be shown in colored mode.
895 void ShowColored(in boolean theColored);
897 /*! Gets the color of this presentable object.
898 * \return The color of this presentable object.
900 SALOMEDS::Color GetColor();
902 /*! Sets the color of this presentation.
903 * \param theColor The color of this presentation. This parameter
904 * is taken from the <VAR>Color</VAR> enumeration.
906 void SetColor(in SALOMEDS::Color theColor);
910 //-------------------------------------------------------
911 /*! \brief Scalar Map on Deformed shape presentation interface
913 * Presentation parameters of the scalar map on deformed shape presentation.
915 interface ScalarMapOnDeformedShape : ScalarMap {
918 * Sets the scale of the presentatable object.
919 * \param theScale Double value defining the scale of this presentable object.
921 void SetScale(in double theScale);
924 * Gets the scale of the presentatable object.
929 * Sets the scalar field
930 * \param theEntity - entity of scalar field
931 * \param theFieldName - the name of scalar field
932 * \param theTimeStampNumber - the timestamp number for the scalar field
934 void SetScalarField(in Entity theEntity,
935 in string theFieldName,
936 in long theTimeStampNumber);
942 Entity GetScalarEntity();
945 * Get scalar field name
947 string GetScalarFieldName();
950 * Get timestamp number for the scalar field
952 long GetScalarTimeStampNumber();
956 //-------------------------------------------------------
958 * \brief Plot3D interface
960 * Presentation parameters of Plot3D presentation. This type of presentation
961 * consists of deforming initial planar mesh according to values assigned to the mesh elements.
962 * If mesh not planar but volumic one, it is possible to generate intermediate planar mesh.
964 interface Plot3D : ScalarMap {
966 * This enumeration contains a set of elements defining
967 * the type of orientation in 3D space of the cutting plane.
969 enum Orientation { XY, /*!< The object is located in the plane formed by X and Y axis. */
970 YZ, /*!< The object is located in the plane formed by Y and Z axis. */
971 ZX }; /*!< The object is located in the plane formed by Z and X axis. */
974 * Sets the orientation in 3D space of cutting plane for the presentation.
975 * \param theOrientation This parameter defines the type of orientation of cutting plane
976 * in 3D space. It is taken from the <VAR>Orientation</VAR> enumeration.
977 * \param theXAngle The angle of rotation of the cutting plane
978 * around the first axis of the chosen orientation.
979 * \param theXAngle The angle of rotation of the cutting plane
980 * around the second axis of the chosen orientation.
982 void SetOrientation (in Orientation theOrientation, in double theXAngle, in double theYAngle);
985 * Gets the type of orientation in 3D space of cutting plane.
987 Orientation GetOrientationType();
990 * Gets rotation angle of the cutting plane
991 * around the first axis of the chosen orientation.
996 * Gets rotation angle of the cutting plane
997 * around the second axis of the chosen orientation.
1002 * Sets the position of a cutting plane.
1003 * \param thePlanePosition The position of the cutting plane.
1004 * \param theIsRelative Define, whether the input position is relative.
1006 void SetPlanePosition (in double thePlanePosition,
1007 in boolean theIsRelative);
1010 * Gets the position of the cutting plane
1012 double GetPlanePosition();
1015 * Returns true if a position of cutting plane is relative
1017 boolean IsPositionRelative();
1020 * Sets the scale factor for scalar values
1021 * (how much corresponding mesh elements should be translated).
1022 * \param theScaleFactor The scaling factor.
1024 void SetScaleFactor (in double theScaleFactor);
1027 * Gets the scale factor for scalar values.
1028 * (how much corresponding mesh elements is translated)
1030 double GetScaleFactor();
1033 * Sets presentation type: contour or surface.
1034 * \param theIsContourPrs Define, whether presentation type is contour.
1036 void SetContourPrs (in boolean theIsContourPrs );
1039 * Returns true if presentation type is contour.
1041 boolean GetIsContourPrs();
1044 * Sets the number of contours.
1045 * \param theNb The number of contours.
1047 void SetNbOfContours (in long theNb);
1050 * Gets the number of contours.
1052 long GetNbOfContours();
1055 //-------------------------------------------------------
1056 /*! \brief Cut planes interface
1058 * Presentation parameters of Cut planes presentation. This type of presentation
1059 * consists of cutting your initial mesh by a definite number of planes. As the
1060 * result you will see these planes which will be cutted by the borders of the mesh.
1062 interface CutPlanes : ScalarMap {
1064 * This enumeration contains a set of elements defining the type of orientation in 3D space
1065 * of the cut planes.
1067 enum Orientation {XY, /*!< The object is located in the plane formed by X and Y axis. */
1068 YZ, /*!< The object is located in the plane formed by Y and Z axis. */
1069 ZX}; /*!< The object is located in the plane formed by Z and X axis. */
1072 * Sets the type of orientation in 3D space of cut planes presentation.
1073 * \param theOrientation This parameter defines the type of orientation of cut planes
1074 * in 3D space. It is taken from the <VAR>Orientation</VAR> enumeration.
1075 * \param theXAngle The angle of rotation of the cut planes around
1076 * the first axis of the chosen orientation.
1077 * \param theXAngle The angle of rotation of the cut planes around
1078 * the second axis of the chosen orientation.
1080 void SetOrientation(in Orientation theOrientation, in double theXAngle, in double theYAngle);
1083 * Gets the type of orientation in 3D space of cut planes presentation.
1085 Orientation GetOrientationType();
1088 * Gets rotation angle of the cut plane presentation around the first axis of the chosen orientation.
1090 double GetRotateX();
1093 * Gets rotation angle of the cut plane presentation around the second axis of the chosen orientation.
1095 double GetRotateY();
1098 * Sets the displacement of the cut planes in 3D space.
1100 * \param theDisp This parameter defines position of the cut planes
1101 * in 3D space. It varies from 0 to 1. If the chosen value is 0.5, the cut planes
1102 * will be evenly located regarding each other; in other words, the distance between all
1103 * of them will be equal. If the value is higher or lower than 0.5, the planes will be displaced
1104 * to one or another side.
1106 void SetDisplacement(in double theDisp);
1109 * Gets the displacement of the cut planes in 3D space.
1111 double GetDisplacement();
1114 * Sets the position of a definite cut plane.
1115 * \param thePlaneNumber The number of this cut plane.
1116 * \param thePlanePosition The position of this cut plane.
1118 void SetPlanePosition(in long thePlaneNumber, in double thePlanePosition);
1121 * Sets the position of the choosen plane to default value.
1122 * \param thePlaneNumber The number of this cut plane.
1124 void SetDefault(in long thePlaneNumber);
1127 * Gets the position of the choosen plane
1129 double GetPlanePosition(in long thePlaneNumber);
1132 * Determines whether the choosen plane has default position.
1133 * \param thePlaneNumber The number of this cut plane.
1135 boolean IsDefault(in long thePlaneNumber);
1138 * Sets the number of cut planes.
1139 * \param theNb The number of cut planes.
1141 void SetNbPlanes(in long theNb);
1144 * Gets the number of cut planes.
1149 //-------------------------------------------------------
1150 /*! \brief Cut lines presentation.
1152 * Presentation parameters of a Cut lines presentation.
1153 * Cut Lines is a type of presentation which displays colored cells
1154 * with applied scalar values on the mesh where lines are placed.
1155 * The procedure of construction of a Cut Lines presentation reuses the algorithm
1156 * of creation of Cut Planes presentation and consists of two steps:
1158 * 1. From Cut Planes presentation one plane is taken and
1159 * it is used as base plane for construction of cut lines.
1160 * 2. This plane is cut by a regular array of planes. The result of this
1161 * operation is a regular array of lines in space, belonging to the same plane
1162 * and having the same orientation. They are located inside or on the mesh.
1164 interface CutLines : ScalarMap {
1166 * Sets the type of orientation in 3D space of the base plane of a cut lines presentation.
1167 * \param theOrientation The orientation of the base plane in 3D space.
1168 * \param theXAngle The angle of rotation of the base plane around
1169 * the first axis of the chosen orientation.
1170 * \param theXAngle The angle of rotation of the base plane around
1171 * the second axis of the chosen orientation.
1173 void SetOrientation(in CutPlanes::Orientation theOrientation, in double theXAngle, in double theYAngle);
1176 * Sets the type of orientation in 3D space of the cutting planes of a cut lines presentation.
1177 * \param theOrientation This parameter defines the type of orientation of the cutting planes
1178 * in 3D space. It is taken from the <VAR>Orientation</VAR> enumeration.
1179 * \param theXAngle The angle of rotation of the cutting planes
1180 * around the first axis of the chosen orientation.
1181 * \param theXAngle The angle of rotation of the cutting planes
1182 * around the second axis of the chosen orientation.
1184 void SetOrientation2(in CutPlanes::Orientation theOrientation, in double theXAngle, in double theYAngle);
1187 * Gets the type of orientation in 3D space of the base plane of a cut lines presentation.
1189 CutPlanes::Orientation GetOrientationType();
1192 * Gets the type of orientation in 3D space of the cutting planes of a cut lines presentation.
1194 CutPlanes::Orientation GetOrientationType2();
1197 * Gets rotation angle of the base plane around the first axis of the chosen orientation.
1199 double GetRotateX();
1202 * Gets rotation angle of the cutting planes around the first axis of the chosen orientation.
1204 double GetRotateX2();
1207 * Gets rotation angle of the base plane around the second axis of the chosen orientation.
1209 double GetRotateY();
1212 * Gets rotation angle of the cutting planes around the second axis of the chosen orientation.
1214 double GetRotateY2();
1217 * Sets the displacement of the base plane of the cut lines presentation in 3D space.
1219 * \param theDisp This parameter defines position of the base plane
1220 * in 3D space. It varies from 0 to 1.
1222 void SetDisplacement(in double theDisp);
1225 * Sets the displacement of the cutting planes of the cut lines presentation in 3D space.
1227 * \param theDisp This parameter defines position of the cutting planes
1228 * in 3D space. It varies from 0 to 1.
1230 void SetDisplacement2(in double theDisp);
1233 * Gets the displacement of the base plane of the cut lines presentation in 3D space.
1235 double GetDisplacement();
1238 * Gets the displacement of the cutting planes of the cut lines presentation in 3D space.
1240 double GetDisplacement2();
1242 /*! Sets the position of the base plane in 3D space.
1243 * \param thePlanePosition A double value defining the position of the base plane in 3D space.
1245 void SetBasePlanePosition(in double thePlanePosition);
1247 /*! Gets the position of the base plane in 3D space.
1249 double GetBasePlanePosition();
1251 /*! Sets the position of one of cutting planes in 3D space.
1252 * \param thePlaneNumber A long value defining the order number of this cutting plane.
1253 * \param thePlanePosition A double value defining the position of the base plane in 3D space.
1255 void SetLinePosition(in long thePlaneNumber, in double thePlanePosition);
1257 /*! Gets the position of one of cutting planes in 3D space.
1258 * \param thePlaneNumber A long value defining the order number of this cutting plane.
1260 double GetLinePosition(in long thePlaneNumber);
1262 /*! Sets the position of the base plane to default value.
1267 * Determines whether the base plane has default position.
1268 * \return True if the base plane has default position.
1270 boolean IsDefault();
1273 * Sets the position of the choosen cutting plane to default value.
1274 * \param thePlaneNumber The number of this cutting plane.
1276 void SetDefaultPosition(in long thePlaneNumber);
1279 * Determines whether the choosen cutting plane has default position.
1280 * \param thePlaneNumber The number of this cutting plane.
1281 * \return True if this cutting plane has default position.
1283 boolean IsDefaultPosition(in long thePlaneNumber);
1286 * Sets the number of cut lines.
1287 * \param theNb The number of cut lines.
1289 void SetNbLines(in long theNb);
1292 * Gets the number of cut lines.
1296 /*! Invert all curves of corresponding table
1297 * \param theInvert - Invert all curves, if value is TRUE, else not.
1299 void SetAllCurvesInverted(in boolean theInvert);
1301 /*! Checks the orientation of all curves
1302 * \retval TRUE - if all curves are inverted, else FALSE
1304 boolean IsAllCurvesInverted();
1306 /*! Sets values which cutlines would be shown: aboslute or relative values
1307 * \param theAbsLength - boolean value, TRUE or false.
1309 void SetUseAbsoluteLength(in boolean theAbsLength);
1311 /*! Checks values of cutlines: using aboslute or relative values
1313 boolean IsUseAbsoluteLength();
1316 /*! \brief Interface of the stream lines representation
1318 * This interface contains presentation parameters of stream lines presentations.
1319 * <BR>Stream lines is a type of presentation transforming into lines the
1320 * cells with vectors having most similar direction. A stream line can be thought
1321 * of as the path that a massless particle takes in a vector field.
1322 * Streamlines are used to convey the structure of a vector field.
1323 * Usually streamlines are created to explore the most interesting features in the field.
1325 interface StreamLines : DeformedShape {
1326 /*! This enumerations contains a set of elements necessary
1327 * for definition of direction of the stream lines.
1329 enum Direction{ FORWARD,
1334 /*! Sets the parameters of the stream lines presentation.
1335 * \param theIntStep Inegration step is a parameter of smoothness of the stream lines.
1336 * This parameter defines the accuracy of construction of the streamlines.
1337 * A smaller value of this parameter allows to construct smoother
1338 * streamlines (at the cost of more computation time).
1339 * \param thePropogationTime This parameter controls the maximum length of
1340 * the stream line (measured in units of time).
1341 * \param theStepLength This parameter defines the size of the output line segments
1342 * that make up the streamline (which is represented as a polyline).
1343 * \param thePrs3d The source presentation. The points of the field located on this source
1344 * presentation will serve as starting points for generation of stream lines.
1345 * \note If this parameter is not defined, your stream lines
1346 * presentation will be generated on all points of the field.
1347 * \param thePercents This parameter defines the quantity of points of the field
1348 * (from 0 to 100%) which will be used as starting points for
1349 * construction of the stream lines. Thus, the value of this
1350 * parameter can vary from 0 to 1.
1351 * \param theDirection Direction of the stream lines (Forward, Backward or Both).
1352 * \return True if all parameters are properly set.
1354 boolean SetParams(in double theIntStep,
1355 in double thePropogationTime,
1356 in double theStepLength,
1358 in double thePercents,
1359 in Direction theDirection);
1361 /*! Gets the value of integration step of the stream lines presentation.
1363 double GetIntegrationStep();
1365 /*! Gets the value of propagation time of the stream lines presentation.
1367 double GetPropagationTime();
1369 /*! Gets the value of step length of the stream lines presentation.
1371 double GetStepLength();
1373 /*! Returns the source presentation used for generation of the stream lines.
1377 /*! Gets the quantity of points of the field used as starting
1378 * points for generation of the stream lines presentation.
1380 double GetUsedPoints();
1382 /*! Returns the direction of the stream lines.
1384 Direction GetDirection();
1387 /*! \brief Interface of the isometric surface presentation
1389 * This interface contains presentation parameters of
1390 * isometric surface presentations.
1391 * <BR>Iso surfaces presentation combines all equal scalar
1392 * values on the cells and on the basis of them constructs
1393 * isobaric surfaces, which form this presentation.
1395 interface IsoSurfaces : ScalarMap {
1397 * Sets the number of isometric surfaces.
1398 * \param theNb A long value defining the number of isometric surfaces
1399 * which will be used for construction of this presentation.
1401 void SetNbSurfaces(in long theNb);
1404 * Gets the number of isometric surfaces
1406 long GetNbSurfaces();
1409 //-------------------------------------------------------
1410 /*! \brief Interface of the vector presentation.
1412 * This interface contains presentation parameters of vector presentations.
1414 interface Vectors : DeformedShape {
1416 * Sets the width of the lines of the vectors.
1417 * \param theWidth A double value defining the width of the lines of the vectors.
1419 void SetLineWidth(in double theWidth);
1422 * Gets the width of the lines of the vectors.
1424 double GetLineWidth();
1427 * This enumeration contains a set of elements defining the type of representation of the vector head.
1429 enum GlyphType{ ARROW,
1436 * Sets the type of representation of the vector head.
1437 * \param theType This parameter defines the type of representation of the vector head.
1438 * This value is taken from the <VAR>GlyphType</VAR> enumeration.
1440 void SetGlyphType(in GlyphType theType);
1443 * Gets the type of representation of the vector head.
1445 GlyphType GetGlyphType();
1448 * This enumeration contains a set of elements defining the position of the vector head.
1450 enum GlyphPos{ CENTER, /*!<In the center of the vector.*/
1451 TAIL, /*!<In the tail of the vector.*/
1452 HEAD /*!<In the head of the vector.*/
1456 * Sets the position of the vector head.
1457 * \param thePos This parameter defines the position of the vector head.
1458 * This value is taken from the <VAR>GlyphPos</VAR> enumeration.
1460 void SetGlyphPos(in GlyphPos thePos);
1463 * Gets the position of the vector head.
1465 GlyphPos GetGlyphPos();
1468 //-------------------------------------------------------
1469 /*! \brief %Animation class
1471 * This class provides a set of methods used for:<br>
1473 * <li> generating different animations on the basis of a field,
1474 * <li> setting the parameters of the animations,
1475 * <li> playing these animations in the %VISU module.
1478 * <BR><B>Field</B> represents the results of calculations
1479 * (it can be scalar or vector values), grouped together under one physical concept.
1480 * <BR><B>Time stamp</B> represents a subfield: the results
1481 * of calculations are taken in one definite moment.
1483 interface Animation : Base
1486 * This enumeration contains a set of available animation modes.
1488 enum AnimationMode{ PARALLEL, /*!< parallel mode of animation. */
1489 SUCCESSIVE /*!< succcessive mode of animation. */
1492 /*! Defines the field which will be used as a base for generation of the animation.
1493 * \param theObject The %SObject corresponding to the field.
1495 boolean addField(in SALOMEDS::SObject theObject);
1497 /*! Remove all fields from Animation object.
1501 /*! Generates presentations on the basis of the field.
1502 * \param theFieldNum The number of the field, which will be used
1503 * as the basis for construction of the presentation.
1505 void generatePresentations(in long theFieldNum);
1507 /*! Generates a set of frames from the created by the method
1508 * <VAR>generatePresentations</VAR>3D presentations. A sequence of
1509 * these frames will be transformed into an animation.
1510 * \return True, if the frames have been successfully generated.
1512 boolean generateFrames();
1514 /*! Clears the view before starting an animation.
1518 /*! \name Playback of an animation:
1522 /*! Starts an animation.
1524 void startAnimation();
1526 /*! Stops an animation.
1528 void stopAnimation();
1530 /*! Forwards to the next frame.
1534 /*! Returns to the previous frame.
1538 /*! Returns to the first frame of the animation.
1542 /*! Forwards to the last frame of the animation.
1546 /*! Passes to a definite frame of the animation.
1547 * \param theFrame A long value defining the number of the frame.
1549 void gotoFrame(in long theFrame);
1552 /*! Gets the number of time stamps (subfields) contained in the given field.
1556 /*! Gets the number of generated frames
1560 /*! Returns True, if the animation is currently running.
1562 boolean isRunning();
1564 /*! Returns the number of the current frame.
1566 long getCurrentFrame();
1570 ColoredPrs3d getPresentation(in long theField, in long theFrame);
1572 /*! Sets the type of presentation (vectors, deformed shape etc.)
1573 * which will be generated by the method <VAR>generatePresentations</VAR>.
1575 void setPresentationType(in long theFieldNum, in VISUType theType);
1577 /*! Gets the type of presentation (vectors, deformed shape etc.) which will
1578 * be generated by the method <VAR>generatePresentations</VAR>.
1580 VISUType getPresentationType(in long theFieldNum);
1582 /*! Sets the speed of the animation.
1583 * \param theSpeed The speed of the animation. The value varies from 1 to 99.
1585 void setSpeed(in long theSpeed);
1587 /*! Gets the speed of the animation.
1591 /*! Ruturns True, if playback of the animation is proportional.
1592 * This option allows to render your animation with proportional periods
1593 * of time between every frame (not depending on the time stamps).
1595 boolean isProportional();
1597 /*! Sets the range of the animation. The range is defined on the basis of
1598 * the time stamps of the field which have been used for generation of the animation.
1599 * This method allows to bound the range of generated frames.
1600 * If this method is not used, the animation will be generated
1601 * on the basis of all time stamps contained in the field.
1602 * \param theMin The value of the first time stamp which will be used for generation of the animation.
1603 * \param theMax The value of the last time stamp which will be used for generation of the animation.
1605 void setAnimationRange(in double theMin, in double theMax);
1607 /*! Gets the number of the first time stamp which will be used for generation of the animation.
1609 double getMinRange();
1611 /*! Gets the number of the last time stamp which will be used for generation of the animation.
1613 double getMaxRange();
1615 /*! Returns True if the range of the animation has been defined
1616 * by the method <VAR>setAnimationRange</VAR>. Otherwise
1617 * the animation will be generated on the basis of all time stamps contained in the field.
1619 boolean isRangeDefined();
1621 /*! Sets the sequence of the animation. The sequence is defined on the basis of
1622 * the time stamps of the field which have been used for generation of the animation.
1623 * This method allows to set the sequence of generated frames.
1624 * If this method is not used, the animation will be generated
1625 * on the basis of all time stamps contained in the field.
1626 * Format of the sequence: '1,9,2-5,7-8'
1627 * \param theSequence The sequence of time stamps indices which will be used for generation of the animation.
1629 void setAnimationSequence(in string theSequence);
1631 /*! Gets the animation sequence.
1633 string getAnimationSequence();
1635 /*! Returns True if the sequence of the animation has been defined
1636 * by the method <VAR>setAnimationSequence</VAR>. Otherwise
1637 * the animation will be generated on the basis of all time stamps contained in the field.
1639 boolean isSequenceDefined();
1641 /*! Saves all the frames composing the animation into a definite directory.
1642 * Pictures format is set with method <VAR>setDumpFormat()</VAR>.
1643 * \param thePath The directory where all the frames will be saved.
1645 void dumpTo(in string thePath);
1647 /*! Set format for saving all the frames composing the animation.
1648 * \param theFormat The format for saving pictures.
1649 * For available formats see QImageIO documentation (Qt).
1650 * If specified format is not available, default format will be used.
1651 * Default format is JPEG or first of supported, if JPEG is not available.
1652 * \return Really set format. Differ from \a theFormat if \a theFormat is not available.
1654 string setDumpFormat(in string theFormat);
1656 /*! Returns True, if the playback of the animation is cycling.
1658 boolean isCycling();
1660 /*! Gets the first time stamp of the field defined at the input of the animation.
1661 * \note This method is used if animation range is <b>NOT</b> defined.
1663 double getMinTime();
1665 /*! Gets the last time stamp of the field defined at the input of the animation.
1666 * \note This method is used if animation range is <b>NOT</b> defined.
1668 double getMaxTime();
1670 /*! Sets proprtional playback of the animation. This option allows to render your animation
1671 * with proportional periods of time between every frame (not depending on the time stamps).
1672 * \param theProp If this boolean parameter is True, playback
1673 * of your animation will be set as proportional.
1675 void setProportional(in boolean theProp);
1677 /*! Sets cycling playback of the animation. The number of cycles
1678 * can be infinite, untill you use <VAR>startAnimation</VAR> method.
1679 * \param theCycle If this boolean parameter is True, playback
1680 * of your animation will be set as cycling.
1682 void setCycling(in boolean theCycle);
1684 boolean isCleaningMemoryAtEachFrame();
1685 void setCleaningMemoryAtEachFrame(in boolean theCycle);
1687 SALOMEDS::SObject publishInStudy();
1689 void saveAnimation();
1691 void restoreFromStudy(in SALOMEDS::SObject theSObj);
1693 boolean isSavedInStudy();
1696 * Sets the animation mode.
1697 * \param theMode The value of this parameter is taken from the <VAR>AnimationMode</VAR> enumeration.
1699 void setAnimationMode(in AnimationMode theMode);
1702 * Gets the animation mode.
1704 AnimationMode getAnimationMode();
1707 * Apply the presentation properties to all fields. The exception is raised in the following cases:
1708 * 1) presentations for the given field is not yet created;
1709 * 2) invalid dynamic cast of the given presentation to VISU::ColoredPrs3d_i;
1710 * 3) the MED file is not the same;
1711 * 4) the mesh name is not the same;
1712 * 5) the field name is not the same;
1713 * 6) the entity is not the same.
1715 void ApplyProperties(in long theFieldNum, in ColoredPrs3d thePrs)
1716 raises (SALOME::SALOME_Exception);
1720 /*! \brief Interface %Result
1722 * This interface serves for inner representation of data generated
1723 * in other sources (MED object or file). This data is needed
1724 * for further construction of graphical presentations.
1726 interface Result : RemovableObject, SALOME::GenericObj
1728 /*! Reads all data from the corresponding sources. By default the data is loaded on demand.
1732 /*! Start to parse the source MED file and publish all its entities into the study*/
1733 boolean Build(in boolean theIsBuildAll, in boolean theIsAtOnce);
1735 /*! Allow to check is all requested MED entites already loaded or not */
1738 /*! Allow to check is corresponding MED entites already loaded or not */
1739 boolean IsEntitiesDone();
1741 /*! Choose to parse MED fields and perform global min / max on the MED timestamps.*/
1742 void SetBuildFields(in boolean theIsBuildFields, in boolean theIsCalculateMinMax);
1744 /*! Allow to check is corresponding MED fields already loaded or not */
1745 boolean IsFieldsDone();
1747 /*! Choose to parse MED groups.*/
1748 void SetBuildGroups(in boolean theIsBuildGroups);
1750 /*! Allow to check is corresponding MED groups and families already loaded or not */
1751 boolean IsGroupsDone();
1753 /*! Allow to check is min / max calculation over field's components already perfrormed or not */
1754 boolean IsMinMaxDone();
1756 /*! Allow to check is corresponding multi resolution structure already loaded or not */
1757 boolean IsPartsDone();
1759 typedef sequence<Entity> Entities;
1761 typedef string EntityName;
1763 typedef sequence<EntityName> EntityNames;
1765 typedef long TimeStampNumber;
1767 typedef sequence<TimeStampNumber> TimeStampNumbers;
1776 typedef sequence<Resolution> Resolutions;
1778 /*! Gets existing mesh names */
1779 EntityNames GetMeshNames();
1781 /*! Gets existing mesh entites for the given mesh name */
1782 Entities GetEntities(in EntityName theMeshName);
1784 /*! Gets existing families for the given mesh name and entity */
1785 EntityNames GetFamilies(in EntityName theMeshName, in Entity theEntity);
1787 /*! Gets existing families for the given mesh name */
1788 EntityNames GetGroups(in EntityName theMeshName);
1790 /*! Gets existing fields for the given mesh name and entity */
1791 EntityNames GetFields(in EntityName theMeshName, in Entity theEntity);
1793 /*! Gets number of components for the given mesh name, entity and name of field */
1794 long GetNumberOfComponents(in EntityName theMeshName, in Entity theEntity, in EntityName theFieldName);
1796 /*! Gets existing numbers of time stamps for the given mesh name, entity and name of field */
1797 TimeStampNumbers GetTimeStampNumbers(in EntityName theMeshName, in Entity theEntity, in EntityName theFieldName);
1799 /*! Gets existing parts of multi resolution structure for the given mesh name */
1800 EntityNames GetPartNames(in EntityName theMeshName);
1802 /*! Gets available resolutions of multi resolution structure for the given mesh and part names */
1803 Resolutions GetResolutions(in EntityName theMeshName, in EntityName thePartName);
1805 /*! Gets current resolution of multi resolution structure for the given mesh and part names */
1806 Resolution GetResolution(in EntityName theMeshName, in EntityName thePartName);
1808 /*! Gets current resolution of multi resolution structure for the given mesh and part names */
1809 void SetResolution(in EntityName theMeshName, in EntityName thePartName, in Resolution theResolution);
1812 //-------------------------------------------------------
1813 interface ViewManager;
1815 /*! \brief %VISU_Gen interface
1817 * This is the main interface of %VISU component. It is necessary for creation of
1818 * post-processing presentations from given %Result and %Table object reference,
1819 * using the views provided by %ViewManager.
1821 interface VISU_Gen : Engines::Component, SALOMEDS::Driver, Base
1823 /*! Sets a definite study to be current.
1825 void SetCurrentStudy(in SALOMEDS::Study theStudy);
1827 /*! Gets the current study.
1829 SALOMEDS::Study GetCurrentStudy();
1832 * Gets the %View Manager which is used for creation of
1833 * post-processing presentations.
1835 ViewManager GetViewManager();
1838 * Imports tables from a file and create TableAttribute in Sudy
1840 SALOMEDS::SObject ImportTables(in string theFileName);
1843 * Export table to a file
1845 boolean ExportTableToFile(in SALOMEDS::SObject theTable, in string theFileName);
1848 * Imports data from a file. The access to this file will be conserved outside of the application.
1849 * \param theFileName String parameter defining the name of the file
1850 * from which the data will be imported.
1852 Result ImportFile(in string theFileName);
1855 * Create result and initialize its with the file. The access to this file will be conserved outside of the application.
1856 * \param theFileName String parameter defining the name of the file
1857 * from which the data will be imported.
1859 Result CreateResult(in string theFileName);
1862 * Imports data from a file. The access to this file will closed.
1863 * \param theFileName String parameter defining the name of the file
1864 * from which the data will be imported.
1866 Result CopyAndImportFile(in string theFileName);
1869 * Imports data from a %MED object.
1871 Result ImportMed(in SALOMEDS::SObject theMedSObject);
1874 * Imports data from a %MED field.
1876 Result ImportMedField(in SALOME_MED::FIELD theField);
1879 * Rename a study object, representing a mesh, specified by given values.
1880 * \param theResult Data generated in other sources (MED object or file).
1881 * \param theMeshName One of the meshes presented in MED file.
1882 * \param theEntity Type of entity where the field is defined.
1883 * \param theSubMeshName Name of sub-mesh (group or family).
1884 * \param theNewName Name to be given to the study object.
1886 void RenameEntityInStudy(in Result theResult,
1887 in string theMeshName,
1888 in Entity theEntity,
1889 in string theNewName);
1890 void RenameFamilyInStudy(in Result theResult,
1891 in string theMeshName,
1892 in Entity theEntity,
1893 in string theSubMeshName,
1894 in string theNewName);
1895 void RenameGroupInStudy(in Result theResult,
1896 in string theMeshName,
1897 in string theSubMeshName,
1898 in string theNewName);
1901 * Creates a mesh on the basis of the data generated in other sources (MED object or file).
1902 * \param theResult Data generated in other sources. (MED object or file)
1903 * \param theMeshName One of the meshes presented in MED file
1904 * \param theEntity Type of entity where the field is defined
1906 Mesh MeshOnEntity(in Result theResult, in string theMeshName, in Entity theEntity);
1909 * Creates on the basis of a family a mesh which will be composed of geometrical
1910 * elements, corresponding to the type of cells (node, edge, face or cell) of this family.
1911 * \param theResult Data generated in other sources. (MED object or file)
1912 * \param theMeshName One of the meshes presented in MED file
1913 * \param theEntity Type of entity where the field is defined.
1915 Mesh FamilyMeshOnEntity(in Result theResult, in string theMeshName,
1916 in Entity theEntity, in string theFamilyName);
1919 * Creates a mesh on the basis of a group of families.
1920 * \param theResult Data generated in other sources. (MED object or file)
1921 * \param theMeshName One of the meshes presented in MED file
1922 * \param theGroupName Name of the group.
1924 Mesh GroupMesh(in Result theResult, in string theMeshName, in string theGroupName);
1927 * Creates a scalar map presentation.
1928 * \param theResult Data generated in other sources. (MED object or file)
1929 * \param theMeshName One of the meshes presented in MED file
1930 * \param theEntity Type of entity where the field is defined
1931 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
1932 * \param theTimeStampNumber Number of iteration on the field
1934 ScalarMap ScalarMapOnField(in Result theResult, in string theMeshName,
1935 in Entity theEntity, in string theFieldName,
1936 in long theTimeStampNumber);
1939 * Creates a Gauss Points presentation.
1940 * \param theResult Data generated in other sources. (MED object or file)
1941 * \param theMeshName One of the meshes presented in MED file
1942 * \param theEntity Type of entity where the field is defined
1943 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
1944 * \param theTimeStampNumber Number of iteration on the field
1946 GaussPoints GaussPointsOnField(in Result theResult, in string theMeshName,
1947 in Entity theEntity, in string theFieldName,
1948 in long theTimeStampNumber);
1951 * Creates a deformed shape presentation.
1952 * \param theResult Data generated in other sources. (MED object or file)
1953 * \param theMeshName One of the meshes presented in MED file
1954 * \param theEntity Type of entity where the field is defined
1955 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
1956 * \param theTimeStampNumber Number of iteration on the field
1958 DeformedShape DeformedShapeOnField(in Result theResult, in string theMeshName,
1959 in Entity theEntity, in string theFieldName,
1960 in long theTimeStampNumber);
1963 * Creates a deformed shape presentation.
1964 * \param theResult Data generated in other sources. (MED object or file)
1965 * \param theMeshName One of the meshes presented in MED file
1966 * \param theEntity Type of entity where the field is defined
1967 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
1968 * \param theTimeStampNumber Number of iteration on the field
1970 ScalarMapOnDeformedShape ScalarMapOnDeformedShapeOnField(in Result theResult, in string theMeshName,
1971 in Entity theEntity, in string theFieldName,
1972 in long theTimeStampNumber);
1975 * Creates a vector presentation.
1976 * \param theResult Data generated in other sources. (MED object or file)
1977 * \param theMeshName One of the meshes presented in MED file
1978 * \param theEntity Type of entity where the field is defined
1979 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
1980 * \param theTimeStampNumber Number of iteration on the field
1982 Vectors VectorsOnField(in Result theResult, in string theMeshName,
1983 in Entity theEntity, in string theFieldName,
1984 in long theTimeStampNumber);
1987 * Creates an iso surface presentation.
1988 * \param theResult Data generated in other sources. (MED object or file)
1989 * \param theMeshName One of the meshes presented in MED file
1990 * \param theEntity Type of entity where the field is defined
1991 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
1992 * \param theTimeStampNumber Number of iteration on the field
1994 IsoSurfaces IsoSurfacesOnField(in Result theResult, in string theMeshName,
1995 in Entity theEntity, in string theFieldName,
1996 in long theTimeStampNumber);
1999 * Creates an stream lines presentation.
2000 * \param theResult Data generated in other sources. (MED object or file)
2001 * \param theMeshName One of the meshes presented in MED file
2002 * \param theEntity Type of entity where the field is defined
2003 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
2004 * \param theTimeStampNumber Number of iteration on the field
2006 StreamLines StreamLinesOnField(in Result theResult, in string theMeshName,
2007 in Entity theEntity, in string theFieldName,
2008 in long theTimeStampNumber);
2011 * Creates a presentation of cut planes.
2012 * \param theResult Data generated in other sources. (MED object or file)
2013 * \param theMeshName One of the meshes presented in MED file
2014 * \param theEntity Type of entity where the field is defined
2015 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
2016 * \param theTimeStampNumber Number of iteration on the field
2018 CutPlanes CutPlanesOnField(in Result theResult, in string theMeshName,
2019 in Entity theEntity, in string theFieldName,
2020 in long theTimeStampNumber);
2023 * Creates a presentation of cut lines.
2024 * \param theResult Data generated in other sources. (MED object or file)
2025 * \param theMeshName One of the meshes presented in MED file
2026 * \param theEntity Type of entity where the field is defined
2027 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
2028 * \param theTimeStampNumber Number of iteration on the field
2030 CutLines CutLinesOnField(in Result theResult, in string theMeshName,
2031 in Entity theEntity, in string theFieldName,
2032 in long theTimeStampNumber);
2035 * Creates a Plot3D presentation.
2036 * \param theResult Data generated in other sources. (MED object or file)
2037 * \param theMeshName One of the meshes presented in MED file
2038 * \param theEntity Type of entity where the field is defined
2039 * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
2040 * \param theTimeStampNumber Number of iteration on the field
2042 Plot3D Plot3DOnField(in Result theResult, in string theMeshName,
2043 in Entity theEntity, in string theFieldName,
2044 in long theTimeStampNumber);
2047 * Creates a table presentation.
2048 * \param theTableEntry The entry of the table which will be displayed.
2050 Table CreateTable(in string theTableEntry);
2053 * Creates a curve on the basis of points, whose values are taken from the table.
2054 * \param theTable Table containing the data for construction of curves.
2055 * \param HRow Index of the row in the table: abscissa of the point.
2056 * \param VRow Index of the row in the table: ordinate of the point.
2058 Curve CreateCurve(in Table theTable, in long theHRow, in long theVRow);
2061 * Creates a curve on the basis of points, whose values are taken from the table.
2062 * Each point has also assigned value, that will be shown as tooltip in Plot2d
2063 * \param theTable Table containing the data for construction of curves.
2064 * \param HRow Index of the row in the table: abscissa of the point.
2065 * \param VRow Index of the row in the table: ordinate of the point.
2066 * \param ZRow Index of the row in the table: assigned value (so-called as Z).
2068 Curve CreateCurveWithZ( in Table theTable, in long theHRow, in long theVRow, in long theZRow );
2071 * Creates a presentation form containing an array of references to the curves.
2073 Container CreateContainer();
2075 /*! Creates an animation in the 3D view.
2076 * \param theView3d The 3D view, where the animation will be rendered.
2078 Animation CreateAnimation(in View3D theView3d);
2080 void DeleteResult(in Result theResult);
2082 void DeletePrs3d(in Prs3d thePrs3d);
2085 * Get or create %ColoredPrs3dCache object.
2087 ColoredPrs3dCache GetColoredPrs3dCache(in SALOMEDS::Study theStudy);
2090 /*! \brief %View interface
2092 * Contains a set of methods used by the %View frame, which can be one of
2093 * the following types: 3d, Table, XY plot.
2094 * %View interface is a base for all types of %view interfaces.
2096 interface View: Base {
2098 /*! \brief %ViewRepresentation enumeration
2100 * displaying part ("ALL" isn't setable)
2102 enum ViewRepresentation {
2109 void ShowPart (in ViewRepresentation ViewRepr, in boolean state );
2111 boolean IsPartShown( in ViewRepresentation ViewRepr );
2114 * New methods for view parameters management.
2117 /*! \brief Split workarea of this view.
2119 * Horizontally split workarea of this view.
2120 * This view is moved in a new right area.
2124 /*! \brief Split workarea of this view.
2126 * Horizontally split workarea of this view.
2127 * This view stays in an old left area, others are moved in a new right area.
2131 /*! \brief Split workarea of this view.
2133 * Vertically split workarea of this view.
2134 * This view is moved in a new bottom area.
2138 /*! \brief Split workarea of this view.
2140 * Vertically split workarea of this view.
2141 * This view stays in an old top area, others are moved in a new bottom area.
2146 * Put this view window on top of its work area.
2151 * Put \a theView in workarea of this view right after it.
2152 * If \a theView was alone in its workarea, workarea of \a theView will be destroyed.
2153 * If \a theView was in the same workarea with this view, simple reordering will take place.
2154 * \param theView A view window to be attracted to this one.
2156 void Attract (in View theView);
2159 * Put all the view windows from workarea of \a theView in workarea of this view right after it.
2160 * Workarea of \a theView will be destroyed.
2161 * If \a theView was in the same workarea with this view, simple reordering will take place.
2162 * \param theView A view window to be attracted to this one together with all its workarea.
2164 void AttractAll (in View theView);
2167 * Set position of this view window relatively its splitter.
2168 * \param thePosition Desired position of this view window relatively
2169 * its splitter. Meaningfull values lays in range [0..1].
2171 * Direction of positioning is defined by the splitter orientation.
2173 void SetRelativePositionInSplitter (in double thePosition);
2176 * Set size of this view window relatively its splitter.
2177 * \param theSize Desired size of this view window relatively
2178 * its splitter. Meaningfull values lays in range [0..1].
2180 * Direction of resizing is defined by the splitter orientation.
2182 void SetRelativeSizeInSplitter (in double theSize);
2185 * Set horizontal position of this view window relatively its workstack.
2186 * \param thePosition Desired horizontal position of this view window
2187 * relatively its workstack. Meaningfull values lays in range [0..1].
2189 void SetRelativePositionX (in double thePosition);
2192 * Set vertical position of this view window relatively its workstack.
2193 * \param thePosition Desired vertical position of this view window
2194 * relatively its workstack. Meaningfull values lays in range [0..1].
2196 void SetRelativePositionY (in double thePosition);
2199 * Set horizontal size of this view window relatively its workstack.
2200 * \param theSize Desired horizontal size of this view window relatively
2201 * its workstack. Meaningfull values lays in range [0..1].
2203 void SetRelativeSizeX (in double theSize);
2206 * Set vertical size of this view window relatively its workstack.
2207 * \param theSize Desired vertical size of this view window relatively
2208 * its workstack. Meaningfull values lays in range [0..1].
2210 void SetRelativeSizeY (in double theSize);
2213 * Old methods for view parameters management, they don't work now
2215 void SetViewWidth (in long Width); //setting width of view
2216 void SetViewHeight (in long Height); //setting height of view
2217 long GetViewWidth(); //getting view width
2218 long GetViewHeight(); //getting view height
2219 enum ViewPosition {TOP, CENTER, BOTTOM, RIGHT, LEFT}; //position of the study frame
2220 void SetViewPositionHorizontal (in ViewPosition ViewPosHor); //setting of the horizontal view position
2221 void SetViewPositionVertical (in ViewPosition ViewPosVer); //setting of the vertical view position
2222 void SetRelativePosition( in double x, in double y );
2223 void SetRelativeSize( in double x, in double y );
2224 void Minimize(); // Minimizes to the task bar or to the bottom of the Desktop the %View frame.
2225 void Restore(); // Restores the %View frame.
2226 void Maximize(); // Maximizes the %View frame.
2229 * Sets the title of the %View frame.
2230 * \param theTitle String parameter defining the title of the %View frame.
2232 void SetTitle(in string theTitle);
2235 * Gets the title of the %View frame.
2240 * Sets background color of the %View frame.
2241 * \param theColor Background color defined in <VAR>SALOMEDS::Color</VAR> enumeration.
2243 void SetBackground(in SALOMEDS::Color theColor);
2246 * Gets background color of the %View frame.
2248 SALOMEDS::Color GetBackground();
2251 * Removes all presentations (presentable objects) from the %view.
2256 * Displays all presentations (presentable objects) in the %view.
2261 * Removes a definite presentation (presentable object) from the %view.
2262 * \param thePrsObj The presentation (presentable object) which should be deleted.
2264 void Erase(in PrsObject thePrsObj);
2267 * Displays a definite presentation (presentable object) in the %view.
2268 * \param thePrsObj The presentation (presentable object) which should be displayed.
2270 void Display(in PrsObject thePrsObj);
2273 * Allows to display only a definite presentation (presentable object) in the %view.
2274 * All other presentations are removed from the %view.
2275 * \param thePrsObj The presentation (presentable object) which should be displayed.
2277 void DisplayOnly(in PrsObject thePrsObj);
2286 * \param theFileName The name of the file where the view will be saved.
2287 * \return True, if the view have been saved successfully.
2289 boolean SavePicture(in string theFileName);
2292 //-------------------------------------------------------
2293 /*! \brief 3D view interface
2295 * This interface contains a set of methods necessary for representation of objects in 3D space.
2297 interface View3D : View {
2299 * This enumeration contains a set of elements determining a predefined point of view
2300 * (position of the camera in 3D space relative to the presentable object).
2302 enum ViewType{ FRONT, BACK, LEFT, RIGHT, TOP, BOTTOM};
2305 * This enumeration contains a set of elements determining the axis
2307 enum Axis{ XAxis, YAxis, ZAxis};
2310 * Data type defining coordinates in 3D space.
2312 typedef double XYZ[3];
2315 * Makes all presentations, which are currently present in the %view, completely visible.
2320 * Sets a predefined point of view (FRONT, BACK, LEFT, RIGHT, TOP, BOTTOM). (In other words it means
2321 * a predefined position of the camera in 3D space with respect to the object which is represented.)
2323 void SetView(in ViewType theType);
2326 * Sets the position of the camera in 3D space.
2327 * This point is used as the first point of the vector
2328 * defining the view direction of the camera.
2330 void SetPointOfView(in XYZ theCoord);
2333 * Gets the position of the camera in 3D space.
2334 * This point is used as the first point of the vector
2335 * defining the view direction of the camera.
2337 XYZ GetPointOfView();
2340 * Sets the vertical line of the camera in 3D space.
2342 void SetViewUp(in XYZ theDir);
2345 * Gets the vertical line of the camera in 3D space.
2350 * Sets the point of sight of the camera. This point is used as the
2351 * second point of the vector defining the view direction of the camera.
2353 void SetFocalPoint(in XYZ theDir);
2356 * Gets the point of sight of the camera. This point is used as the
2357 * second point of the vector defining the view direction of the camera.
2359 XYZ GetFocalPoint();
2362 * Zooming of the presentable object. Sets the scale.
2364 void SetParallelScale(in double theScale);
2367 * Zooming of the presentable object. Gets the scale.
2369 double GetParallelScale();
2372 * Scaling of the view along a definite axis.
2373 * \param theAxis The axis of the scaling
2374 * \param theParam The coefficient of the scaling
2376 void ScaleView(in Axis theAxis, in double theParam);
2379 * Removes the scaling of the view.
2384 * Saves view parameters.
2385 * \return True if the view parameters have been created, False if the parameters have been modified.
2386 * \param theName The name under which the view parameters will be saved.
2388 boolean SaveViewParams(in string theName);
2390 /*! Restores view parameters.
2391 * \return True if the view parameters have been found and applied to the view,
2392 * False if the parameters with this name don't exist.
2393 * \param theName The name of the view parameters which will be restored.
2395 boolean RestoreViewParams(in string theName);
2398 /*! Get representation type of the given presentation in this view.
2399 * \param thePrs Object to get a representation type of.
2400 * \return <VAR>PresentationType</VAR> Representation type of object in this view.
2402 PresentationType GetPresentationType(in ScalarMap thePrs);
2404 /*! Set representation type of the given presentation in this view.
2405 * \param thePrs Object to set a representation type of.
2406 * \param thePrsType Representation type to be set to the given object.
2407 * \return Empty string in case of success, error description in case of failure.
2409 string SetPresentationType(in ScalarMap thePrs, in PresentationType thePrsType);
2411 /*! Get shrink state of the given presentation in this view.
2412 * \param thePrs Object to get a shrink state of.
2413 * \return TRUE if \a thePrs is shrinked in this view, FALSE overwise.
2415 boolean IsShrinked(in ScalarMap thePrs);
2417 /*! Make the given presentation shrinked or not shrinked in this view.
2418 * \param thePrs Object to change a shrink state of.
2419 * \param isShrinked Pass TRUE to make \a thePrs shrinked, FALSE overwise.
2420 * \return Empty string in case of success, error description in case of failure.
2422 string SetShrinked(in ScalarMap thePrs, in boolean isShrinked);
2424 /*! Get shading state of the given presentation in this view.
2425 * \param thePrs Object to get a shading state of.
2426 * \return TRUE if \a thePrs is shaded in this view, FALSE overwise.
2428 boolean IsShaded(in ScalarMap thePrs);
2430 /*! Make the given presentation shaded or not shaded in this view.
2431 * \param thePrs Object to set a shading state of.
2432 * \param isShaded Pass TRUE to make \a thePrs shaded, FALSE overwise.
2433 * \return Empty string in case of success, error description in case of failure.
2435 string SetShaded(in ScalarMap thePrs, in boolean isShaded);
2437 /*! Get opacity of the given presentation in this view.
2438 * \param thePrs Object to get an opacity of.
2439 * \return Opacity value in range [0, 1], 0 - transparent, 1 - opaque.
2441 double GetOpacity(in ScalarMap thePrs);
2443 /*! Set opacity of the given presentation in this view.
2444 * \param thePrs Object to set an opacity of.
2445 * \param theOpacity Opacity value [0, 1]. 0 - transparent, 1 - opaque.
2446 * \return Empty string in case of success, error description in case of failure.
2448 string SetOpacity(in ScalarMap thePrs, in double theOpacity);
2450 /*! Get line width of the given presentation in this view.
2451 * \param thePrs Object to get a line width of.
2452 * \return Line width of \a thePrs in this view.
2454 double GetLineWidth(in ScalarMap thePrs);
2456 /*! Set line width of the given presentation in this view.
2457 * \param thePrs Object to set a line width of.
2458 * \param theLineWidth Line width value. Recommended values are in range [1, 10].
2459 * \return Empty string in case of success, error description in case of failure.
2461 string SetLineWidth(in ScalarMap thePrs, in double theLineWidth);
2464 //-------------------------------------------------------
2465 /*! \brief Interface of the Table view
2467 * This interface is used for creation of a view necessary for presentation of a table.
2469 interface TableView : View {
2472 //-------------------------------------------------------
2473 /*! \brief Interface of the 2D plot view
2475 * This interface is used for creation of a view necessary for presentation
2476 * of a XY plot generated on the basis of one or several curve lines.
2478 interface XYPlot : View {
2479 /*! Sets the title of the XY plot
2480 * \param theTitle The title of the XY plot
2482 void SetSubTitle(in string theTitle);
2484 /*! Gets the title of the XY plot
2486 string GetSubTitle();
2489 * This enumeration contains a set of elements determining the type
2490 * of the curve lines, which will be displayed in your XY plot.
2492 enum CurveType { POINTS, MULTYLINE, SPLINE};
2494 /*! Sets the type of the curve lines.
2495 * \param theType The type of the curve lines taken from <VAR>CurveType</VAR> enumeration.
2497 void SetCurveType(in CurveType theType);
2499 /*! Gets the type of the curve lines.
2501 CurveType GetCurveType();
2503 /*! Sets the size of the markers (data points) with help of
2504 * which the curve is constructed on the graphics.
2505 * \param theSize Long value defining the size of the markers.
2507 void SetMarkerSize(in long theSize);
2509 /*! Gets the size of the markers (data points) with help of
2510 * which the curve is constructed on the graphics.
2512 long GetMarkerSize();
2514 /*! Enable/disables X-axis grid of the 2D plot.
2516 void EnableXGrid(in boolean theMajor, in long theNumMajor, in boolean theMinor, in long theNumMinor);
2518 /*! Enable/disables Y-axis grid of the 2D plot.
2520 void EnableYGrid(in boolean theMajor, in long theNumMajor, in boolean theMinor, in long theNumMinor);
2522 /*! Sets horizontal scaling of the 2D plot.
2523 * \param theScaling Type of scaling taken from <VAR>Scaling</VAR> enumeration.
2525 void SetHorScaling(in Scaling theScaling);
2527 /*! Gets the type horizontal scaling of the 2D plot.
2529 Scaling GetHorScaling();
2531 /*! Sets vertical scaling of the 2D plot.
2532 * \param theScaling Type of scaling taken from <VAR>Scaling</VAR> enumeration.
2534 void SetVerScaling(in Scaling theScaling);
2536 /*! Gets the type vertical scaling of the 2D plot.
2538 Scaling GetVerScaling();
2540 /*! Sets the title of the X-axis of the plot.
2541 * \param theTitle String value defining the title of the X-axis of the plot.
2543 void SetXTitle(in string theTitle);
2545 /*! Gets the title of the X-axis of the plot.
2549 /*! Sets the title of the Y-axis of the plot.
2550 * \param theTitle String value defining the title of the X-axis of the plot.
2552 void SetYTitle(in string theTitle);
2554 /*! Gets the title of the Y-axis of the plot.
2558 /*! Shows/hides the legend (description) of the 2D plot.
2560 void ShowLegend(in boolean theShowing);
2562 /*! Shrinks and enlarges the 2D plot to fit the 2D viewer.
2566 /*! Set range of the 2D plot to X axis of the 2D viewer.
2568 void FitXRange(in double xMin, in double xMax);
2570 /*! Set range of the 2D plot to Y axis of the 2D viewer.
2572 void FitYRange(in double yMin, in double yMax);
2574 /*! Set range of the 2D plot to XY axis of the 2D viewer.
2576 void FitRange(in double xMin, in double xMax,
2577 in double yMin, in double yMax);
2579 void GetFitRanges(out double xMin,out double xMax,
2580 out double yMin,out double yMax);
2583 //-------------------------------------------------------
2584 /*! \brief Interface of the %ViewManager
2586 * The ViewManager is necessary for work with view windows (creation and deletion).
2588 interface ViewManager: Base {
2589 /*! \brief Getting an active %View Frame
2591 * Returns an object reference to the active %View Frame.
2592 * Type of the %View must be checked.
2593 * \note <BR>Returns nil if there are no views currently opened.
2595 View GetCurrentView();
2597 /*! \brief Creation of a 3d %View.
2599 * Returns an object reference to the newly created 3D %View.
2601 View3D Create3DView();
2603 /*! \brief Creation of a Table %View.
2605 * Returns an object reference to the newly created Table %View.
2607 TableView CreateTableView(in Table theTable);
2609 /*! \brief Creation of a 2D plot %View.
2611 * Returns an object reference to the newly created 2D plot %View.
2613 XYPlot CreateXYPlot();
2615 /*! Deletes a definite view.
2616 * \param theView The view which should be deleted.
2618 void Destroy(in View theView);