// Copyright (C) 2005-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __MED_PRESENTATION_MANAGER_IDL_ #define __MED_PRESENTATION_MANAGER_IDL_ #include "SALOME_GenericObj.idl" #include "MEDDataManager.idl" module MEDCALC { /* Enumerations and constants */ enum MEDPresentationViewMode { VIEW_MODE_OVERLAP, VIEW_MODE_REPLACE, VIEW_MODE_NEW_LAYOUT, VIEW_MODE_SPLIT_VIEW }; enum MEDPresentationColorMap { COLOR_MAP_BLUE_TO_RED_RAINBOW, COLOR_MAP_COOL_TO_WARM }; struct ScalarBarRange { // (valMin,valMax) defines the scalar bar range from: // (-1,timetep): the field values at the chosen timestep // (-1,-1): the field values across all timesteps // (start,end): a user-input range of values long valMin; long valMax; }; const string DISPLAY_EUCLIDEAN_NORM = "Euclidean norm"; enum SliceOrientation { SLICE_NORMAL_TO_X, SLICE_NORMAL_TO_Y, SLICE_NORMAL_TO_Z, SLICE_NORMAL_TO_XY, SLICE_NORMAL_TO_XZ, SLICE_NORMAL_TO_YZ, SLICE_NORMAL_TO_XYZ }; /* Default values */ const MEDPresentationViewMode VIEW_MODE_DEFAULT = VIEW_MODE_REPLACE; const MEDPresentationColorMap COLOR_MAP_DEFAULT = COLOR_MAP_BLUE_TO_RED_RAINBOW; //const ScalarBarRange SCALAR_BAR_RANGE_DEFAULT = ; const long SCALAR_BAR_RANGE_VAL_MIN_DEFAULT = -1; const long SCALAR_BAR_RANGE_VAL_MAX_DEFAULT = -1; const string DISPLAY_DEFAULT = DISPLAY_EUCLIDEAN_NORM; const SliceOrientation SLICE_ORIENTATION_DEFAULT = SLICE_NORMAL_TO_Z; const long NB_CONTOURS_DEFAULT = 10; const long NB_SLICES_DEFAULT = 1; /* Structs */ struct ScalarMapParameters { long fieldHandlerId; MEDPresentationViewMode viewMode; string displayedInfo; // DISPLAY_EUCLIDEAN_NORM or any field name ScalarBarRange sbRange; MEDPresentationColorMap colorMap; }; // A contour is an isoline in 2D and an isosurface in 3D struct ContourParameters { long fieldHandlerId; MEDPresentationViewMode viewMode; string displayedInfo; // DISPLAY_EUCLIDEAN_NORM or any field name ScalarBarRange sbRange; MEDPresentationColorMap colorMap; long nbContours; }; struct VectorFieldParameters { long fieldHandlerId; MEDPresentationViewMode viewMode; }; struct SlicesParameters { long fieldHandlerId; MEDPresentationViewMode viewMode; SliceOrientation orientation; long nbSlices; }; struct DeflectionShapeParameters { long fieldHandlerId; MEDPresentationViewMode viewMode; }; struct PointSpriteParameters { long fieldHandlerId; MEDPresentationViewMode viewMode; string displayedInfo; // DISPLAY_EUCLIDEAN_NORM or any field name ScalarBarRange sbRange; MEDPresentationColorMap colorMap; }; /* Functions */ interface MEDPresentationManager : SALOME::GenericObj { long makeScalarMap(in ScalarMapParameters params); long makeContour(in ContourParameters params); long makeVectorField(in VectorFieldParameters params); long makeSlices(in SlicesParameters params); long makeDeflectionShape(in DeflectionShapeParameters params); long makePointSprite(in PointSpriteParameters params); void setPresentationProperty(in long presId, in string propName, in string propValue); string getPresentationProperty(in long presId, in string propName); }; }; #endif