Cherrypick from master 2005-12-28 09:21:56 UTC jfa <jfa@opencascade.com> 'Join modifications from branch BR_3_1_0deb':
INSTALL
bin/VERSION
build_configure
doc/salome/tui/VISU/sources/static/tree.js
resources/VISUCatalog.xml
src/VISUGUI/VISU_msg_en.po
src/VISUGUI/VisuGUI_CutLinesDlg.cxx
src/VISUGUI/VisuGUI_CutPlanesDlg.cxx
src/VISUGUI/VisuGUI_DeformedShapeDlg.cxx
src/VISUGUI/VisuGUI_DeformedShapeDlg.h
src/VISUGUI/VisuGUI_IsoSurfacesDlg.cxx
src/VISUGUI/VisuGUI_IsoSurfacesDlg.h
src/VISUGUI/VisuGUI_StreamLinesDlg.cxx
src/VISUGUI/VisuGUI_StreamLinesDlg.h
src/VISUGUI/VisuGUI_VectorsDlg.cxx
src/VISUGUI/VisuGUI_VectorsDlg.h
src/VISU_SWIG/VISU_Example_01.py
src/VISU_SWIG/VISU_Example_02.py
src/VISU_SWIG/VISU_Example_04.py
src/VISU_SWIG/VISU_Example_06.py
--- /dev/null
+This is the version 3.1.0 of VISU
+Compatible with :
+ - KERNEL 3.1.0
+ - SALOMEGUI 3.1.0
+ - MED 3.1.0
--- /dev/null
+THIS IS SALOME - VISU VERSION: 3.1.0
--- /dev/null
+#!/bin/bash
+
+#
+# Tool for updating list of .in file for the SALOME project
+# and regenerating configure script
+#
+# Author : Marc Tajchman - CEA
+# Date : 10/10/2002
+# $Header$
+#
+
+ORIG_DIR=`pwd`
+CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"`
+
+########################################################################
+# Test if the KERNEL_ROOT_DIR is set correctly
+
+if test ! -d "${KERNEL_ROOT_DIR}"; then
+ echo "failed : KERNEL_ROOT_DIR variable is not correct !"
+ exit
+fi
+
+# Test if the KERNEL_SRC is set correctly
+
+#if test ! -d "${KERNEL_SRC}"; then
+# echo "failed : KERNEL_SRC variable is not correct !"
+# exit
+#fi
+########################################################################
+# find_in - utility function
+#
+# usage :
+# find_in directory filename
+#
+# Finds files following the *.in pattern, recursively in the
+# directory (first argument).
+# Results are appended into the file (second argument)
+#
+# Difference from the standard unix find is that files are tested
+# before directories
+#
+
+find_in()
+{
+ local i
+ local f=$2
+
+# if the first argument is not a directory, returns
+
+ if [ ! -d "$1" ] ; then
+ return
+ fi
+
+# dont look in the CVS directories
+
+ case $1 in
+ */CVS) return ;;
+ */adm_local/*) return ;;
+ *) ;;
+ esac
+
+# for each regular file contained in the directory
+# test if it's a .in file
+
+ for i in "$1"/*
+ do
+ if [ -f "$i" ] ; then
+ case $i in
+ *.in) echo " "$i" \\" >> $f;;
+ *) ;;
+ esac
+ fi
+ done
+
+# for each subdirectory of the first argument, proceeds recursively
+
+ for i in "$1"/*
+ do
+ if [ -d "$i" ] ; then
+ find_in "$i" "$f"
+ fi
+ done
+}
+
+
+#######################################################################
+# Generate list of .in files (Makefile.in, config.h.in, etc)
+# appending it in file configure.in
+
+cd ${CONF_DIR}
+ABS_CONF_DIR=`pwd`
+
+#
+# Common part of the configure.in file
+#
+chmod u+w configure.in.base
+if ! \cp -f configure.in.base configure.in_tmp1
+then
+ echo
+ echo "error : can't create files in" ${CONF_DIR}
+ echo "aborting ..."
+ chmod u-w configure.in.base
+ exit
+fi
+chmod u-w configure.in.base
+
+if [ -e "${CONF_DIR}/salome_adm" ] ; then
+ \rm -f ${CONF_DIR}/salome_adm
+fi
+
+
+# make a link allowing AC_OUTPUT to find the salome_adm/.../*.in files
+echo "" >> configure.in_tmp1
+echo 'ln -fs ${KERNEL_ROOT_DIR}/salome_adm ${ROOT_SRCDIR}/.' >> configure.in_tmp1
+
+echo "" >> configure.in_tmp1
+echo "AC_OUTPUT([ \\" >> configure.in_tmp1
+
+#
+# List of .in files in the adm/unix directory
+# These files MUST be on top of AC_OUTPUT list so we
+# put them "manually"
+#
+
+echo " ./salome_adm/unix/SALOMEconfig.h \\" >> configure.in_tmp1
+echo " ./salome_adm/unix/F77config.h \\" >> configure.in_tmp1
+echo " ./salome_adm/unix/sstream \\" >> configure.in_tmp1
+echo " ./salome_adm/unix/depend \\" >> configure.in_tmp1
+echo " ./adm_local/unix/make_omniorb \\" >> configure.in_tmp1
+echo " ./salome_adm/unix/envScript \\" >> configure.in_tmp1
+echo " ./adm_local/unix/make_commence \\" >> configure.in_tmp1
+echo " ./salome_adm/unix/make_conclude \\" >> configure.in_tmp1
+echo " ./salome_adm/unix/make_module \\" >> configure.in_tmp1
+
+\rm -f configure.in_tmp2 configure.in_tmp3
+touch configure.in_tmp2
+find_in . configure.in_tmp2
+sed -e '/^...salome_adm/d' configure.in_tmp2 > configure.in_tmp3
+sed -e '/^...adm_local.unix.make_omniorb/d' configure.in_tmp3 > configure.in_tmp2
+sed -e '/^...adm_local.unix.make_commence/d' configure.in_tmp2 > configure.in_tmp3
+sed -e '/configure.in/d' configure.in_tmp3 > configure.in_tmp2
+sed -e 's/.in / /' configure.in_tmp2 >> configure.in_tmp1
+#sed '/^.*salome_adm/d' configure.in_tmp2 > configure.in_tmp3
+#sed '/configure.in/d' configure.in_tmp3 > configure.in_tmp2
+#sed 's/.in / /' configure.in_tmp2 >> configure.in_tmp1
+
+echo "])" >> configure.in_tmp1
+
+# delete the link created for AC_OUTPUT
+#echo "" >> configure.in_tmp1
+#echo 'rm -f ${ROOT_SRCDIR}/salome_adm' >> configure.in_tmp1
+\mv configure.in_tmp1 configure.in_new
+\rm -f configure.in_tmp2 configure.in_tmp3
+
+
+########################################################################
+# Create new (or replace old) configure.in file
+# Print a message if the file is write protected
+#
+
+echo
+if test ! -f configure.in
+then
+ echo -n "Creating new file 'configure.in' ... "
+ if \mv configure.in_new configure.in >& /dev/null
+ then
+ echo "done"
+ else
+ echo "error, check your file permissions"
+ fi
+else
+ echo -n "Updating 'configure.in' file ... "
+ if ! \cp configure.in configure.in_old >& /dev/null
+ then
+ echo
+ echo
+ echo "Can't backup previous configure.in"
+ echo -n "Continue (you will not be able to revert) - (Y/N) ? "
+ read R
+ case "x$R" in
+ xn*) exit;;
+ xN*) exit;;
+ esac
+ echo
+ echo -n " "
+ fi
+ if \cp configure.in_new configure.in >& /dev/null
+ then
+ echo "done"
+ else
+ echo
+ echo "error, can't update previous configure.in"
+ fi
+fi
+
+########################################################################
+# Use autoconf to rebuild the configure script
+#
+
+if test -f configure
+then
+ echo -n "Updating 'configure' script ... "
+else
+ echo -n "Creating 'configure' script ... "
+fi
+
+aclocal --acdir=adm_local/unix/config_files -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files
+if autoconf
+then
+ echo "done"
+else
+ echo "failed (check file permissions and/or user quotas ...)"
+fi
+
+cd ${ORIG_DIR}
+
+echo
--- /dev/null
+foldersTree = gFld("<b>SALOME v.3.1.0 </b>", "", "")
+ insDoc(foldersTree, gLnk("Main Page", "", "main.html"))
+
+aux1 = insFld(foldersTree, gFld("TUI Reference Guide", ""))
+ aux2 = insFld(aux1, gFld("Modules", ""))
+ aux3 = insFld(aux2, gFld("SALOME VISU module", ""))
+ insDoc(aux3, gLnk("Overview", "", "overview_VISU.html"))
+ aux4 = insFld(aux3, gFld("Packages", ""))
+ insDoc(aux4, gLnk("VISU", "", "namespaceVISU.html"))
+ insDoc(aux3, gLnk("Examples", "", "examples_VISU.html"))
+
+
+/*! Data structures
+*/
+ insDoc(aux1, gLnk("Data Structures", "", "annotated.html"))
+
+/*! insDoc(aux1, gLnk("VISU::Animation", "", "interfaceVISU_1_1Animation.html"))
+ insDoc(aux1, gLnk("VISU::Base", "", "interfaceVISU_1_1Base.html"))
+ insDoc(aux1, gLnk("VISU::Container", "", "interfaceVISU_1_1Container.html"))
+ insDoc(aux1, gLnk("VISU::Curve", "", "interfaceVISU_1_1Curve.html"))
+ insDoc(aux1, gLnk("VISU::CutLines", "", "interfaceVISU_1_1CutLines.html"))
+ insDoc(aux1, gLnk("VISU::CutPlanes", "", "interfaceVISU_1_1CutPlanes.html"))
+ insDoc(aux1, gLnk("VISU::DeformedShape", "", "interfaceVISU_1_1DeformedShape.html"))
+ insDoc(aux1, gLnk("VISU::IsoSurfaces", "", "interfaceVISU_1_1IsoSurfaces.html"))
+ insDoc(aux1, gLnk("VISU::Mesh", "", "interfaceVISU_1_1Mesh.html"))
+ insDoc(aux1, gLnk("VISU::Prs3d", "", "interfaceVISU_1_1Prs3d.html"))
+ insDoc(aux1, gLnk("VISU::PrsObject", "", "interfaceVISU_1_1PrsObject.html"))
+ insDoc(aux1, gLnk("VISU::Result", "", "interfaceVISU_1_1Result.html"))
+ insDoc(aux1, gLnk("VISU::ScalarMap", "", "interfaceVISU_1_1ScalarMap.html"))
+ insDoc(aux1, gLnk("VISU::StreamLines", "", "interfaceVISU_1_1StreamLines.html"))
+ insDoc(aux1, gLnk("VISU::Table", "", "interfaceVISU_1_1Table.html"))
+ insDoc(aux1, gLnk("VISU::TableView", "", "interfaceVISU_1_1TableView.html"))
+ insDoc(aux1, gLnk("VISU::Vectors", "", "interfaceVISU_1_1Vectors.html"))
+ insDoc(aux1, gLnk("VISU::View", "", "interfaceVISU_1_1View.html"))
+ insDoc(aux1, gLnk("VISU::View3D", "", "interfaceVISU_1_1View3D.html"))
+ insDoc(aux1, gLnk("VISU::ViewManager", "", "interfaceVISU_1_1ViewManager.html"))
+ insDoc(aux1, gLnk("VISU::VISU_Gen", "", "interfaceVISU_1_1VISU__Gen.html"))
+ insDoc(aux1, gLnk("VISU::XYPlot", "", "interfaceVISU_1_1XYPlot.html"))
+*/
+ insDoc(aux1, gLnk("Class Hierarchy", "", "hierarchy.html"))
+
+/*!
+ aux2 = insFld(aux1, gFld("VISU::Base", "", "interfaceVISU_1_1Base.html"))
+ insDoc(aux2, gLnk("VISU::Animation", "", "interfaceVISU_1_1Animation.html"))
+ aux3 = insFld(aux2, gFld("VISU::PrsObject", "", "interfaceVISU_1_1PrsObject.html"))
+ insDoc(aux3, gLnk("VISU::Container", "", "interfaceVISU_1_1Container.html"))
+ insDoc(aux3, gLnk("VISU::Curve", "", "interfaceVISU_1_1Curve.html"))
+ aux4 = insFld(aux3, gFld("VISU::Prs3d", "", "interfaceVISU_1_1Prs3d.html"))
+ insDoc(aux4, gLnk("VISU::Mesh", "", "interfaceVISU_1_1Mesh.html"))
+ aux5 = insFld(aux4, gFld("VISU::ScalarMap", "", "interfaceVISU_1_1ScalarMap.html"))
+ insDoc(aux5, gLnk("VISU::CutLines", "", "interfaceVISU_1_1CutLines.html"))
+ insDoc(aux5, gLnk("VISU::CutPlanes", "", "interfaceVISU_1_1CutPlanes.html"))
+ aux6 = insFld(aux5, gFld("VISU::DeformedShape", "", "interfaceVISU_1_1DeformedShape.html"))
+ insDoc(aux6, gLnk("VISU::StreamLines", "", "interfaceVISU_1_1StreamLines.html"))
+ insDoc(aux6, gLnk("VISU::Vectors", "", "interfaceVISU_1_1Vectors.html"))
+ insDoc(aux5, gLnk("VISU::IsoSurfaces", "", "interfaceVISU_1_1IsoSurfaces.html"))
+ insDoc(aux3, gLnk("VISU::Table", "", "interfaceVISU_1_1Table.html"))
+ insDoc(aux2, gLnk("VISU::Result", "", "interfaceVISU_1_1Result.html"))
+ aux3 = insFld(aux2, gFld("VISU::View", "", "interfaceVISU_1_1View.html"))
+ insDoc(aux3, gLnk("VISU::TableView", "", "interfaceVISU_1_1TableView.html"))
+ insDoc(aux3, gLnk("VISU::View3D", "", "interfaceVISU_1_1View3D.html"))
+ insDoc(aux3, gLnk("VISU::XYPlot", "", "interfaceVISU_1_1XYPlot.html"))
+ insDoc(aux2, gLnk("VISU::ViewManager", "", "interfaceVISU_1_1ViewManager.html"))
+ insDoc(aux2, gLnk("VISU::VISU_Gen", "", "interfaceVISU_1_1VISU__Gen.html"))
+ insDoc(aux2, gLnk("VISU::VISU_Gen", "", "interfaceVISU_1_1VISU__Gen.html"))
+ insDoc(aux2, gLnk("VISU::VISU_Gen", "", "interfaceVISU_1_1VISU__Gen.html"))
+*/
+ insDoc(aux1, gLnk("Class methods list", "", "functions.html"))
+/*!
+aux1 = insFld(foldersTree, gFld("Namespace List", "", "namespaces.html"))
+ insDoc(aux1, gLnk("VISU", "", "namespaceVISU.html"))
+*/
+ insDoc(aux1, gLnk("Namespace Members", "", "namespacemembers.html"))
+
+ insDoc(aux1, gLnk("File List", "", "files.html"))
+
+/*!
+ insDoc(aux1, gLnk("VISU_Gen.idl", "", "VISU__Gen_8idl.html"))
+*/
+
+aux1 = insFld(foldersTree, gFld("IDL/Python mapping", ""))
+ insDoc(aux1, gLnk("Mapping of VISU IDL definitions to Python language", "", "page2.html"))
+
+/*! insDoc(foldersTree, gLnk("Graphical Class Hierarchy", "", "inherits.html"))
+*/
--- /dev/null
+<?xml version='1.0' encoding='us-ascii' ?>
+
+<!-- XML component catalog -->
+<begin-catalog>
+
+<!-- Path prefix information -->
+
+<path-prefix-list>
+</path-prefix-list>
+
+<!-- Component list -->
+<component-list>
+ <component>
+ <!-- Component identification -->
+ <component-name>VISU</component-name>
+ <component-username>Post-Pro</component-username>
+ <component-type>VISU</component-type>
+ <component-author>NRI</component-author>
+ <component-version>3.1.0</component-version>
+ <component-comment>Post-Pro component</component-comment>
+ <component-multistudy>1</component-multistudy>
+ <component-icone>ModuleVisu.png</component-icone>
+ <constraint>hostname = localhost</constraint>
+ </component>
+</component-list>
+</begin-catalog>
--- /dev/null
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2002-02-22 16:56:46 CET\n"
+"PO-Revision-Date: 2005-06-27 12:38+0400\n"
+"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+
+msgid "BUT_OK"
+msgstr "OK"
+
+msgid "BUT_APPLY"
+msgstr "Apply"
+
+msgid "BUT_CLOSE"
+msgstr "Close"
+
+msgid "BUT_CANCEL"
+msgstr "Cancel"
+
+msgid "WRN_VISU"
+msgstr "Post-Pro Warning"
+
+msgid "WRN_VISU_WARNING"
+msgstr "Warning"
+
+msgid "INF_DONE"
+msgstr " done"
+
+msgid "WRN_STUDY_LOCKED"
+msgstr "Current Study is locked"
+
+msgid "WRN_NO_AVAILABLE_DATA"
+msgstr "No Available data in selection"
+
+msgid "ERR_CANT_FIND_VISU_COMPONENT"
+msgstr "Failed to activate VISU engine!"
+
+msgid "ERR_CANT_FIND_MED_COMPONENT"
+msgstr "Failed to activate MED engine!"
+
+msgid "ERR_CANT_BUILD_PRESENTATION"
+msgstr "The object can't be built"
+
+msgid "ERR_CANT_CREATE_ACTOR"
+msgstr "Can't create actor for this presentation"
+
+# Preferences for VISU module (VisuGUI.cxx)
+
+msgid "VISU_SCALAR_BAR"
+msgstr "Scalar Bar"
+
+msgid "VISU_FONT"
+msgstr "Font"
+
+msgid "VISU_FONT_ARIAL"
+msgstr "Arial"
+
+msgid "VISU_FONT_COURIER"
+msgstr "Courier"
+
+msgid "VISU_FONT_TIMES"
+msgstr "Times"
+
+msgid "VISU_TITLE"
+msgstr "Title"
+
+msgid "VISU_LABELS"
+msgstr "Labels"
+
+msgid "VISU_COLORS_AND_LABELS"
+msgstr "Colors && Labels"
+
+msgid "VISU_NB_COLORS"
+msgstr "Nb. of colors"
+
+msgid "VISU_NB_LABELS"
+msgstr "Nb. of labels"
+
+msgid "VISU_ORIENTATION"
+msgstr "Orientation"
+
+msgid "VISU_VERTICAL"
+msgstr "Vertical"
+
+msgid "VISU_HORIZONTAL"
+msgstr "Horizontal"
+
+msgid "VISU_ORIGIN_AND_SIZE"
+msgstr "Origin && Size"
+
+msgid "VISU_X"
+msgstr "X:"
+
+msgid "VISU_Y"
+msgstr "Y:"
+
+msgid "VISU_WIDTH"
+msgstr "Width:"
+
+msgid "VISU_HEIGHT"
+msgstr "Height:"
+
+msgid "VISU_PREF_SECOND_TAB"
+msgstr "Scalar range, Sweep, MED import, Shading"
+
+msgid "VISU_SCALAR_RANGE"
+msgstr "Scalar range"
+
+msgid "VISU_SCALAR_MODE"
+msgstr "Scalar mode"
+
+msgid "VISU_MODULUS"
+msgstr "Modulus"
+
+msgid "VISU_COMPONENT"
+msgstr "Component"
+
+msgid "VISU_LOGARITHMIC_SCALING"
+msgstr "Logarithmic scaling"
+
+msgid "VISU_RANGE_TO_USE"
+msgstr "Range to use"
+
+msgid "VISU_FIELD_RANGE"
+msgstr "Field range"
+
+msgid "VISU_IMPOSED_RANGE"
+msgstr "Imposed range"
+
+msgid "VISU_MINMAX_IMPOSED_RANGE"
+msgstr "Min and max for imposed range"
+
+msgid "VISU_MIN"
+msgstr "Min:"
+
+msgid "VISU_MAX"
+msgstr "Max:"
+
+msgid "VISU_SWEEPING_PREF"
+msgstr "Sweeping preferences"
+
+msgid "VISU_TIME_STEP"
+msgstr "Time step(second)"
+
+msgid "VISU_NB_CYCLES"
+msgstr "Number of cycles"
+
+msgid "VISU_NB_STEPS"
+msgstr "Number of steps"
+
+msgid "VISU_PREF_MED_IMPORT"
+msgstr "MED files import"
+
+msgid "VISU_PREF_MED_FULL_LOAD"
+msgstr "Full MED loading"
+
+msgid "VISU_PREF_REPRESENT_PROPS"
+msgstr "Representation properties"
+
+msgid "VISU_PREF_SHADING"
+msgstr "Use Shading"
+
+#: VisuGUI.cxx
+
+msgid "VisuGUI::MEN_IMPORT_FROM_FILE"
+msgstr "Import from File"
+
+msgid "VisuGUI::MEN_EXPLORE_MED_FILE"
+msgstr "Explore MED File"
+
+msgid "VisuGUI::MEN_IMPORT_TABLE"
+msgstr "Import table from File"
+
+msgid "VisuGUI::MEN_SCALAR_MAP"
+msgstr "Scalar Map"
+
+msgid "VisuGUI::MEN_DEFORMED_SHAPE"
+msgstr "Deformed Shape"
+
+msgid "VisuGUI::MEN_VISUALIZATION"
+msgstr "Visualization"
+
+msgid "VisuGUI::TOOL_VISUALISATION"
+msgstr "Visualization Toolbar"
+
+msgid "VisuGUI::TOOL_REPRESENTATION"
+msgstr "Representation Toolbar"
+
+msgid "VisuGUI::MEN_SHOW_ANIMATION"
+msgstr "Show..."
+
+msgid "VisuGUI::MEN_ANIMATION"
+msgstr "Animation..."
+
+msgid "VisuGUI::MEN_CELL_COLOR"
+msgstr "Cell color"
+
+msgid "VisuGUI::MEN_CLEAR_CONTAINER"
+msgstr "Clear"
+
+msgid "VisuGUI::MEN_COLOR"
+msgstr "Color..."
+
+msgid "VisuGUI::MEN_CREATE_CURVES"
+msgstr "Create Curves"
+
+msgid "VisuGUI::MEN_CREATE_MANY_PRS"
+msgstr "Create Presentations"
+
+msgid "VisuGUI::MEN_CREATE_PLOT2D"
+msgstr "Create Plot2d View"
+
+msgid "VisuGUI::MEN_CREATE_PRS"
+msgstr "Create Presentation"
+
+msgid "VisuGUI::MEN_CREATE_TABLE"
+msgstr "Create Table"
+
+msgid "VisuGUI::MEN_CURVE_PROPS"
+msgstr "Properties..."
+
+msgid "VisuGUI::MEN_CUT_LINES"
+msgstr "Cut Lines"
+
+msgid "VisuGUI::MEN_CUT_PLANES"
+msgstr "Cut Planes"
+
+msgid "VisuGUI::MEN_DISPLAY"
+msgstr "Display"
+
+msgid "VisuGUI::MEN_DISPLAY_ONLY"
+msgstr "Display Only"
+
+msgid "VisuGUI::MEN_EDGE_COLOR"
+msgstr "Edge Color"
+
+msgid "VisuGUI::MEN_EDIT_CONTAINER"
+msgstr "Edit..."
+
+msgid "VisuGUI::MEN_EDIT_PRS"
+msgstr "Edit..."
+
+msgid "VisuGUI::MEN_ERASE"
+msgstr "Erase"
+
+msgid "VisuGUI::MEN_EXPORT_TABLE"
+msgstr "Export Table"
+
+msgid "VisuGUI::MEN_INSIDEFRAME"
+msgstr "Insideframe"
+
+msgid "VisuGUI::MEN_ISO_SURFACES"
+msgstr "Iso Surfaces"
+
+msgid "VisuGUI::MEN_LINE_WIDTH"
+msgstr "Line Width"
+
+msgid "VisuGUI::MEN_OPACITY"
+msgstr "Opacity"
+
+msgid "VisuGUI::MEN_POINTS"
+msgstr "Points"
+
+msgid "VisuGUI::MEN_PROPERTIES"
+msgstr "Properties"
+
+msgid "VisuGUI::MEN_RENAME"
+msgstr "Rename..."
+
+msgid "VisuGUI::MEN_RENAME_CONTAINER"
+msgstr "Rename..."
+
+msgid "VisuGUI::MEN_RENAME_TABLE"
+msgstr "Rename..."
+
+msgid "VisuGUI::MEN_REPRESENTATION"
+msgstr "Representation"
+
+msgid "VisuGUI::MEN_SELECTION_INFO"
+msgstr "Selection Info..."
+
+msgid "VisuGUI::MEN_SHOW_TABLE"
+msgstr "Show Table"
+
+msgid "VisuGUI::MEN_SHRINK"
+msgstr "Shrink"
+
+msgid "VisuGUI::MEN_SHADING"
+msgstr "Shading On"
+
+msgid "VisuGUI::MEN_NOSHADING"
+msgstr "Shading Off"
+
+msgid "VisuGUI::MEN_STREAM_LINES"
+msgstr "Stream Lines"
+
+msgid "VisuGUI::MEN_SURFACE"
+msgstr "Surface"
+
+msgid "VisuGUI::MEN_SURFACEFRAME"
+msgstr "Surfaceframe"
+
+msgid "VisuGUI::MEN_SWEEP"
+msgstr "Sweep"
+
+msgid "VisuGUI::MEN_UNSHRINK"
+msgstr "Unshrink"
+
+msgid "VisuGUI::MEN_VECTORS"
+msgstr "Vectors"
+
+msgid "VisuGUI::MEN_WIREFRAME"
+msgstr "Wireframe"
+
+msgid "VisuGUI::MEN_DELETE_VIEWPARAMS"
+msgstr "Delete view parameters"
+
+msgid "VisuGUI::MEN_RESTORE_VIEWPARAMS"
+msgstr "Restore view parameters"
+
+msgid "VisuGUI::MEN_SAVE_VIEWPARAMS"
+msgstr "Save view parameters"
+
+msgid "VisuGUI::MEN_COPY_PRS"
+msgstr "Copy"
+
+msgid "VisuGUI::MEN_SELECTION"
+msgstr "Selection"
+
+msgid "VisuGUI::MEN_DISPLAY_SELECTION"
+msgstr "Display Selection"
+
+msgid "VisuGUI::MEN_ERASE_ALL"
+msgstr "Erase All"
+
+msgid "VisuGUI::MEN_SCALING"
+msgstr "Scaling"
+
+msgid "VisuGUI::MEN_CUBE_AXES"
+msgstr "Graduated axes"
+
+msgid "VisuGUI::MEN_GLOBAL_SELECTION"
+msgstr "Global Selection"
+
+msgid "VisuGUI::MEN_PARTIAL_SELECTION"
+msgstr "Partial Selection"
+
+msgid "VisuGUI::MEN_IMPORT_MED_STRUCTURE"
+msgstr "Import Structure"
+
+msgid "VisuGUI::MEN_IMPORT_MED_TIMESTAMP"
+msgstr "Import TimeStamp"
+
+msgid "VisuGUI::MEN_IMPORT_MED_FIELD"
+msgstr "Import Field"
+
+msgid "VisuGUI::MEN_DELETE_OBJS"
+msgstr "Delete"
+
+msgid "VisuGUI::MEN_PLOT_3D"
+msgstr "Plot3D"
+
+msgid "VisuGUI::MEN_TRANSLATE_PRS"
+msgstr "Translate Presentation"
+
+msgid "VisuGUI::MEN_CLIPPING"
+msgstr "Clipping planes"
+
+msgid "VisuGUI::MEN_MERGE_SCALAR_BARS"
+msgstr "Merge Scalar Range"
+
+msgid "VisuGUI::MEN_FREE_SCALAR_BARS"
+msgstr "Use Field Range"
+
+msgid "VisuGUI::MEN_ARRANGE_ACTORS"
+msgstr "Arrange Actors"
+
+
+msgid "VisuGUI::ERR_ERROR_IN_THE_FILE"
+msgstr "Error in the file"
+
+msgid "VisuGUI::ERR_ERROR_DURING_EXPORT"
+msgstr "Error has been occured during exporting to file"
+
+msgid "VisuGUI::ERR_ACTIVATE_VIEW3D"
+msgstr "Please activate 3D view before"
+
+
+msgid "VisuGUI::FLT_ALL_FILES"
+msgstr "All Files (*.*)"
+
+msgid "VisuGUI::FLT_MED_FILES"
+msgstr "MED Files (*.med)"
+
+msgid "VisuGUI::FLT_TABLE_FILES"
+msgstr "Tables (*.xls *.txt *.tab)"
+
+
+msgid "VisuGUI::DLG_OPACITY_TITLE"
+msgstr "Opacity"
+
+msgid "VisuGUI::DLG_OPACITY_CMT1"
+msgstr "Set value between"
+
+msgid "VisuGUI::DLG_OPACITY_CMT2"
+msgstr "0 (transparent) and 100 (opaque)"
+
+msgid "VisuGUI::DLG_LINEWIDTH_TITLE"
+msgstr "Line Width"
+
+msgid "VisuGUI::DLG_LINEWIDTH_CMT1"
+msgstr "Set value between"
+
+msgid "VisuGUI::DLG_LINEWIDTH_CMT2"
+msgstr "1 (thin) and 10 (thick)"
+
+
+#: VisuGUI_CursorDlg.cxx
+
+msgid "VisuGUI_CursorDlg::&OK"
+msgstr ""
+
+msgid "VisuGUI_CursorDlg::&Cancel"
+msgstr ""
+
+msgid "VisuGUI_CursorDlg::TextLabel1"
+msgstr "Set value between"
+
+msgid "VisuGUI_CursorDlg::TextLabel2"
+msgstr "minimal and maximal"
+
+
+#: VisuGUI_CutLinesDlg.cxx
+
+msgid "VisuGUI_CutLinesDlg::LBL_INVERT_CURVES"
+msgstr "Invert all curves"
+
+msgid "VisuGUI_CutLinesDlg::LBL_GENERATE_CURVES"
+msgstr "Generate Curves"
+
+msgid "VisuGUI_CutLinesDlg::LBL_GENERATE_TABLE"
+msgstr "Generate Data Table"
+
+msgid "VisuGUI_CutLinesDlg::LBL_LINES_CUT"
+msgstr "Cut planes"
+#?msgstr "Cut lines"
+
+msgid "VisuGUI_CutLinesDlg::LBL_LINES_PLANE"
+msgstr "Plane of lines"
+
+msgid "VisuGUI_CutLinesDlg::LBL_NB_PLANS"
+msgstr "Number of planes:"
+
+msgid "VisuGUI_CutLinesDlg::LBL_POS"
+msgstr "Displacement (0...1):"
+
+msgid "VisuGUI_CutLinesDlg::LBL_ROTATION"
+msgstr "Rotations"
+
+msgid "VisuGUI_CutLinesDlg::LBL_ROT_X"
+msgstr "Rotation around X (Y to Z):"
+
+msgid "VisuGUI_CutLinesDlg::LBL_ROT_Y"
+msgstr "Rotation around Y (Z to X):"
+
+msgid "VisuGUI_CutLinesDlg::LBL_ROT_Z"
+msgstr "Rotation around Z (X to Y):"
+
+msgid "VisuGUI_CutLinesDlg::LBL_SHOW_PREVIEW"
+msgstr "Show preview"
+
+msgid "VisuGUI_CutLinesDlg::TXT_ORIENTATION"
+msgstr "Orientation"
+
+msgid "VisuGUI_CutLinesDlg::BASE_PLANE_POS"
+msgstr "Base plane position"
+
+msgid "VisuGUI_CutLinesDlg::SET_DEFAULT"
+msgstr "Set default"
+
+msgid "VisuGUI_CutLinesDlg::PARALLEL_XOY"
+msgstr "|| X-Y"
+
+msgid "VisuGUI_CutLinesDlg::PARALLEL_YOZ"
+msgstr "|| Y-Z"
+
+msgid "VisuGUI_CutLinesDlg::PARALLEL_ZOX"
+msgstr "|| Z-X"
+
+
+#: VisuGUI_CutPlanesDlg.cxx
+
+msgid "VisuGUI_CutPlanesDlg::&Cancel"
+msgstr ""
+
+msgid "VisuGUI_CutPlanesDlg::&OK"
+msgstr ""
+
+msgid "VisuGUI_CutPlanesPane::PARALLEL_XOY"
+msgstr "// X-Y"
+
+msgid "VisuGUI_CutPlanesPane::PARALLEL_YOZ"
+msgstr "// Y-Z"
+
+msgid "VisuGUI_CutPlanesPane::PARALLEL_ZOX"
+msgstr "// Z-X"
+
+msgid "VisuGUI_CutPlanesPane::LBL_POS"
+msgstr "Displacement (0...1):"
+
+msgid "VisuGUI_CutPlanesPane::LBL_SHOW_PREVIEW"
+msgstr "Show preview"
+
+msgid "VisuGUI_CutPlanesPane::LBL_NB_PLANS"
+msgstr "Number of planes:"
+
+msgid "VisuGUI_CutPlanesPane::TXT_ORIENTATION"
+msgstr "Orientation"
+
+msgid "VisuGUI_CutPlanesPane::LBL_ROT_X"
+msgstr "Rotation around X (Y to Z):"
+
+msgid "VisuGUI_CutPlanesPane::LBL_ROT_Y"
+msgstr "Rotation around Y (Z to X):"
+
+msgid "VisuGUI_CutPlanesPane::LBL_ROT_Z"
+msgstr "Rotation around Z (X to Y):"
+
+msgid "VisuGUI_CutPlanesPane::LBL_ROTATION"
+msgstr "Rotations"
+
+
+#: VisuGUI_DeformedShapeDlg.cxx
+
+msgid "VisuGUI_DeformedShapeDlg::&Cancel"
+msgstr ""
+
+msgid "VisuGUI_DeformedShapeDlg::&OK"
+msgstr ""
+
+msgid "VisuGUI_DeformedShapeDlg::DLG_TITLE"
+msgstr "Deformed Shape"
+
+msgid "VisuGUI_DeformedShapeDlg::DEFORMED_SHAPE_TAB"
+msgstr "Deformed Shape"
+
+msgid "VisuGUI_DeformedShapeDlg::SCALAR_BAR_TAB"
+msgstr "Scalar Bar"
+
+msgid "VisuGUI_DeformedShapeDlg::MAGNITUDE_COLORING"
+msgstr "Magnitude coloring"
+
+msgid "VisuGUI_DeformedShapeDlg::SCALE_FACTOR"
+msgstr "Scale Factor:"
+
+
+#: VisuGUI_EditContainerDlg.cxx
+
+msgid "VisuGUI_EditContainerDlg::&Cancel"
+msgstr ""
+
+msgid "VisuGUI_EditContainerDlg::&OK"
+msgstr ""
+
+msgid "VisuGUI_EditContainerDlg::LBL_STUDY"
+msgstr "Study"
+
+msgid "VisuGUI_EditContainerDlg::LBL_CONTAINER"
+msgstr "Container"
+
+msgid "VisuGUI_EditContainerDlg::TXT_TABLE"
+msgstr "Table"
+
+msgid "VisuGUI_EditContainerDlg::TXT_CURVE"
+msgstr "Curve"
+
+
+#: VisuGUI_FileDlg.cxx
+
+msgid "VisuGUI_FileDlg::FULL_LOAD"
+msgstr "Full loading for current file"
+
+
+#: VisuGUI_IsoSurfacesDlg.cxx
+
+msgid "VisuGUI_IsoSurfacesDlg::&OK"
+msgstr ""
+
+msgid "VisuGUI_IsoSurfacesDlg::&Cancel"
+msgstr ""
+
+msgid "VisuGUI_IsoSurfPane::MSG_MINMAX_VALUES"
+msgstr "Min value can not be higher or equal to Max value"
+
+msgid "VisuGUI_IsoSurfPane::MAX_VALUE"
+msgstr "Maximum value:"
+
+msgid "VisuGUI_IsoSurfPane::MIN_VALUE"
+msgstr "Minimum value:"
+
+msgid "VisuGUI_IsoSurfPane::NB_SURFACES"
+msgstr "Number of surfaces:"
+
+msgid "VisuGUI_IsoSurfacesDlg::DEFINE_ISOSURFACES"
+msgstr "Iso Surfaces Definition"
+
+
+#: VisuGUI_NonIsometricDlg.cxx
+
+msgid "VisuGUI_NonIsometricDlg::O&K"
+msgstr ""
+
+msgid "VisuGUI_NonIsometricDlg::&Apply"
+msgstr ""
+
+msgid "VisuGUI_NonIsometricDlg::&Cancel"
+msgstr ""
+
+msgid "VisuGUI_NonIsometricDlg::&Reset"
+msgstr ""
+
+msgid "VisuGUI_NonIsometricDlg::DLG_TITLE"
+msgstr "Scaling"
+
+msgid "VisuGUI_NonIsometricDlg::LBL_X"
+msgstr "X :"
+
+msgid "VisuGUI_NonIsometricDlg::LBL_Y"
+msgstr "Y :"
+
+msgid "VisuGUI_NonIsometricDlg::LBL_Z"
+msgstr "Z :"
+
+
+#: VisuGUI_ScalarBarDlg.cxx
+
+msgid "VisuGUI_ScalarBarDlg::&OK"
+msgstr ""
+
+msgid "VisuGUI_ScalarBarDlg::&Cancel"
+msgstr ""
+
+msgid "VisuGUI_ScalarBarDlg::DLG_PREF_TITLE"
+msgstr "Scalar Bar Preferences"
+
+msgid "VisuGUI_ScalarBarDlg::DLG_PROP_TITLE"
+msgstr "Scalar Bar Properties"
+
+msgid "VisuGUI_ScalarBarPane::SCALAR_RANGE_GRP"
+msgstr "Scalar range"
+
+msgid "VisuGUI_ScalarBarPane::LOGARITHMIC_SCALING"
+msgstr "Logarithmic scaling"
+
+msgid "VisuGUI_ScalarBarPane::FIELD_RANGE_BTN"
+msgstr "Use field range"
+
+msgid "VisuGUI_ScalarBarPane::IMPOSED_RANGE_BTN"
+msgstr "Use imposed range"
+
+msgid "VisuGUI_ScalarBarPane::LBL_MIN"
+msgstr "Min:"
+
+msgid "VisuGUI_ScalarBarPane::LBL_MAX"
+msgstr "Max:"
+
+msgid "VisuGUI_ScalarBarPane::COLORS_LABELS_GRP"
+msgstr "Colors and labels"
+
+msgid "VisuGUI_ScalarBarPane::LBL_NB_COLORS"
+msgstr "Nb. of colors:"
+
+msgid "VisuGUI_ScalarBarPane::LBL_NB_LABELS"
+msgstr "Nb. of labels:"
+
+msgid "VisuGUI_ScalarBarPane::ORIENTATION_GRP"
+msgstr "Orientation"
+
+msgid "VisuGUI_ScalarBarPane::VERTICAL_BTN"
+msgstr "Vertical"
+
+msgid "VisuGUI_ScalarBarPane::HORIZONTAL_BTN"
+msgstr "Horizontal"
+
+msgid "VisuGUI_ScalarBarPane::ORIGIN_GRP"
+msgstr "Origin"
+
+msgid "VisuGUI_ScalarBarPane::LBL_X"
+msgstr "X:"
+
+msgid "VisuGUI_ScalarBarPane::LBL_Y"
+msgstr "Y:"
+
+msgid "VisuGUI_ScalarBarPane::LBL_SHOW_PREVIEW"
+msgstr "Show preview"
+
+msgid "VisuGUI_ScalarBarPane::DIMENSIONS_GRP"
+msgstr "Dimensions"
+
+msgid "VisuGUI_ScalarBarPane::LBL_WIDTH"
+msgstr "Width:"
+
+msgid "VisuGUI_ScalarBarPane::LBL_HEIGHT"
+msgstr "Height:"
+
+msgid "VisuGUI_ScalarBarPane::SAVE_DEFAULT_CHK"
+msgstr "Save as default values"
+
+msgid "VisuGUI_ScalarBarPane::MSG_MINMAX_VALUES"
+msgstr "Min value can not be higher or equal to Max value"
+
+msgid "VisuGUI_ScalarBarPane::WRN_LOGARITHMIC_RANGE"
+msgstr "Logarithmic scaling: use imposed range values > 0"
+
+msgid "VisuGUI_ScalarBarPane::WRN_LOGARITHMIC_FIELD_RANGE"
+msgstr "Logarithmic scaling: field range contains negative values, use imposed range instead"
+
+msgid "VisuGUI_TextPrefDlg::&OK"
+msgstr ""
+
+msgid "VisuGUI_TextPrefDlg::&Cancel"
+msgstr ""
+
+msgid "VisuGUI_TextPrefDlg::TIT_TEXT_PREF"
+msgstr "Text property"
+
+msgid "VisuGUI_TextPrefDlg::LBL_TITLE"
+msgstr "Title"
+
+msgid "VisuGUI_TextPrefDlg::LBL_BOLD"
+msgstr "Bold"
+
+msgid "VisuGUI_TextPrefDlg::LBL_ITALIC"
+msgstr "Italic"
+
+msgid "VisuGUI_TextPrefDlg::LBL_SHADOW"
+msgstr "Shadow"
+
+msgid "VisuGUI_TextPrefDlg::LBL_LABELS"
+msgstr "Labels"
+
+
+#: VisuGUI_StreamLinesDlg.cxx
+
+msgid "VisuGUI_StreamLinesDlg::&OK"
+msgstr ""
+
+msgid "VisuGUI_StreamLinesDlg::&Cancel"
+msgstr ""
+
+msgid "VisuGUI_StreamLinesDlg::DLG_TITLE"
+msgstr "Stream lines Preferences"
+
+msgid "VisuGUI_StreamLinesDlg::SOURCE_GRP"
+msgstr "Source"
+
+msgid "VisuGUI_StreamLinesDlg::LBL_SOURCE_TYPE"
+msgstr "Source type"
+
+msgid "VisuGUI_StreamLinesDlg::LBL_USED_POINTS"
+msgstr "Used points (0..1)"
+
+msgid "VisuGUI_StreamLinesDlg::LBL_STEP_LENGTH"
+msgstr "Step Length"
+
+msgid "VisuGUI_StreamLinesDlg::LBL_INTEGRATION_STEP"
+msgstr "Integration Step"
+
+msgid "VisuGUI_StreamLinesDlg::LBL_PROPAGATION_TIME"
+msgstr "Propagation Time"
+
+msgid "VisuGUI_StreamLinesDlg::LBL_DIRECTION"
+msgstr "Direction"
+
+msgid "VisuGUI_StreamLinesDlg::MAGNITUDE_COLORING_CHK"
+msgstr "Magnitude coloring"
+
+msgid "VisuGUI_StreamLinesDlg::USE_COLOR_BTN"
+msgstr "Use Color"
+
+
+#: VisuGUI_SweepPrefDlg.cxx
+
+msgid "VisuGUI_SweepPrefDlg::&OK"
+msgstr ""
+
+msgid "VisuGUI_SweepPrefDlg::&Cancel"
+msgstr ""
+
+msgid "VisuGUI_SweepPrefDlg::DLG_TITLE"
+msgstr "Sweeping Preferences"
+
+msgid "VisuGUI_SweepPrefDlg::LBL_TIME_STEP"
+msgstr "Time step (second):"
+
+msgid "VisuGUI_SweepPrefDlg::LBL_NB_CYCLES"
+msgstr "Number of cycles:"
+
+msgid "VisuGUI_SweepPrefDlg::LBL_NB_STEPS"
+msgstr "Number of steps:"
+
+
+#: VisuGUI_TimeAnimation.cxx
+
+msgid "VisuGUI_TimeAnimationDlg::&OK"
+msgstr ""
+
+msgid "VisuGUI_TimeAnimationDlg::ERROR"
+msgstr "Error"
+
+msgid "VisuGUI_TimeAnimationDlg::MSG_NO_ANIMATIONDATA"
+msgstr "There is no data for animation"
+
+
+#: VisuGUI_VectorsDlg.cxx
+
+msgid "VisuGUI_VectorsDlg::&OK"
+msgstr ""
+
+msgid "VisuGUI_VectorsDlg::&Cancel"
+msgstr ""
+
+msgid "VisuGUI_VectorsDlg::DLG_TITLE"
+msgstr "Vector Field Representation"
+
+msgid "VisuGUI_VectorsDlg::LBL_SCALE_FACTOR"
+msgstr "Scale factor:"
+
+msgid "VisuGUI_VectorsDlg::LBL_LINE_WIDTH"
+msgstr "Line width:"
+
+msgid "VisuGUI_VectorsDlg::MAGNITUDE_COLORING_CHK"
+msgstr "Magnitude coloring"
+
+msgid "VisuGUI_VectorsDlg::SEL_COLOR_BTN"
+msgstr "Select Color"
+
+msgid "VisuGUI_VectorsDlg::USE_GLYPHS_CHK"
+msgstr "Use glyphs"
+
+msgid "VisuGUI_VectorsDlg::GLYPH_TYPE_GRP"
+msgstr "Glyph type"
+
+msgid "VisuGUI_VectorsDlg::ARROWS_BTN"
+msgstr "Arrows"
+
+msgid "VisuGUI_VectorsDlg::CONES2_BTN"
+msgstr "Cones (2)"
+
+msgid "VisuGUI_VectorsDlg::CONES6_BTN"
+msgstr "Cones (6)"
+
+msgid "VisuGUI_VectorsDlg::GLYPH_POSITION_GRP"
+msgstr "Glyph position"
+
+msgid "VisuGUI_VectorsDlg::TAIL_BTN"
+msgstr "Tail"
+
+msgid "VisuGUI_VectorsDlg::CENTER_BTN"
+msgstr "Center"
+
+msgid "VisuGUI_VectorsDlg::HEAD_BTN"
+msgstr "Head"
+
+
+#: VisuGUI_NameDlg.cxx
+
+msgid "VisuGUI_NameDlg::TLT_RENAME"
+msgstr "Rename"
+
+msgid "VisuGUI_NameDlg::NAME_LBL"
+msgstr "Name: "
+
+#: VisuGUI_TableDlg.cxx
+
+msgid "VisuGUI_TableDlg::VIEW_TABLE_TLT"
+msgstr "View Table"
+
+msgid "VisuGUI_TableDlg::EDIT_TABLE_TLT"
+msgstr "Edit Table"
+
+msgid "VisuGUI_TableDlg::TABLE_OF_INTEGER_TLT"
+msgstr "Table of integer"
+
+msgid "VisuGUI_TableDlg::TABLE_OF_REAL_TLT"
+msgstr "Table of real"
+
+msgid "VisuGUI_TableDlg::ERR_TABLE_NOT_AVAILABLE"
+msgstr "Table is not available"
+
+msgid "VisuGUI_TableWidget::UNITS_TLT"
+msgstr "Units"
+
+msgid "VisuGUI_TableWidget::ADD_ROW_BTN"
+msgstr "Add Row"
+
+msgid "VisuGUI_TableWidget::REMOVE_ROW_BTN"
+msgstr "Remove Row(s)"
+
+msgid "VisuGUI_TableWidget::ADD_COLUMN_BTN"
+msgstr "Add Column"
+
+msgid "VisuGUI_TableWidget::REMOVE_COLUMN_BTN"
+msgstr "Remove Column(s)"
+
+msgid "VisuGUI_TableWidget::ADJUST_CELLS_BTN"
+msgstr "Adjust Cells"
+
+msgid "VisuGUI_TableWidget::SELECT_ALL_BTN"
+msgstr "Select All"
+
+msgid "VisuGUI_TableWidget::CLEAR_BTN"
+msgstr "Clear"
+
+msgid "VisuGUI_TableWidget::SET_TITLE_TLT"
+msgstr "Set title"
+
+msgid "VisuGUI_TableWidget::TITLE_LBL"
+msgstr "Title:"
+
+# -------------- Clipping --------------
+
+#Title
+msgid "VisuGUI_ClippingDlg::TITLE"
+msgstr "Change Clipping"
+
+msgid "VisuGUI_ClippingDlg::GRP_PLANES"
+msgstr "Clipping planes"
+
+msgid "VisuGUI_ClippingDlg::BUT_NEW"
+msgstr "New"
+
+msgid "VisuGUI_ClippingDlg::BUT_DELETE"
+msgstr "Delete"
+
+msgid "VisuGUI_ClippingDlg::GRP_PARAMETERS"
+msgstr "Parameters"
+
+msgid "VisuGUI_ClippingDlg::TAB_NON_STRUCTURED"
+msgstr "Non structured"
+
+msgid "VisuGUI_ClippingDlg::TAB_IJK_STRUCTURED"
+msgstr "IJK (Structured)"
+
+msgid "VisuGUI_ClippingDlg::SHOW_PREVIEW_CHK"
+msgstr "Show preview"
+
+msgid "VisuGUI_ClippingDlg::AUTO_APPLY_CHK"
+msgstr "Auto Apply"
+
+msgid "VisuGUI_ClippingDlg::PARALLEL_XOY_COMBO_ITEM"
+msgstr "|| X-Y"
+
+msgid "VisuGUI_ClippingDlg::PARALLEL_YOZ_COMBO_ITEM"
+msgstr "|| Y-Z"
+
+msgid "VisuGUI_ClippingDlg::PARALLEL_ZOX_COMBO_ITEM"
+msgstr "|| Z-X"
+
+msgid "VisuGUI_ClippingDlg::LBL_ORIENTATION"
+msgstr "Orientation"
+
+msgid "VisuGUI_ClippingDlg::LBL_DISTANCE"
+msgstr "Distance"
+
+msgid "VisuGUI_ClippingDlg::LBL_ROTATION_YZ"
+msgstr "Rotation around X (Y to Z):"
+
+msgid "VisuGUI_ClippingDlg::LBL_ROTATION_ZY"
+msgstr "Rotation around X (Z to Y):"
+
+msgid "VisuGUI_ClippingDlg::LBL_ROTATION_ZX"
+msgstr "Rotation around Y (Z to X):"
+
+msgid "VisuGUI_ClippingDlg::LBL_ROTATION_XZ"
+msgstr "Rotation around Y (X to Z):"
+
+msgid "VisuGUI_ClippingDlg::LBL_ROTATION_XY"
+msgstr "Rotation around Z (X to Y):"
+
+msgid "VisuGUI_ClippingDlg::LBL_ROTATION_YX"
+msgstr "Rotation around Z (Y to X):"
+
+msgid "VisuGUI_ClippingDlg::GRP_IJK_AXIS"
+msgstr "Axis"
+
+msgid "VisuGUI_ClippingDlg::I_RADIO_BTN"
+msgstr "I"
+
+msgid "VisuGUI_ClippingDlg::J_RADIO_BTN"
+msgstr "J"
+
+msgid "VisuGUI_ClippingDlg::K_RADIO_BTN"
+msgstr "K"
+
+msgid "VisuGUI_ClippingDlg::LBL_IJK_INDEX"
+msgstr "Index (from 0 to ...)"
+
+msgid "VisuGUI_ClippingDlg::LBL_IJK_INDEX_TO_arg"
+msgstr "Index (from 0 to %1) "
+
+msgid "VisuGUI_ClippingDlg::REVERSE_NORMAL_CHK"
+msgstr "Reverse normal"
+
+msgid "VisuGUI_ClippingDlg::PLANES_COMBO_ITEM_i"
+msgstr "Plane# %1"
+
+msgid "VisuGUI_ClippingDlg::PLANES_COMBO_ITEM_no"
+msgstr "No planes"
+
+msgid "VisuGUI_ClippingDlg::WRN_EMPTY_RESULTING_PRS"
+msgstr "Impossible to use given clipping planes because of VTK restrictions. \n Please, provide non-empty resulting presentation."
+
+# -------------- Plot 3D --------------
+
+msgid "VisuGUI_Plot3DDlg::TITLE"
+msgstr "Plot3D Definition"
+
+msgid "VisuGUI_Plot3DDlg::PLOT3D_TAB_TITLE"
+msgstr "Plot 3D"
+
+msgid "VisuGUI_Plot3DDlg::SCALAR_BAR_TAB_TITLE"
+msgstr "Scalar Bar"
+
+msgid "VisuGUI_Plot3DPane::ORIENTATION"
+msgstr "Orientation"
+
+msgid "VisuGUI_Plot3DPane::ROTATIONS"
+msgstr "Rotations"
+
+msgid "VisuGUI_Plot3DPane::ROTATION_X"
+msgstr "Rotation around X (Y to Z):"
+
+msgid "VisuGUI_Plot3DPane::ROTATION_Y"
+msgstr "Rotation around Y (Z to X):"
+
+msgid "VisuGUI_Plot3DPane::ROTATION_Z"
+msgstr "Rotation around Z (X to Y):"
+
+msgid "VisuGUI_Plot3DPane::POSITION"
+msgstr "Position"
+
+msgid "VisuGUI_Plot3DPane::POSITION_VALUE"
+msgstr "Value: "
+
+msgid "VisuGUI_Plot3DPane::RELATIVE"
+msgstr "Relative"
+
+msgid "VisuGUI_Plot3DPane::SCALE"
+msgstr "Scale Factor:"
+
+msgid "VisuGUI_Plot3DPane::PRESENTATION_TYPE"
+msgstr "Presentation type"
+
+msgid "VisuGUI_Plot3DPane::SURFACE"
+msgstr "Surface"
+
+msgid "VisuGUI_Plot3DPane::CONTOUR"
+msgstr "Contour"
+
+msgid "VisuGUI_Plot3DPane::NUMBER_CONTOURS"
+msgstr "Number of contours:"
+
+msgid "VisuGUI_Plot3DPane::PREVIEW"
+msgstr "Preview cutting plane"
+
+# --------------------------------------
+
+msgid "TIT_OFFSETDLG"
+msgstr "Translate Presentation"
+
+msgid "BTN_RESET"
+msgstr "Reset"
+
+# --------------------------------------
+
+msgid "VisuGUI_CubeAxesDlg::CAPTION"
+msgstr "Graduated axes"
+
+msgid "VisuGUI_AxisWg::AXIS_NAME"
+msgstr "Axis name"
+
+msgid "VisuGUI_AxisWg::IS_VISIBLE"
+msgstr "Is visible"
+
+msgid "VisuGUI_CubeAxesDlg::X_AXIS"
+msgstr "X axis"
+
+msgid "VisuGUI_CubeAxesDlg::Y_AXIS"
+msgstr "Y axis"
+
+msgid "VisuGUI_CubeAxesDlg::Z_AXIS"
+msgstr "Z axis"
+
+msgid "VisuGUI_AxisWg::NAME"
+msgstr "Name"
+
+msgid "VisuGUI_AxisWg::FONT"
+msgstr "Font"
+
+msgid "VisuGUI_AxisWg::LABELS"
+msgstr "Labels"
+
+msgid "VisuGUI_AxisWg::NUMBER"
+msgstr "Number"
+
+msgid "VisuGUI_AxisWg::OFFSET"
+msgstr "Offset"
+
+msgid "VisuGUI_AxisWg::TICK_MARKS"
+msgstr "Tick marks"
+
+msgid "VisuGUI_AxisWg::LENGTH"
+msgstr "Length"
+
+msgid "VisuGUI_FontWg::ARIAL"
+msgstr "Arial"
+
+msgid "VisuGUI_FontWg::COURIER"
+msgstr "Courier"
+
+msgid "VisuGUI_FontWg::TIMES"
+msgstr "Times"
+
+msgid "VisuGUI_FontWg::BOLD"
+msgstr "Bold"
+
+msgid "VisuGUI_FontWg::ITALIC"
+msgstr "Italic"
+
+msgid "VisuGUI_FontWg::SHADOW"
+msgstr "Shadow"
+
+msgid "VisuGUI_CubeAxesDlg::IS_VISIBLE"
+msgstr "Is visible"
+
+
+#: VisuGUI_SetupPlot2dDlg.cxx:71
+msgid "ATTRIBUTES_LBL"
+msgstr "Attributes"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:68
+msgid "AXIS_LBL"
+msgstr "Axis"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:69
+msgid "DATA_LBL"
+msgstr "Data"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:49
+msgid "TLT_SETUP_PLOT2D"
+msgstr "Setup Plot 2d"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:70
+msgid "UNITS_LBL"
+msgstr "Units"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:445
+msgid "VisuGUI_ItemContainer::H"
+msgstr " H "
+
+#: VisuGUI_SetupPlot2dDlg.cxx:450
+msgid "VisuGUI_ItemContainer::V"
+msgstr " V "
+
+#: VisuGUI_SetupPlot2dDlg.cxx:458
+msgid "VisuGUI_ItemContainer::AUTO_CHECK_LBL"
+msgstr "Auto assign"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:475
+msgid "VisuGUI_ItemContainer::CIRCLE_MARKER_LBL"
+msgstr "Circle"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:482
+msgid "VisuGUI_ItemContainer::CROSS_MARKER_LBL"
+msgstr "Cross"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:467
+msgid "VisuGUI_ItemContainer::DAHSDOTDOT_LINE_LBL"
+msgstr "DashDotDot"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:466
+msgid "VisuGUI_ItemContainer::DASHDOT_LINE_LBL"
+msgstr "DashDot"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:464
+msgid "VisuGUI_ItemContainer::DASH_LINE_LBL"
+msgstr "Dash"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:477
+msgid "VisuGUI_ItemContainer::DIAMOND_MARKER_LBL"
+msgstr "Diamond"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:465
+msgid "VisuGUI_ItemContainer::DOT_LINE_LBL"
+msgstr "Dot"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:478
+msgid "VisuGUI_ItemContainer::DTRIANGLE_MARKER_LBL"
+msgstr "Downward triangle"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:480
+msgid "VisuGUI_ItemContainer::LTRIANGLE_MARKER_LBL"
+msgstr "Leftward triangle"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:462
+msgid "VisuGUI_ItemContainer::NONE_LINE_LBL"
+msgstr "None"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:474
+msgid "VisuGUI_ItemContainer::NONE_MARKER_LBL"
+msgstr "None"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:476
+msgid "VisuGUI_ItemContainer::RECTANGLE_MARKER_LBL"
+msgstr "Rectangle"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:481
+msgid "VisuGUI_ItemContainer::RTRIANGLE_MARKER_LBL"
+msgstr "Rightward triangle"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:463
+msgid "VisuGUI_ItemContainer::SOLID_LINE_LBL"
+msgstr "Solid"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:479
+msgid "VisuGUI_ItemContainer::UTRIANGLE_MARKER_LBL"
+msgstr "Upward triangle"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:483
+msgid "VisuGUI_ItemContainer::XCROSS_MARKER_LBL"
+msgstr "Diagonal cross"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:404
+msgid "VisuGUI_SetupPlot2dDlg::BUT_NO"
+msgstr "No"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:403
+msgid "VisuGUI_SetupPlot2dDlg::BUT_YES"
+msgstr "Yes"
+
+#: VisuGUI_SetupPlot2dDlg.cxx:402
+msgid "VisuGUI_SetupPlot2dDlg::QUE_WANT_SAME_UNITS"
+msgstr "Do you want to choose all items with the same units for vertical axis?"
+
--- /dev/null
+// VISU VISUGUI : GUI of VISU component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : VisuGUI_CutLinesDlg.cxx
+// Author : VSV
+// Module : VISU
+
+#include "VisuGUI_CutLinesDlg.h"
+
+#include "VisuGUI.h"
+#include "VisuGUI_Tools.h"
+
+#include "VISU_Gen_i.hh"
+#include "VISU_CutLines_i.hh"
+
+#include "VISU_PipeLine.hxx"
+#include "VISU_PipeLineUtils.hxx"
+#include "VISU_CutLinesPL.hxx"
+
+#include "SVTK_ViewWindow.h"
+
+#include "SalomeApp_Application.h"
+#include "SalomeApp_Study.h"
+
+#include "SUIT_Desktop.h"
+
+#include "OB_Browser.h"
+
+#include <qlayout.h>
+#include <qhbox.h>
+#include <qtabwidget.h>
+#include <qhgroupbox.h>
+
+#include <vtkRenderer.h>
+#include <vtkPolyData.h>
+#include <vtkAppendPolyData.h>
+#include <vtkDataSetMapper.h>
+#include <vtkGlyph3D.h>
+#include <vtkPolyDataMapper.h>
+#include <vtkFloatArray.h>
+#include <vtkGlyphSource2D.h>
+
+using namespace std;
+
+bool VisuGUI_CutLinesDlg::MYGenerateTable = true;
+bool VisuGUI_CutLinesDlg::MYGenerateCurve = true;
+
+VisuGUI_CutLinesDlg::VisuGUI_CutLinesDlg (SalomeApp_Module* theModule)
+ : QDialog(VISU::GetDesktop(theModule), "VisuGUI_CutLinesDlg", false,
+ WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
+ myPreviewActor(0),myPreviewActorGlyphs(0)
+{
+ setCaption("Cut Lines Definition");
+ setSizeGripEnabled(true);
+
+ QVBoxLayout* aMainLayout = new QVBoxLayout (this, 7, 6);
+ aMainLayout->setSpacing(5);
+
+ hasInit = false;
+
+ // Tab pane
+ QTabWidget* aTabPane = new QTabWidget(this);
+
+ // Plane of lines
+ QFrame* aPlanePane = new QFrame(this);
+ QVBoxLayout* aPlaneLayout = new QVBoxLayout(aPlanePane, 5, 6);
+
+ mySelPlane = new QHButtonGroup( tr( "TXT_ORIENTATION" ), aPlanePane);
+ mySelPlane->setInsideSpacing( 5 );
+ mySelPlane->setInsideMargin( 5 );
+
+ QRadioButton* aBxy = new QRadioButton( tr( "PARALLEL_XOY" ), mySelPlane); // 0
+ QRadioButton* aByz = new QRadioButton( tr( "PARALLEL_YOZ" ), mySelPlane); // 1
+ QRadioButton* aBzx = new QRadioButton( tr( "PARALLEL_ZOX" ), mySelPlane); // 2
+ aBxy->setChecked(false);
+ aByz->setChecked(false);
+ aBzx->setChecked(true);
+
+ aPlaneLayout->addWidget( mySelPlane );
+
+ QGroupBox* aRotBox = new QGroupBox( tr( "LBL_ROTATION" ), aPlanePane );
+ aRotBox->setColumnLayout(2, Qt::Horizontal );
+
+ myRotXLbl = new QLabel( tr( "LBL_ROT_X" ), aRotBox);
+ myRotXSpn = new QtxDblSpinBox( -45, 45, 5, aRotBox );
+ myRotXSpn->setValue( 0 );
+ myRotYLbl = new QLabel( tr( "LBL_ROT_Y" ), aRotBox );
+ myRotYSpn = new QtxDblSpinBox( -45, 45, 5, aRotBox );
+ myRotYSpn->setValue( 0 );
+
+ aPlaneLayout->addWidget( aRotBox );
+
+ QHGroupBox* aBaseBox = new QHGroupBox (tr("BASE_PLANE_POS"), aPlanePane);
+ myBasePlanePos = new QLineEdit (aBaseBox);
+ mydvalidator = new QDoubleValidator(this);
+ mydvalidator->setDecimals(32);
+ myBasePlanePos->setValidator(mydvalidator);
+
+ myCBSetDef = new QCheckBox (tr("SET_DEFAULT"),aBaseBox);
+
+ aPlaneLayout->addWidget(aBaseBox);
+
+ QHBox* aPosBox = new QHBox (aPlanePane);
+ aPosBox->setSpacing(5);
+ QLabel* aPosLbl = new QLabel (tr("LBL_POS"), aPosBox);
+ myPosSpn = new QtxDblSpinBox (0, 1, 0.1, aPosBox);
+ myPosSpn->setValue(0.5);
+ aPlaneLayout->addWidget(aPosBox);
+
+ myPreviewCheck = new QCheckBox (tr("LBL_SHOW_PREVIEW"), aPlanePane);
+ myPreviewCheck->setChecked(false);
+ aPlaneLayout->addWidget(myPreviewCheck);
+
+ myAllCurvesInvertedCheck = new QCheckBox(tr("LBL_INVERT_CURVES"), aPlanePane);
+ myAllCurvesInvertedCheck->setChecked(false);
+ aPlaneLayout->addWidget(myAllCurvesInvertedCheck);
+
+ myCreateTable = new QCheckBox (tr("LBL_GENERATE_TABLE"), aPlanePane);
+ myCreateTable->setChecked(MYGenerateTable);
+ aPlaneLayout->addWidget( myCreateTable );
+
+ QHBox* aCheckPane = new QHBox(aPlanePane);
+ QLabel* aLbl = new QLabel(" ", aCheckPane);
+ aCheckPane->setStretchFactor(aLbl, 0);
+ myCurvesCheck = new QCheckBox(tr("LBL_GENERATE_CURVES"), aCheckPane);
+ aCheckPane->setStretchFactor(aCheckPane, 0);
+ myCurvesCheck->setChecked(MYGenerateCurve);
+ myCurvesCheck->setEnabled(MYGenerateTable);
+ QLabel* aLbl2 = new QLabel(" ", aCheckPane);
+ aCheckPane->setStretchFactor(aLbl2, 1);
+ aPlaneLayout->addWidget( aCheckPane );
+
+ aPlaneLayout->addStretch();
+
+
+ aTabPane->addTab( aPlanePane, tr("LBL_LINES_PLANE") );
+
+ // Number of lines
+ QFrame* aLinesPane = new QFrame(this);
+ QVBoxLayout* aLinesLayout = new QVBoxLayout( aLinesPane, 5, 6 );
+
+ mySelPlane2 = new QHButtonGroup( tr( "TXT_ORIENTATION" ), aLinesPane);
+ mySelPlane2->setInsideSpacing( 5 );
+ mySelPlane2->setInsideMargin( 5 );
+
+ QRadioButton* aBxy2 = new QRadioButton( tr( "PARALLEL_XOY" ), mySelPlane2); // 0
+ QRadioButton* aByz2 = new QRadioButton( tr( "PARALLEL_YOZ" ), mySelPlane2); // 1
+ QRadioButton* aBzx2 = new QRadioButton( tr( "PARALLEL_ZOX" ), mySelPlane2); // 2
+ aBzx2->setEnabled(false);
+ aByz2->setChecked(true);
+ aLinesLayout->addWidget( mySelPlane2 );
+
+ QGroupBox* aRotBox2 = new QGroupBox( tr( "LBL_ROTATION" ), aLinesPane );
+ aRotBox2->setColumnLayout(2, Qt::Horizontal );
+
+ myRotXLbl2 = new QLabel( tr( "LBL_ROT_X" ), aRotBox2);
+ myRotXSpn2 = new QtxDblSpinBox( -45, 45, 5, aRotBox2 );
+ myRotXSpn2->setValue( 0 );
+ myRotYLbl2 = new QLabel( tr( "LBL_ROT_Y" ), aRotBox2 );
+ myRotYSpn2 = new QtxDblSpinBox( -45, 45, 5, aRotBox2 );
+ myRotYSpn2->setValue( 0 );
+ aLinesLayout->addWidget( aRotBox2 );
+
+ QHBox* aNbBox = new QHBox(aLinesPane);
+ aNbBox->setSpacing(5);
+ QLabel* aNbLbl = new QLabel( tr( "LBL_NB_PLANS" ), aNbBox );
+ myNbSpn = new QtxDblSpinBox( 1, 100, 1, aNbBox );
+ myNbSpn->setValue( 10 );
+
+ aLinesLayout->addWidget( aNbBox );
+
+ myPosTable = new QTable(aLinesPane, "Positions of cut planes" );
+ myPosTable->setMaximumHeight( 227 );
+ myPosTable->setMinimumWidth( 294 );
+ myPosTable->setNumCols(2);
+ myPosTable->setNumRows(0);
+
+ QHeader *th = myPosTable->horizontalHeader();
+ th->setLabel( 0, "Position" );
+ th->setLabel( 1, "Set default" );
+
+ aLinesLayout->addWidget( myPosTable );
+
+ QHBox* aPosBox2 = new QHBox(aLinesPane);
+ aPosBox2->setSpacing(5);
+ QLabel* aPosLbl2 = new QLabel( tr( "LBL_POS" ), aPosBox2 );
+ myPosSpn2 = new QtxDblSpinBox( 0, 1, 0.1, aPosBox2 );
+ myPosSpn2->setValue( 0.5 );
+ aLinesLayout->addWidget( aPosBox2 );
+ aLinesLayout->addStretch();
+
+ aTabPane->addTab( aLinesPane, tr("LBL_LINES_CUT") );
+
+ myScalarPane = new VisuGUI_ScalarBarPane(this, false);
+ myScalarPane->setMargin( 5 );
+ aTabPane->addTab(myScalarPane, "Scalar Bar");
+
+ aMainLayout->addWidget(aTabPane);
+
+ // Dialog buttons
+ QHBox* aBtnBox = new QHBox(this);
+ aBtnBox->setFrameStyle(QFrame::Box | QFrame::Sunken);
+ aBtnBox->setLineWidth( 1 );
+ QHBoxLayout* aBtnLayout = (QHBoxLayout*) aBtnBox->layout();
+ aBtnLayout->setAutoAdd( false );
+ aBtnLayout->setSpacing( 5 );
+ aBtnLayout->setMargin( 11 );
+
+ QPushButton* aOkBtn = new QPushButton (tr("BUT_OK"), aBtnBox);
+ aOkBtn->setAutoDefault( TRUE );
+ aOkBtn->setDefault( true );
+ aBtnLayout->addWidget(aOkBtn);
+
+ aBtnLayout->addStretch();
+
+ QPushButton* aCloseBtn = new QPushButton(tr("BUT_CANCEL"), aBtnBox);
+ aBtnLayout->addWidget(aCloseBtn);
+
+ aMainLayout->addWidget(aBtnBox);
+
+ myCutLines = NULL;
+
+ // signals and slots connections
+ connect(mySelPlane , SIGNAL(clicked(int)) , this, SLOT(onPlaneSelect(int)));
+ connect(myCBSetDef , SIGNAL(toggled(bool)) , this, SLOT(setBaseDefault()));
+ connect(myPosSpn , SIGNAL(valueChanged(double)) , this, SLOT(setBaseDefault()));
+ connect(mySelPlane2 , SIGNAL(clicked(int)) , this, SLOT(onCutSelect(int)));
+ connect(myNbSpn , SIGNAL(valueChanged(double)) , this, SLOT(DrawTable()));
+ connect(th , SIGNAL(clicked(int)) , this, SLOT(setDefault(int)));
+ connect(myPosSpn2 , SIGNAL(valueChanged(double)) , this, SLOT(DrawTable()));
+ connect(myPreviewCheck, SIGNAL(toggled(bool)) , this, SLOT(onPreviewCheck(bool)));
+ connect(myAllCurvesInvertedCheck, SIGNAL(toggled(bool)),this, SLOT(onAllCurvesInvertedCheck(bool)));
+ connect(myPosTable , SIGNAL(valueChanged(int, int)), this, SLOT(onValueChanged(int, int)));
+ connect(myRotXSpn , SIGNAL(valueChanged(double)) , this, SLOT(onRotation(double)));
+ connect(myRotYSpn , SIGNAL(valueChanged(double)) , this, SLOT(onRotation(double)));
+ connect(myRotXSpn2 , SIGNAL(valueChanged(double)) , this, SLOT(onRotation(double)));
+ connect(myRotYSpn2 , SIGNAL(valueChanged(double)) , this, SLOT(onRotation(double)));
+ connect(myBasePlanePos, SIGNAL(textChanged(const QString&)), this, SLOT(onPlanePos(const QString&)));
+ connect(myCreateTable , SIGNAL(toggled(bool)), myCurvesCheck, SLOT(setEnabled(bool)));
+
+ connect(aOkBtn, SIGNAL(clicked()), this, SLOT(accept()));
+ connect(aCloseBtn, SIGNAL(clicked()), this, SLOT(reject()));
+ //connect(myMgr, SIGNAL(closeAllViews()), this, SLOT(reject()));
+ //connect(VisuGUI::application()->desktop(),
+ // SIGNAL(windowActivated(SUIT_ViewWindow*)),
+ // this, SLOT(onWindowActivated(SUIT_ViewWindow*)));
+}
+
+/*!
+ Destructor
+*/
+VisuGUI_CutLinesDlg::~VisuGUI_CutLinesDlg()
+{
+ cout<<"### VisuGUI_CutLinesDlg::~VisuGUI_CutLinesDlg"<<endl;
+ deletePlanes();
+ if (myCutLines) //delete myCutLines;
+ myCutLines->Destroy();
+ if (SVTK_ViewWindow* vf = VISU::GetViewWindow())
+ vf->Repaint();
+}
+
+//------------------------------------------------------------------------------
+void VisuGUI_CutLinesDlg::initFromPrsObject (VISU::CutLines_i* thePrs)
+{
+ myPrs = thePrs;
+ myScalarPane->initFromPrsObject(thePrs);
+
+ myRotXSpn->setValue(thePrs->GetRotateX()*180./PI);
+ myRotYSpn->setValue(thePrs->GetRotateY()*180./PI);
+ myPosSpn->setValue(thePrs->GetDisplacement());
+ setOrientation(thePrs->GetOrientationType());
+
+ myNbSpn->setValue( (int)thePrs->GetNbLines() );
+ myRotXSpn2->setValue(thePrs->GetRotateX2()*180./PI);
+ myRotYSpn2->setValue(thePrs->GetRotateY2()*180./PI);
+ myPosSpn2->setValue(thePrs->GetDisplacement2());
+ setOrientation2(thePrs->GetOrientationType2());
+
+ hasInit = true;
+ myCutLines = new VISU::CutLines_i(thePrs->GetResult(),false);
+ myCutLines->SameAs(thePrs);
+ myCutLines->CopyCurvesInverted(thePrs->GetCurvesInverted());
+ if (myCutLines->IsAllCurvesInverted()) myAllCurvesInvertedCheck->setChecked(true);
+ myBasePlanePos->setText( QString::number(myCutLines->GetBasePlanePosition()) );
+ myCBSetDef->setChecked(thePrs->IsDefault());
+ DrawTable();
+
+ // Draw Preview
+ if (myPreviewCheck->isChecked()) {
+ createPlanes();
+ }
+}
+
+//------------------------------------------------------------------------------
+int VisuGUI_CutLinesDlg::storeToPrsObject (VISU::CutLines_i* thePrs)
+{
+ myScalarPane->storeToPrsObject(thePrs);
+
+ thePrs->SetOrientation(getOrientaion(),
+ myRotXSpn->value()*PI/180.,
+ myRotYSpn->value()*PI/180.);
+ thePrs->SetDisplacement(myPosSpn->value());
+ thePrs->SetNbLines((int)myNbSpn->value());
+
+ thePrs->SetOrientation2(getOrientaion(false),
+ myRotXSpn2->value()*PI/180.,
+ myRotYSpn2->value()*PI/180.);
+ thePrs->SetDisplacement2(myPosSpn2->value());
+
+ if (!myCBSetDef->isChecked())
+ thePrs->SetBasePlanePosition(myBasePlanePos->text().toDouble());
+ else thePrs->SetDefault();
+
+ for (int i = 0; i < (int)myNbSpn->value(); ++i) {
+ if (!((QCheckTableItem*)myPosTable->item( i, 1 ))->isChecked())
+ thePrs->SetLinePosition( i, myPosTable->text( i, 0 ).toDouble() );
+ else thePrs->SetDefaultPosition(i);
+ }
+ if (myAllCurvesInvertedCheck->isChecked())
+ thePrs->SetAllCurvesInverted(true);
+ return 1;
+}
+
+//------------------------------------------------------------------------------
+void VisuGUI_CutLinesDlg::createPlanes()
+{
+ SVTK_ViewWindow* aView = VISU::GetViewWindow();
+ if (aView == NULL) return;
+ if (myCutLines == NULL) return;
+ if (myPreviewActor != 0) return;
+
+ storeToPrsObject(myCutLines);
+ myCutLines->GetPL()->Update();
+ vtkAppendPolyData* aPolyData = myCutLines->GetCutLinesPL()->GetAppendPolyData();
+ vtkDataSetMapper* aPlaneMapper = vtkDataSetMapper::New();
+ aPlaneMapper->SetInput(aPolyData->GetOutput());
+ aPlaneMapper->ScalarVisibilityOff();
+
+ myPreviewActorGlyphs = myPreviewActorGlyphs = SALOME_Actor::New();
+ myPreviewActorGlyphs->PickableOff();
+ updateGlyphs(false);
+
+ myPreviewActor = SALOME_Actor::New();
+ myPreviewActor->PickableOff();
+ myPreviewActor->SetMapper(aPlaneMapper);
+ aPlaneMapper->Delete();
+ aView->AddActor(myPreviewActor);
+ aView->AddActor(myPreviewActorGlyphs);
+ aView->getRenderer()->Render();
+ aView->onFitAll();
+}
+
+//------------------------------------------------------------------------------
+void VisuGUI_CutLinesDlg::deletePlanes()
+{
+ if (myPreviewActor == 0) return;
+ if (SVTK_ViewWindow* aView = VISU::GetViewWindow()){
+ aView->RemoveActor(myPreviewActor);
+ aView->RemoveActor(myPreviewActorGlyphs);
+ }
+ myPreviewActor->Delete();
+ myPreviewActorGlyphs->Delete();
+ myPreviewActor = 0;
+ myPreviewActorGlyphs = 0;
+}
+
+
+//------------------------------------------------------------------------------
+void VisuGUI_CutLinesDlg::onPlaneSelect (int theId)
+{
+ for (int i = 0; i < mySelPlane2->count(); i++)
+ mySelPlane2->find(i)->setEnabled(true);
+ QButton* aBtn = mySelPlane2->find(theId);
+ aBtn->setEnabled(false);
+ switch (theId) {
+ case 0:
+ myRotXLbl->setText( tr("LBL_ROT_X"));
+ myRotYLbl->setText( tr("LBL_ROT_Y"));
+ ((QRadioButton*)mySelPlane2->find(1))->setChecked(true);
+ onCutSelect(1, false);
+ break;
+ case 1:
+ myRotXLbl->setText( tr("LBL_ROT_Y"));
+ myRotYLbl->setText( tr("LBL_ROT_Z"));
+ ((QRadioButton*)mySelPlane2->find(2))->setChecked(true);
+ onCutSelect(2, false);
+ break;
+ case 2:
+ myRotXLbl->setText( tr("LBL_ROT_Z"));
+ myRotYLbl->setText( tr("LBL_ROT_X"));
+ ((QRadioButton*)mySelPlane2->find(0))->setChecked(true);
+ onCutSelect(0, false);
+ }
+ setBaseDefault(false);
+ DrawTable();
+}
+
+//------------------------------------------------------------------------------
+void VisuGUI_CutLinesDlg::onCutSelect (int theId, bool theUpdate)
+{
+ switch (theId) {
+ case 0:
+ myRotXLbl2->setText( tr("LBL_ROT_X"));
+ myRotYLbl2->setText( tr("LBL_ROT_Y"));
+ break;
+ case 1:
+ myRotXLbl2->setText( tr("LBL_ROT_Y"));
+ myRotYLbl2->setText( tr("LBL_ROT_Z"));
+ break;
+ case 2:
+ myRotXLbl2->setText( tr("LBL_ROT_Z"));
+ myRotYLbl2->setText( tr("LBL_ROT_X"));
+ }
+ SVTK_ViewWindow* aView = VISU::GetViewWindow();
+ if (aView) {
+ if (theUpdate && myPreviewCheck->isChecked() && (myCutLines != NULL)) {
+ /*myCutLines->SetOrientation2(getOrientaion(false),
+ myRotXSpn2->value()*PI/180.,
+ myRotYSpn2->value()*PI/180.);
+ myCutLines->SetDisplacement2(myPosSpn2->value());*/
+ //myCutLines->GetPL()->Update();
+ deletePlanes();
+ createPlanes();
+ //aView->Repaint();
+ }
+ }
+}
+
+//------------------------------------------------------------------------------
+void VisuGUI_CutLinesDlg::setBaseDefault (bool theUpdate)
+{
+ if (!hasInit) return;
+
+ if (myCBSetDef->isChecked()) {
+ if (!myCutLines->IsDefault()) myCutLines->SetDefault();
+ /*myCutLines->SetOrientation(getOrientaion(),
+ myRotXSpn->value()*PI/180.,
+ myRotYSpn->value()*PI/180.);
+ myCutLines->SetDisplacement(myPosSpn->value());*/
+ /* float aPos = myCutLines->GetBasePlanePosition();
+ myBasePlanePos->setText( QString::number(aPos) );
+ myBasePlanePos->setEnabled(false);*/
+ SVTK_ViewWindow* aView = VISU::GetViewWindow();
+ if (aView) {
+ if (theUpdate && myPreviewCheck->isChecked() && (myCutLines != NULL)) {
+ //myCutLines->SetBasePlanePosition(aPos);
+ // myCutLines->GetPL()->Update();
+ deletePlanes();
+ createPlanes();
+ //aView->Repaint();
+ }
+ }
+ float aPos = myCutLines->GetBasePlanePosition();
+ myBasePlanePos->setText( QString::number(aPos) );
+ myBasePlanePos->setEnabled(false);
+ } else {
+ myBasePlanePos->setEnabled(true);
+ }
+}
+
+//------------------------------------------------------------------------------
+void VisuGUI_CutLinesDlg::DrawTable()
+{
+ if (!hasInit) return;
+
+ int aNbRows = myPosTable->numRows();
+ int aNbPlanes = (int)myNbSpn->value();
+
+ myCutLines->SetOrientation(getOrientaion(),
+ myRotXSpn->value()*PI/180.,
+ myRotYSpn->value()*PI/180.);
+
+ myCutLines->SetNbLines(aNbPlanes);
+ myCutLines->SetDisplacement2(myPosSpn2->value());
+ myCutLines->SetOrientation2(getOrientaion(false),
+ myRotXSpn2->value()*PI/180.,
+ myRotYSpn2->value()*PI/180.);
+
+ if (aNbRows>0)
+ for (int i = 0; i < aNbRows; ++i) {
+ QCheckTableItem* aItem = (QCheckTableItem*)myPosTable->item( i, 1 );
+ if (aItem == 0) break;
+ if (!aItem->isChecked())
+ myCutLines->SetLinePosition(i, myPosTable->text(i, 0).toDouble());
+ }
+
+ if (aNbPlanes > aNbRows)
+ myPosTable->insertRows(aNbRows, aNbPlanes - aNbRows );
+ else if (aNbPlanes < aNbRows)
+ myPosTable->setNumRows(aNbPlanes);
+
+ int aMin = (aNbRows < aNbPlanes)? aNbRows : aNbPlanes;
+ for (int i = 0; i<aMin; i++) {
+ myPosTable->setText(i, 0, QString::number(myCutLines->GetLinePosition(i)));
+ ((QCheckTableItem*)myPosTable->item( i, 1 ))->setChecked(myCutLines->IsDefaultPosition(i));
+ }
+
+ QHeader *vh = myPosTable->verticalHeader();
+ QString str("Plane# %1");
+ for (int i=aMin; i<aNbPlanes; i++) {
+ VisuGUI_NumEditItem* aEditItem = new VisuGUI_NumEditItem
+ (myPosTable, QTableItem::OnTyping, QString::number(myCutLines->GetLinePosition(i)));
+ aEditItem->setReplaceable(false);
+ aEditItem->setEnabled(!myCutLines->IsDefaultPosition(i));
+ myPosTable->setItem(i, 0, aEditItem);
+
+ QCheckTableItem* aCheck = new QCheckTableItem(myPosTable, 0);
+ aCheck->setChecked(myCutLines->IsDefaultPosition(i));
+ aCheck->setReplaceable(false);
+ myPosTable->setItem(i, 1, aCheck);
+
+ vh->setLabel( i, str.arg(i+1) );
+ }
+ // Update preview
+ SVTK_ViewWindow* aView = VISU::GetViewWindow();
+ if (aView) {
+ if (myPreviewCheck->isChecked()) {
+ // myCutLines->GetPL()->Update();
+ deletePlanes();
+ createPlanes();
+ //aView->Repaint();
+ }
+ }
+}
+
+void VisuGUI_CutLinesDlg::updateGlyphs(bool update){
+ if (myPreviewActorGlyphs == 0 ) return;
+ const float *aDirLn = myCutLines->GetCutLinesPL()->GetDirLn();
+ const float *aBasePnt = myCutLines->GetCutLinesPL()->GetBasePnt();
+ float aSecondPnt[3];
+ float aBoundCenter[3];
+
+ vtkAppendPolyData* aPolyData = myCutLines->GetCutLinesPL()->GetAppendPolyData();
+ vtkDataSetMapper* aPlaneMapper = vtkDataSetMapper::New();
+ aPlaneMapper->SetInput(aPolyData->GetOutput());
+ float bounds[6];
+ aPlaneMapper->GetBounds(bounds);
+
+ for(int i=0; i<3; i++) aBoundCenter[i] = (bounds[i*2] + bounds[i*2+1])/2.0;
+ for(int i=0; i<3; i++){
+ if (!myAllCurvesInvertedCheck->isChecked())
+ aSecondPnt[i] = aBasePnt[i] + aDirLn[i];
+ else
+ aSecondPnt[i] = -aBasePnt[i] - aDirLn[i];
+ }
+
+ float max_bound = 0;
+ max_bound < bounds[1]-bounds[0] ? max_bound = bounds[1] - bounds[0] : max_bound = max_bound;
+ max_bound < bounds[3]-bounds[2] ? max_bound = bounds[3] - bounds[2] : max_bound = max_bound;
+ max_bound < bounds[5]-bounds[4] ? max_bound = bounds[5] - bounds[4] : max_bound = max_bound;
+
+ vtkPolyData* profile = vtkPolyData::New();
+ vtkPoints* aPoints = vtkPoints::New();
+ vtkGlyph3D* glyphs = vtkGlyph3D::New();
+ vtkFloatArray *aFloatArray = vtkFloatArray::New();
+ vtkGlyphSource2D* source = vtkGlyphSource2D::New();
+
+ source->FilledOn();
+ source->SetCenter(aBoundCenter);
+ source->SetGlyphTypeToArrow();
+
+ aPoints->InsertNextPoint(aBasePnt);
+ profile->SetPoints(aPoints);
+
+ aFloatArray->SetNumberOfComponents(3);
+ for(int i=0; i<3 ;i++)
+ aFloatArray->InsertNextValue(aSecondPnt[i]);
+
+ vtkDataSetAttributes* aDataSetAttributes;
+ aDataSetAttributes = profile->GetPointData();
+ aDataSetAttributes->SetVectors(aFloatArray);
+
+ glyphs->SetScaleFactor(0.25*max_bound);
+ glyphs->SetVectorModeToUseVector();
+ glyphs->SetScaleModeToScaleByVector();
+ glyphs->SetInput(profile);
+ glyphs->SetSource(source->GetOutput());
+
+ vtkPolyDataMapper* aGlyphsMapper = vtkPolyDataMapper::New();
+ aGlyphsMapper->ScalarVisibilityOff();
+ aGlyphsMapper->SetInput(glyphs->GetOutput());
+
+ myPreviewActorGlyphs->SetMapper(aGlyphsMapper);
+
+ profile->Delete();
+ glyphs->Delete();
+ aPoints->Delete();
+ aGlyphsMapper->Delete();
+ aFloatArray->Delete();
+ source->Delete();
+ aPlaneMapper->Delete();
+
+ if (SVTK_ViewWindow* vf = VISU::GetViewWindow())
+ if (update)
+ vf->Repaint();
+}
+
+//------------------------------------------------------------------------------
+void VisuGUI_CutLinesDlg::setDefault (int all)
+{
+ myPosTable->setCurrentCell(-1, 1);
+ myPosTable->clearSelection();
+ if (all == 0) return;
+ if (all == 1)
+ for (int i = 0; i < (int)myNbSpn->value(); ++i)
+ ((QCheckTableItem*)myPosTable->item( i, 1 ))->setChecked(true);
+
+ for (int i = 0; i < (int)myNbSpn->value(); ++i) {
+ if ( ((QCheckTableItem*)myPosTable->item( i, 1 ))->isChecked() ) {
+ myCutLines->SetDefaultPosition(i);
+ myPosTable->setText( i, 0, QString::number(myCutLines->GetLinePosition(i)));
+ myPosTable->item( i, 0 )->setEnabled(false);
+ } else
+ myPosTable->item( i, 0 )->setEnabled(true);
+ }
+}
+
+//------------------------------------------------------------------------------
+VISU::CutPlanes::Orientation VisuGUI_CutLinesDlg::getOrientaion (bool IsBasePlane)
+{
+ QHButtonGroup* aBG;
+
+ if (IsBasePlane)
+ aBG = mySelPlane;
+ else
+ aBG = mySelPlane2;
+
+ VISU::CutPlanes::Orientation orient;
+ switch (aBG->id(aBG->selected())) {
+ case 0:
+ orient = VISU::CutPlanes::XY;
+ break;
+ case 1:
+ orient = VISU::CutPlanes::YZ;
+ break;
+ case 2:
+ orient = VISU::CutPlanes::ZX;
+ }
+ return orient;
+}
+
+//------------------------------------------------------------------------------
+void VisuGUI_CutLinesDlg::setOrientation (const VISU::CutPlanes::Orientation orient)
+{
+ switch (orient) {
+ case VISU::CutPlanes::XY:
+ ((QRadioButton*)mySelPlane->find(0))->setChecked(true);
+ onPlaneSelect(0);
+ break;
+ case VISU::CutPlanes::YZ:
+ ((QRadioButton*)mySelPlane->find(1))->setChecked(true);
+ onPlaneSelect(1);
+ break;
+ case VISU::CutPlanes::ZX:
+ ((QRadioButton*)mySelPlane->find(2))->setChecked(true);
+ onPlaneSelect(2);
+ }
+}
+
+//------------------------------------------------------------------------------
+void VisuGUI_CutLinesDlg::setOrientation2 (const VISU::CutPlanes::Orientation orient)
+{
+ switch (orient) {
+ case VISU::CutPlanes::XY:
+ ((QRadioButton*)mySelPlane2->find(0))->setChecked(true);
+ onCutSelect(0);
+ break;
+ case VISU::CutPlanes::YZ:
+ ((QRadioButton*)mySelPlane2->find(1))->setChecked(true);
+ onCutSelect(1);
+ break;
+ case VISU::CutPlanes::ZX:
+ ((QRadioButton*)mySelPlane2->find(2))->setChecked(true);
+ onCutSelect(2);
+ }
+}
+
+void VisuGUI_CutLinesDlg::onValueChanged (int theRow, int theCol)
+{
+ if (theCol == 0) {
+ QString aTxt = myPosTable->text(theRow, 0);
+ bool isChanged = !aTxt.isEmpty();
+ ((QCheckTableItem*)myPosTable->item(theRow, 1))->setChecked(!isChanged);
+ SVTK_ViewWindow* aView = VISU::GetViewWindow();
+ if (aView) {
+ if (myPreviewCheck->isChecked()) {
+ //Update Preview
+ //myCutLines->SetLinePosition( theRow, aTxt.toDouble());
+ // myCutLines->GetPL()->Update();
+ deletePlanes();
+ createPlanes();
+ //aView->Repaint();
+ }
+ }
+ } else if (theCol == 1){
+ bool isDefault = ((QCheckTableItem*)myPosTable->item(theRow, theCol))->isChecked();
+ if (isDefault) {
+ //myCutLines->SetDefaultPosition(theRow);
+ // myPosTable->setText(theRow, 0, QString::number(myCutLines->GetLinePosition(theRow)));
+ SVTK_ViewWindow* aView = VISU::GetViewWindow();
+ if (aView) {
+ if (myPreviewCheck->isChecked()) {
+ //Update Preview
+ // myCutLines->GetPL()->Update();
+ deletePlanes();
+ createPlanes();
+ //aView->Repaint();
+ }
+ }
+ myPosTable->setText(theRow, 0, QString::number(myCutLines->GetLinePosition(theRow)));
+ }
+ myPosTable->item(theRow, 0)->setEnabled(!isDefault);
+ }
+}
+
+void VisuGUI_CutLinesDlg::accept()
+{
+ //if ( !VisuGUI::CheckActiveStudyLock() ) {
+ // reject();
+ // return;
+ //}
+ MYGenerateTable = myCreateTable->isChecked();
+ MYGenerateCurve = myCurvesCheck->isChecked();
+ // if (myScalarPane->check()) {
+ /*jfa tmp:((QWidget*)sender())->setDisabled(true);
+ storeToPrsObject(myPrs);
+ if (myIsCreation) {
+ if (isGenerateTable()) {
+ visuGUI->GetVisuGen()->CreateTable(myPrs->GetEntry());
+ if (isGenerateCurves()) {
+ SALOMEDSClient_Study* aStudy = study()->studyDS();
+ SALOMEDSClient_SObject* aSObject = aStudy->FindObjectID(myPrs->GetEntry());
+ if( aSObject ) {
+ SALOMEDSClient_ChildIterator* aIter = aStudy->NewChildIterator( aSObject );
+ SALOMEDSClient_StudyBuilder* aBuilder = aStudy->NewBuilder();
+ for ( ;aIter->More(); aIter->Next()) {
+ SALOMEDSClient_SObject* aTblObj = aIter->Value();
+ if ( aTblObj ) {
+ SALOMEDSClient_GenericAttribute* anAttr;
+ if (aTblObj->FindAttribute(anAttr, "AttributeName")) {
+ visuGUI->CreatePlot(aTblObj);
+ }
+ }
+ }
+ }
+ }
+ }
+ if (GET_VTK_VIEWWINDOW(myMgr)) {
+ try {
+ visuGUI->CreateActor(myPrs);
+ } catch (...) {
+ reject();
+ return;
+ }
+ GET_VTK_VIEWWINDOW(myMgr)->onFitAll();
+ }
+ } else {
+ visuGUI->RecreateActor(myPrs);
+ if (VTKViewer_ViewWindow* vf = GET_VTK_VIEWWINDOW(myMgr)) {
+ if (vf->getRenderer()->GetActors()->GetNumberOfItems() > 0) {
+ vf->getRenderer()->ResetCameraClippingRange();
+ vf->Repaint();
+ }
+ }
+ // Remove old Table
+ SALOMEDSClient_Study* aStudy = study()->studyDS();
+ SALOMEDSClient_SObject* aSObject = aStudy->FindObjectID(myPrs->GetEntry());
+ if( aSObject ) {
+ SALOMEDSClient_ChildIterator* aIter = aStudy->NewChildIterator( aSObject );
+ SALOMEDSClient_StudyBuilder* aBuilder = aStudy->NewBuilder();
+ for ( ;aIter->More(); aIter->Next()) {
+ SALOMEDSClient_SObject* aTblObj = aIter->Value();
+ if ( aTblObj ) {
+ SALOMEDSClient_GenericAttribute* anAttr;
+ if (aTblObj->FindAttribute(anAttr, "AttributeName")) {
+ aBuilder->RemoveObjectWithChildren(aIter->Value()); // We should have only one child
+ break;
+ }
+ }
+ }
+ if (isGenerateTable()) {
+ visuGUI->GetVisuGen()->CreateTable(aSObject->GetID().c_str());
+ if (isGenerateCurves()) {
+ SALOMEDSClient_Study* aStudy = study()->studyDS();
+ SALOMEDSClient_ChildIterator* aIter = aStudy->NewChildIterator( aSObject );
+ SALOMEDSClient_StudyBuilder* aBuilder = aStudy->NewBuilder();
+ for ( ;aIter->More(); aIter->Next()) {
+ SALOMEDSClient_SObject* aTblObj = aIter->Value();
+ if ( aTblObj ) {
+ SALOMEDSClient_GenericAttribute* anAttr;
+ if (aTblObj->FindAttribute(anAttr, "AttributeName")) {
+ visuGUI->CreatePlot(aTblObj);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ VisuGUI::application()->objectBrowser()->updateTree();*/
+ myScalarPane->deletePreview();
+ deletePlanes();
+ QDialog::accept();
+ // }
+}
+
+void VisuGUI_CutLinesDlg::reject()
+{
+ /*jfa tmp:if (myIsCreation) {
+ myPrs->RemoveFromStudy();
+ VisuGUI::application()->objectBrowser()->updateTree();
+ }*/
+ myScalarPane->deletePreview();
+ deletePlanes();
+ QDialog::reject();
+}
+
+void VisuGUI_CutLinesDlg::onPreviewCheck (bool thePreview)
+{
+ if (SVTK_ViewWindow* vf = VISU::GetViewWindow()) {
+ if (thePreview) {
+ //storeToPrsObject(myCutLines);
+ // myCutLines->GetPL()->Update();
+ createPlanes();
+ //vf->onFitAll();
+ } else {
+ deletePlanes();
+ vf->Repaint();
+ }
+ }
+}
+
+/*! Inverting all curves in the table
+ */
+void VisuGUI_CutLinesDlg::onAllCurvesInvertedCheck(bool theInvert)
+{
+ if (myAllCurvesInvertedCheck->isChecked()){
+ myCutLines->SetAllCurvesInverted(true);
+ myPrs->SetAllCurvesInverted(true);
+ }
+ else {
+ myCutLines->SetAllCurvesInverted(false);
+ myPrs->SetAllCurvesInverted(false);
+ }
+ updateGlyphs(true);
+}
+
+void VisuGUI_CutLinesDlg::onRotation (double theValue)
+{
+ if (myCutLines == NULL) return;
+ SVTK_ViewWindow* aView = VISU::GetViewWindow();
+ if (aView) {
+ if (myPreviewCheck->isChecked()) {
+
+ /*myCutLines->SetOrientation(getOrientaion(),
+ myRotXSpn->value()*PI/180.,
+ myRotYSpn->value()*PI/180.);
+ myCutLines->SetOrientation2(getOrientaion(false),
+ myRotXSpn2->value()*PI/180.,
+ myRotYSpn2->value()*PI/180.);*/
+ // myCutLines->GetPL()->Update();
+ deletePlanes();
+ createPlanes();
+ //aView->Repaint();
+ }
+ }
+}
+
+void VisuGUI_CutLinesDlg::onPlanePos (const QString& theValue)
+{
+ if (myCutLines == NULL) return;
+ SVTK_ViewWindow* aView = VISU::GetViewWindow();
+ if (aView) {
+ if (myPreviewCheck->isChecked()) {
+ //myCutLines->SetBasePlanePosition(theValue.toDouble());
+ // myCutLines->GetPL()->Update();
+ deletePlanes();
+ createPlanes();
+ //aView->Repaint();
+ }
+ }
+}
+
+//jfa tmp:void VisuGUI_CutLinesDlg::onWindowActivated (SUIT_ViewWindow* theWnd)
+//jfa tmp:{
+//jfa tmp: if (theWnd != myStudyWnd)
+//jfa tmp: reject();
+//jfa tmp:}
--- /dev/null
+// VISU VISUGUI : GUI of VISU component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : VisuGUI_CutPlanesDlg.cxx
+// Author : Laurent CORNABE & Hubert ROLLAND
+// Module : VISU
+// $Header$
+
+#include "VisuGUI_CutPlanesDlg.h"
+
+#include "VisuGUI.h"
+#include "VisuGUI_Tools.h"
+
+#include "VISU_CutPlanes_i.hh"
+#include "VISU_CutPlanesPL.hxx"
+
+#include "OB_Browser.h"
+
+#include "SVTK_ViewWindow.h"
+
+#include "SalomeApp_Application.h"
+
+#include "SUIT_Application.h"
+#include "SUIT_Desktop.h"
+#include "SUIT_ViewWindow.h"
+#include "SUIT_ViewManager.h"
+
+#include <qlayout.h>
+#include <qcheckbox.h>
+#include <qstyle.h>
+#include <qstring.h>
+#include <qvalidator.h>
+#include <qlineedit.h>
+#include <qtabwidget.h>
+
+#include <vtkRenderer.h>
+#include <vtkPolyData.h>
+#include <vtkAppendPolyData.h>
+#include <vtkDataSetMapper.h>
+
+using namespace std;
+
+//extern VisuGUI *visuGUI;
+
+VisuGUI_CutPlanesPane::VisuGUI_CutPlanesPane (QWidget* theParent)
+ : QFrame(theParent), myPreviewActor(0)
+{
+ QGridLayout* TopLayout = new QGridLayout( this );
+ TopLayout->setSpacing( 6 );
+ TopLayout->setMargin( 10 );
+
+ QButtonGroup* SelPlane = new QButtonGroup (tr("TXT_ORIENTATION"), this, "SelPlane");
+ //SelPlane->setTitle(tr("TXT_ORIENTATION"));
+ SelPlane->setColumnLayout(0, Qt::Vertical);
+ SelPlane->layout()->setSpacing( 0 );
+ SelPlane->layout()->setMargin( 0 );
+ QGridLayout* SelPlaneLayout = new QGridLayout( SelPlane->layout() );
+ SelPlaneLayout->setAlignment( Qt::AlignTop );
+ SelPlaneLayout->setSpacing( 6 );
+ SelPlaneLayout->setMargin( 11 );
+
+ RBxy = new QRadioButton (tr("PARALLEL_XOY"), SelPlane, "RBxy");
+ RByz = new QRadioButton (tr("PARALLEL_YOZ"), SelPlane, "RByz");
+ RBzx = new QRadioButton (tr("PARALLEL_ZOX"), SelPlane, "RBzx");
+ SelPlaneLayout->addWidget( RBxy, 0, 0 );
+ SelPlaneLayout->addWidget( RByz, 0, 1 );
+ SelPlaneLayout->addWidget( RBzx, 0, 2 );
+
+ QLabel* LabelPosi_3 = new QLabel (tr("LBL_NB_PLANS"), this, "LabelPosi_3");
+
+ nbPlan = new QSpinBox( 1, 100, 1, this, "nbPlan" );
+ nbPlan->setValue( 1 );
+ nbPlan->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+
+ myPosTable = new QTable (this, "Positions of planes");
+ myPosTable->setMaximumHeight( 227 );
+ myPosTable->setMinimumWidth( 294 );
+ myPosTable->setNumCols(2);
+ myPosTable->setNumRows(0);
+ connect( myPosTable, SIGNAL(valueChanged(int, int)), this, SLOT(onValueChanged(int, int)) );
+
+ QHeader *th = myPosTable->horizontalHeader();
+ th->setLabel( 0, "Position" );
+ th->setLabel( 1, "Set default" );
+ th->setStyle("QStyle::CE_PushButton");
+
+ QGroupBox* GBrot = new QGroupBox (tr("LBL_ROTATION"), this, "GBrot");
+ GBrot->setColumnLayout(0, Qt::Vertical);
+ GBrot->layout()->setSpacing( 0 );
+ GBrot->layout()->setMargin( 0 );
+ QGridLayout* GBrotLayout = new QGridLayout( GBrot->layout() );
+ GBrotLayout->setAlignment( Qt::AlignTop );
+ GBrotLayout->setSpacing( 6 );
+ GBrotLayout->setMargin( 11 );
+
+ LabelRot1 = new QLabel (tr("LBL_ROT_X"), GBrot, "LabelRot1");
+ GBrotLayout->addWidget( LabelRot1, 0, 0 );
+
+ Rot1 = new QtxDblSpinBox( -180, 180, 10, GBrot );
+ Rot1->setValue( 0 );
+ Rot1->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+ connect( Rot1, SIGNAL( valueChanged( double )), this, SLOT( onRotation( double ) ) );
+ GBrotLayout->addWidget( Rot1, 0, 1 );
+
+ LabelRot2 = new QLabel (tr("LBL_ROT_Y"), GBrot, "LabelRot2");
+ GBrotLayout->addWidget( LabelRot2, 1, 0 );
+
+ Rot2 = new QtxDblSpinBox( -180, 180, 10, GBrot );
+ Rot2->setValue( 0 );
+ Rot2->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+ connect( Rot2, SIGNAL( valueChanged( double )), this, SLOT( onRotation( double ) ) );
+ GBrotLayout->addWidget( Rot2, 1, 1 );
+
+ QLabel* aPosLbl = new QLabel(tr( "LBL_POS" ), this);
+ myPosSpn = new QtxDblSpinBox( 0, 1, 0.1, this );
+
+ myPreviewCheck = new QCheckBox(tr("LBL_SHOW_PREVIEW"), this);
+ myPreviewCheck->setChecked(false);
+ connect( myPreviewCheck, SIGNAL( toggled( bool )), this, SLOT( onPreviewCheck( bool ) ) );
+
+ TopLayout->addMultiCellWidget( SelPlane, 0, 0, 0, 1 );
+ TopLayout->addMultiCellWidget( GBrot, 1, 1, 0, 1 );
+ TopLayout->addWidget( LabelPosi_3, 2, 0 );
+ TopLayout->addWidget( nbPlan, 2, 1 );
+ TopLayout->addMultiCellWidget( myPosTable, 3, 3, 0, 1 );
+ TopLayout->setRowStretch ( 3, 3 );
+ TopLayout->addWidget(aPosLbl, 4, 0 );
+ TopLayout->addWidget(myPosSpn, 4, 1 );
+ TopLayout->addMultiCellWidget( myPreviewCheck, 5, 5, 0, 1 );
+
+ // signals and slots connections
+ connect( SelPlane, SIGNAL( clicked( int )), this, SLOT( orientationChanged( int ) ) );
+ connect( nbPlan, SIGNAL( valueChanged( int )), this, SLOT( DrawTable( ) ) );
+ connect( myPosSpn, SIGNAL( valueChanged( double )), this, SLOT( DrawTable( ) ) );
+ connect( th, SIGNAL( clicked(int)), this, SLOT( setDefault(int) ) );
+
+ // default values
+ myCutPlanes = NULL;
+ hasInit = false;
+ X1 = 0; X2 = 0;
+ Y1 = 0; Y2 = 0;
+ Z1 = 0; Z2 = 0;
+ RByz->setChecked( true );
+
+} // End of Constructor
+
+VisuGUI_CutPlanesPane::~VisuGUI_CutPlanesPane()
+{
+ cout<<"### VisuGUI_CutPlanesPane::~VisuGUI_CutPlanesPane"<<endl;
+ deletePlanes();
+ if (myCutPlanes)
+ myCutPlanes->Destroy();
+ if (SVTK_ViewWindow* vf = VISU::GetViewWindow())
+ vf->Repaint();
+}
+
+void VisuGUI_CutPlanesPane::initFromPrsObject (VISU::CutPlanes_i* thePrs)
+{
+ setNbPlanes(thePrs->GetNbPlanes());
+ setRotation(thePrs->GetRotateX()*180./PI, thePrs->GetRotateY()*180./PI);
+ setPlanePos(thePrs->GetOrientationType());
+ myPosSpn->setValue(thePrs->GetDisplacement());
+ hasInit = true;
+ // init table
+ myCutPlanes = new VISU::CutPlanes_i(thePrs->GetResult(),false);
+ myCutPlanes->SameAs(thePrs);
+ DrawTable();
+
+ // Draw Preview
+ if (myPreviewCheck->isChecked()) {
+ createPlanes();
+ }
+}
+
+void VisuGUI_CutPlanesPane::createPlanes()
+{
+ if (VISU::GetViewWindow() == NULL) return;
+ if (myCutPlanes == NULL) return;
+ if (myPreviewActor != 0) return;
+
+ vtkAppendPolyData* aPolyData = myCutPlanes->GetCutPlanesPL()->GetAppendPolyData();
+ if (!aPolyData->GetOutput()->GetNumberOfCells()) {
+ onPreviewCheck(false);
+ return;
+ }
+ vtkDataSetMapper* aPlaneMapper = vtkDataSetMapper::New();
+ aPlaneMapper->SetInput(aPolyData->GetOutput());
+ aPlaneMapper->ScalarVisibilityOff();
+
+ myPreviewActor = SALOME_Actor::New();
+ myPreviewActor->PickableOff();
+ myPreviewActor->SetMapper(aPlaneMapper);
+ aPlaneMapper->Delete();
+ VISU::GetViewWindow()->AddActor(myPreviewActor);
+}
+
+int VisuGUI_CutPlanesPane::storeToPrsObject (VISU::CutPlanes_i* thePrs)
+{
+ thePrs->SetOrientation(getOrientaion(), getRotation1()*PI/180., getRotation2()*PI/180.);
+ thePrs->SetNbPlanes(getNbPlanes());
+ thePrs->SetDisplacement(myPosSpn->value());
+ for (int i = 0; i < getNbPlanes(); ++i) {
+ QCheckTableItem* anItem = (QCheckTableItem*)myPosTable->item(i, 1);
+ if (!anItem)
+ break;
+ if (!anItem->isChecked())
+ thePrs->SetPlanePosition(i, myPosTable->text(i, 0).toDouble());
+ else
+ thePrs->SetDefault(i);
+ }
+ return 1;
+}
+
+/*!
+ Called when orientation is changed
+*/
+void VisuGUI_CutPlanesPane::orientationChanged (int Id)
+{
+ if (Id == 0) { // RBxy->isChecked()
+ LabelRot1->setText(tr("LBL_ROT_X"));
+ LabelRot2->setText(tr("LBL_ROT_Y"));
+ } else if (Id == 1) { // RByz->isChecked()
+ LabelRot1->setText(tr("LBL_ROT_Y"));
+ LabelRot2->setText(tr("LBL_ROT_Z"));
+ } else {
+ LabelRot1->setText(tr("LBL_ROT_Z"));
+ LabelRot2->setText(tr("LBL_ROT_X"));
+ }
+ DrawTable();
+}
+
+/*!
+ Sets planes orientation and position
+*/
+void VisuGUI_CutPlanesPane::setPlanePos (const VISU::CutPlanes::Orientation orient)
+{
+ if (orient == VISU::CutPlanes::XY) // xy
+ {
+ RBxy->setChecked( true );
+ orientationChanged( 0 );
+ }
+ else if (orient == VISU::CutPlanes::YZ) // yz
+ {
+ RByz->setChecked( true );
+ orientationChanged( 1 );
+ }
+ else // zx
+ {
+ RBzx->setChecked( true );
+ orientationChanged( 2 );
+ }
+
+}
+
+/*!
+ Gets planes orientation
+*/
+VISU::CutPlanes::Orientation VisuGUI_CutPlanesPane::getOrientaion()
+{
+ VISU::CutPlanes::Orientation orient;
+ if ( RBxy->isChecked() ) // xy
+ orient = VISU::CutPlanes::XY;
+ else if ( RByz->isChecked() ) // yz
+ orient = VISU::CutPlanes::YZ;
+ else if ( RBzx->isChecked() ) // zx
+ orient = VISU::CutPlanes::ZX;
+ return orient;
+}
+
+/*!
+ Sets planes rotation
+*/
+void VisuGUI_CutPlanesPane::setRotation (const double r1, const double r2)
+{
+ Rot1->setValue( r1 );
+ Rot2->setValue( r2 );
+}
+
+/*!
+ Draw the table of planes positions
+*/
+void VisuGUI_CutPlanesPane::DrawTable()
+{
+ if (myCutPlanes == NULL) return;
+ if (!hasInit) return;
+
+ int aNbRows = myPosTable->numRows();
+ int aNbPlanes = getNbPlanes();
+
+ myCutPlanes->SetOrientation(getOrientaion(),getRotation1()*PI/180.,getRotation2()*PI/180.);
+ myCutPlanes->SetNbPlanes(aNbPlanes);
+ myCutPlanes->SetDisplacement(myPosSpn->value());
+ if (aNbRows>0)
+ for (int i = 0; i < aNbRows; ++i) {
+ QCheckTableItem* aItem = (QCheckTableItem*)myPosTable->item( i, 1 );
+ if (aItem == 0) break;
+ if (!aItem->isChecked())
+ myCutPlanes->SetPlanePosition(i, myPosTable->text(i, 0).toDouble());
+ }
+
+ if (aNbPlanes > aNbRows)
+ myPosTable->insertRows(aNbRows, aNbPlanes - aNbRows );
+ else if (aNbPlanes < aNbRows)
+ myPosTable->setNumRows(aNbPlanes);
+
+ int aMin = (aNbRows < aNbPlanes)? aNbRows : aNbPlanes;
+ for (int i = 0; i<aMin; i++) {
+ myPosTable->setText(i, 0, QString::number(myCutPlanes->GetPlanePosition(i)));
+ ((QCheckTableItem*)myPosTable->item( i, 1 ))->setChecked(myCutPlanes->IsDefault(i));
+ }
+
+ QHeader *vh = myPosTable->verticalHeader();
+ QString str("Plane# %1");
+ for (int i=aMin; i<aNbPlanes; i++) {
+ VisuGUI_NumEditItem* aEditItem = new VisuGUI_NumEditItem(myPosTable,
+ QTableItem::OnTyping,
+ QString::number(myCutPlanes->GetPlanePosition(i)));
+ aEditItem->setReplaceable(false);
+ aEditItem->setEnabled(!myCutPlanes->IsDefault(i));
+ myPosTable->setItem(i, 0, aEditItem);
+
+ QCheckTableItem* aCheck = new QCheckTableItem(myPosTable, 0);
+ aCheck->setChecked(myCutPlanes->IsDefault(i));
+ aCheck->setReplaceable(false);
+ myPosTable->setItem(i, 1, aCheck);
+
+ vh->setLabel( i, str.arg(i+1) );
+ }
+
+ // Update preview
+ if (myPreviewCheck->isChecked()) {
+ if (SVTK_ViewWindow* vf = VISU::GetViewWindow()) {
+ myCutPlanes->GetPL()->Update();
+ deletePlanes();
+ createPlanes();
+ vf->Repaint();
+ }
+ }
+}
+
+void VisuGUI_CutPlanesPane::setDefault (int all)
+{
+ myPosTable->setCurrentCell(-1, 1);
+ myPosTable->clearSelection();
+ if (all == 0) return;
+ if (all == 1)
+ for (int i = 0; i < getNbPlanes(); ++i)
+ ((QCheckTableItem*)myPosTable->item( i, 1 ))->setChecked(true);
+
+ for (int i = 0; i < getNbPlanes(); ++i) {
+ if ( ((QCheckTableItem*)myPosTable->item( i, 1 ))->isChecked() ) {
+ myCutPlanes->SetDefault(i);
+ myPosTable->setText( i, 0, QString::number(myCutPlanes->GetPlanePosition(i)));
+ myPosTable->item( i, 0 )->setEnabled(false);
+ } else
+ myPosTable->item( i, 0 )->setEnabled(true);
+ }
+}
+
+void VisuGUI_CutPlanesPane::onValueChanged (int theRow, int theCol)
+{
+ if (theCol == 0) {
+ QString aTxt = myPosTable->text(theRow, 0);
+ bool isChanged = !aTxt.isEmpty();
+ ((QCheckTableItem*)myPosTable->item(theRow, 1))->setChecked(!isChanged);
+
+ if (myPreviewCheck->isChecked()) {
+ //Update Preview
+ if (SVTK_ViewWindow* vf = VISU::GetViewWindow()) {
+ myCutPlanes->SetPlanePosition( theRow, aTxt.toDouble());
+ myCutPlanes->GetPL()->Update();
+ deletePlanes();
+ createPlanes();
+ vf->Repaint();
+ }
+ }
+ } else {
+ bool isDefault = ((QCheckTableItem*)myPosTable->item(theRow, theCol))->isChecked();
+ if (isDefault) {
+ myCutPlanes->SetDefault(theRow);
+ myPosTable->setText(theRow, 0, QString::number(myCutPlanes->GetPlanePosition(theRow)));
+
+ if (myPreviewCheck->isChecked()) {
+ if (SVTK_ViewWindow* vf = VISU::GetViewWindow()) {
+ //Update Preview
+ myCutPlanes->GetPL()->Update();
+ deletePlanes();
+ createPlanes();
+ vf->Repaint();
+ }
+ }
+ }
+ myPosTable->item(theRow, 0)->setEnabled(!isDefault);
+ }
+}
+
+void VisuGUI_CutPlanesPane::deletePlanes()
+{
+ if (myPreviewActor == 0) return;
+ if (SVTK_ViewWindow* vf = VISU::GetViewWindow())
+ vf->RemoveActor(myPreviewActor);
+ myPreviewActor->Delete();
+ myPreviewActor = 0;
+}
+
+void VisuGUI_CutPlanesPane::onRotation (double theValue)
+{
+ if (myCutPlanes == NULL) return;
+ if (myPreviewCheck->isChecked()) {
+ if (SVTK_ViewWindow* vf = VISU::GetViewWindow()) {
+ myCutPlanes->SetOrientation(getOrientaion(),getRotation1()*PI/180.,getRotation2()*PI/180.);
+ myCutPlanes->GetPL()->Update();
+ deletePlanes();
+ createPlanes();
+ vf->Repaint();
+ }
+ }
+}
+
+void VisuGUI_CutPlanesPane::onPreviewCheck (bool thePreview)
+{
+ if (SVTK_ViewWindow* vf = VISU::GetViewWindow()) {
+ if (thePreview) {
+ storeToPrsObject(myCutPlanes);
+ myCutPlanes->GetPL()->Update();
+ createPlanes();
+ vf->onFitAll();
+ } else {
+ deletePlanes();
+ vf->Repaint();
+ }
+ }
+}
+
+//###################################################################
+
+
+/*!
+ Constructor
+*/
+VisuGUI_CutPlanesDlg::VisuGUI_CutPlanesDlg (SalomeApp_Module* theModule)
+ : QDialog(VISU::GetDesktop(theModule), "VisuGUI_CutPlanesDlg", false,
+ WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
+{
+ setCaption("Cut Planes Definition");
+ setSizeGripEnabled(true);
+
+ QVBoxLayout* TopLayout = new QVBoxLayout (this);
+ TopLayout->setSpacing(6);
+ TopLayout->setMargin(11);
+
+ // Tab pane
+ QTabWidget* aTabBox = new QTabWidget(this);
+ myCutPane = new VisuGUI_CutPlanesPane(this/*, myMgr*/);
+ aTabBox->addTab(myCutPane, "Cut Planes");
+ myScalarPane = new VisuGUI_ScalarBarPane(this, false);
+ myScalarPane->setMargin(5);
+ aTabBox->addTab(myScalarPane, "Scalar Bar");
+
+ TopLayout->addWidget(aTabBox);
+
+ QGroupBox* GroupButtons = new QGroupBox(this, "GroupButtons");
+ GroupButtons->setGeometry(QRect(10, 10, 281, 48));
+ GroupButtons->setTitle("");
+ GroupButtons->setColumnLayout(0, Qt::Vertical);
+ GroupButtons->layout()->setSpacing(0);
+ GroupButtons->layout()->setMargin(0);
+ QGridLayout* GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
+ GroupButtonsLayout->setAlignment(Qt::AlignTop);
+ GroupButtonsLayout->setSpacing(6);
+ GroupButtonsLayout->setMargin(11);
+
+ QPushButton* buttonOk = new QPushButton(tr("&OK"), GroupButtons, "buttonOk");
+ buttonOk->setAutoDefault(TRUE);
+ buttonOk->setDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonOk, 0, 0);
+ GroupButtonsLayout->addItem(new QSpacerItem(5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 1);
+
+ QPushButton* buttonCancel = new QPushButton(tr("&Cancel"), GroupButtons, "buttonCancel");
+ buttonCancel->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonCancel, 0, 2);
+
+ TopLayout->addWidget(GroupButtons);
+
+ connect(buttonOk, SIGNAL(clicked()), this, SLOT(accept()));
+ connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
+ //connect(myMgr, SIGNAL(closeAllViews()), this, SLOT(reject()));
+ //connect(VisuGUI::application()->desktop(),
+ // SIGNAL(windowActivated(SUIT_ViewWindow*)),
+ // this, SLOT(onWindowActivated(SUIT_ViewWindow*)));
+}
+
+void VisuGUI_CutPlanesDlg::initFromPrsObject (VISU::CutPlanes_i* thePrs)
+{
+ myPrs = thePrs;
+ myScalarPane->initFromPrsObject(thePrs);
+ myCutPane->initFromPrsObject(thePrs);
+}
+
+int VisuGUI_CutPlanesDlg::storeToPrsObject (VISU::CutPlanes_i* thePrs)
+{
+ return (myScalarPane->storeToPrsObject(thePrs) &&
+ myCutPane->storeToPrsObject(thePrs));
+}
+
+void VisuGUI_CutPlanesDlg::accept()
+{
+ //if ( !VisuGUI::CheckActiveStudyLock() ) {
+ // reject();
+ // return;
+ //}
+ if (myScalarPane->check())
+ {
+ myScalarPane->deletePreview();
+ QDialog::accept();
+ }
+}
+
+void VisuGUI_CutPlanesDlg::reject() {
+ myScalarPane->deletePreview();
+ QDialog::reject();
+}
+
+//void VisuGUI_CutPlanesDlg::onWindowActivated (SUIT_ViewWindow* theWnd)
+//{
+// if (theWnd != myStudyWnd)
+// reject();
+//}
+
+//###################################################################
+
+QWidget* VisuGUI_NumEditItem::createEditor() const
+{
+ QLineEdit *editline = new QLineEdit(text(), table()->viewport());
+ QDoubleValidator *dvalidator = new QDoubleValidator(table()->viewport());
+ dvalidator->setDecimals(32);
+ editline->setValidator(dvalidator);
+ return editline;
+}
--- /dev/null
+// VISU VISUGUI : GUI of VISU component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : VisuGUI_MagnitudeDlg.cxx
+// Author : Laurent CORNABE & Hubert ROLLAND
+// Module : VISU
+// $Header$
+
+#include "VisuGUI_DeformedShapeDlg.h"
+
+#include "VisuGUI_Tools.h"
+
+#include "VISU_DeformedShape_i.hh"
+
+#include "SalomeApp_Module.h"
+#include "SUIT_Desktop.h"
+
+#include <qlayout.h>
+#include <qtabwidget.h>
+
+using namespace std;
+
+/*!
+ * Constructor
+ */
+VisuGUI_DeformedShapeDlg::VisuGUI_DeformedShapeDlg (SalomeApp_Module* theModule)
+ : QDialog(VISU::GetDesktop(theModule), "VisuGUI_DeformedShapeDlg", true,
+ WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
+{
+ setCaption(tr("DLG_TITLE"));
+ setSizeGripEnabled(TRUE);
+
+ QVBoxLayout* TopLayout = new QVBoxLayout (this);
+ TopLayout->setSpacing(6);
+ TopLayout->setMargin(11);
+
+ QTabWidget* aTabBox = new QTabWidget (this);
+
+ // Deformed shape pane
+ QVBox* aBox = new QVBox (this);
+ aBox->setMargin(11);
+ QFrame* TopGroup = new QFrame (aBox, "TopGroup");
+ TopGroup->setFrameStyle(QFrame::Box | QFrame::Sunken);
+ TopGroup->setLineWidth(1);
+ QGridLayout* TopGroupLayout = new QGridLayout (TopGroup);
+ TopGroupLayout->setAlignment(Qt::AlignTop | Qt::AlignCenter);
+ TopGroupLayout->setSpacing(6);
+ TopGroupLayout->setMargin(11);
+
+ // Scale factor
+ QLabel* ScaleLabel = new QLabel (tr("SCALE_FACTOR"), TopGroup, "ScaleLabel");
+ TopGroupLayout->addWidget(ScaleLabel, 0, 0);
+
+ ScalFact = new QtxDblSpinBox (0.0, 1.0E+38, 0.1, TopGroup);
+ ScalFact->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
+ ScalFact->setPrecision(5);
+ ScalFact->setValue(0.1);
+ TopGroupLayout->addWidget(ScalFact, 0, 1);
+
+ // Magnitude coloring
+ UseMagn = new QCheckBox (tr("MAGNITUDE_COLORING"), TopGroup, "UseMagn");
+ UseMagn->setChecked(true);
+ TopGroupLayout->addMultiCellWidget(UseMagn, 1, 1, 0, 1);
+
+ aTabBox->addTab(aBox, tr("DEFORMED_SHAPE_TAB"));
+
+ // Scalar bar pane
+ myScalarPane = new VisuGUI_ScalarBarPane (this, false);
+ myScalarPane->setMargin(5);
+
+ aTabBox->addTab(myScalarPane, tr("SCALAR_BAR_TAB"));
+
+ // Buttons
+ QGroupBox* GroupButtons = new QGroupBox (this, "GroupButtons");
+ GroupButtons->setGeometry(QRect(10, 10, 281, 48));
+ GroupButtons->setColumnLayout(0, Qt::Vertical);
+ GroupButtons->layout()->setSpacing(0);
+ GroupButtons->layout()->setMargin(0);
+ QGridLayout* GroupButtonsLayout = new QGridLayout (GroupButtons->layout());
+ GroupButtonsLayout->setAlignment(Qt::AlignTop);
+ GroupButtonsLayout->setSpacing(6);
+ GroupButtonsLayout->setMargin(11);
+
+ QPushButton* buttonOk = new QPushButton (tr("&OK"), GroupButtons, "buttonOk");
+ buttonOk->setAutoDefault(TRUE);
+ buttonOk->setDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonOk, 0, 0);
+
+ GroupButtonsLayout->addItem(new QSpacerItem (5, 5, QSizePolicy::Expanding,
+ QSizePolicy::Minimum), 0, 1);
+
+ QPushButton* buttonCancel = new QPushButton (tr("&Cancel") , GroupButtons, "buttonCancel");
+ buttonCancel->setAutoDefault(TRUE);
+ GroupButtonsLayout->addWidget(buttonCancel, 0, 2);
+
+ // Add Tab box and Buttons to the top layout
+ TopLayout->addWidget(aTabBox);
+ TopLayout->addWidget(GroupButtons);
+
+ // signals and slots connections
+ connect(buttonOk, SIGNAL(clicked()), this, SLOT(accept()));
+ connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
+}
+
+void VisuGUI_DeformedShapeDlg::initFromPrsObject (VISU::DeformedShape_i* thePrs)
+{
+ myScalarPane->initFromPrsObject(thePrs);
+ setFactor(thePrs->GetScale());
+ UseMagn->setChecked(thePrs->IsColored());
+}
+
+int VisuGUI_DeformedShapeDlg::storeToPrsObject(VISU::DeformedShape_i* thePrs) {
+ myScalarPane->storeToPrsObject(thePrs);
+ thePrs->SetScale(getFactor());
+ thePrs->ShowColored(isColored());
+ return 1;
+}
+
+void VisuGUI_DeformedShapeDlg::accept() {
+ if (myScalarPane->check())
+ {
+ myScalarPane->deletePreview();
+ QDialog::accept();
+ }
+}
+
+void VisuGUI_DeformedShapeDlg::reject()
+{
+ myScalarPane->deletePreview();
+ QDialog::reject();
+}
--- /dev/null
+// VISU VISUGUI : GUI of VISU component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : VisuGUI_MagnitudeDlg.h
+// Author : Laurent CORNABE & Hubert ROLLAND
+// Module : VISU
+// $Header$
+
+#ifndef VISUGUI_DEFORMEDSHAPEDLS_H
+#define VISUGUI_DEFORMEDSHAPEDLS_H
+
+#include "VisuGUI_ScalarBarDlg.h"
+
+#include "QtxDblSpinBox.h"
+
+#include <qdialog.h>
+#include <qgroupbox.h>
+#include <qcheckbox.h>
+#include <qlabel.h>
+#include <qpushbutton.h>
+
+class SalomeApp_Module;
+
+namespace VISU{
+ class DeformedShape_i;
+}
+
+class VisuGUI_DeformedShapeDlg : public QDialog
+{
+ Q_OBJECT
+
+public:
+ VisuGUI_DeformedShapeDlg (SalomeApp_Module* theModule);
+ ~VisuGUI_DeformedShapeDlg() {};
+
+ double getFactor()
+ { return ScalFact->value(); }
+ void setFactor(double theFactor)
+ { ScalFact->setValue(theFactor); }
+
+ bool isColored()
+ { return UseMagn->isChecked(); }
+
+ void initFromPrsObject(VISU::DeformedShape_i* thePrs);
+ int storeToPrsObject(VISU::DeformedShape_i* thePrs);
+
+protected slots:
+ void accept();
+ void reject();
+
+ private:
+ QtxDblSpinBox* ScalFact;
+ QCheckBox* UseMagn;
+ VisuGUI_ScalarBarPane* myScalarPane;
+};
+
+#endif // VISUGUI_DEFORMEDSHAPEDLS_H
--- /dev/null
+// VISU VISUGUI : GUI of VISU component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : VisuGUI_IsoSurfacesDlg.cxx
+// Author : Laurent CORNABE & Hubert ROLLAND
+// Module : VISU
+// $Header$
+
+#include "VisuGUI_IsoSurfacesDlg.h"
+
+#include "VisuGUI.h"
+#include "VisuGUI_Tools.h"
+
+#include "SalomeApp_Application.h"
+
+#include "SUIT_Desktop.h"
+#include "SUIT_MessageBox.h"
+
+#include <limits.h>
+
+#include <qlayout.h>
+#include <qvalidator.h>
+#include <qtabwidget.h>
+
+using namespace std;
+
+
+VisuGUI_IsoSurfPane::VisuGUI_IsoSurfPane (QWidget* parent)
+ : QVBox(parent)
+{
+ QFrame* TopGroup = new QFrame( this, "TopGroup" );
+ TopGroup->setFrameStyle(QFrame::Box | QFrame::Sunken);
+ TopGroup->setLineWidth(1);
+
+ QGridLayout* TopGroupLayout = new QGridLayout(TopGroup);
+ TopGroupLayout->setAlignment( Qt::AlignTop );
+ TopGroupLayout->setSpacing( 6 );
+ TopGroupLayout->setMargin( 11 );
+
+ QLabel* LabelNbr = new QLabel (tr("NB_SURFACES"), TopGroup, "LabelNbr");
+ TopGroupLayout->addWidget( LabelNbr, 0, 0 );
+ NbrIso = new QSpinBox( 1, 100, 1, TopGroup, "NbrIso" );
+ NbrIso->setValue( 1 );
+ TopGroupLayout->addWidget( NbrIso, 0, 1 );
+
+ QLabel* LabelMin = new QLabel (tr("MIN_VALUE"), TopGroup, "LabelMin");
+ TopGroupLayout->addWidget(LabelMin, 1, 0);
+ //MinIso = new QtxDblSpinBox( -DBL_MAX, DBL_MAX, 0.1, TopGroup );
+ MinIso = new QLineEdit( TopGroup );
+ MinIso->setValidator( new QDoubleValidator(TopGroup) );
+ MinIso->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+ MinIso->setMinimumSize( 70, 0 );
+ LabelMin->setBuddy(MinIso);
+ TopGroupLayout->addWidget( MinIso, 1, 1 );
+
+ QLabel* LabelMax = new QLabel (tr("MAX_VALUE"), TopGroup, "LabelMax");
+ TopGroupLayout->addWidget( LabelMax, 2, 0 );
+ //MaxIso = new QtxSpinBoxDbl( -DBL_MAX, DBL_MAX, 0.1, TopGroup );
+ MaxIso = new QLineEdit( TopGroup );
+ MaxIso->setValidator( new QDoubleValidator(TopGroup) );
+ MaxIso->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+ MaxIso->setMinimumSize( 70, 0 );
+ LabelMax->setBuddy(MaxIso);
+ TopGroupLayout->addWidget( MaxIso, 2, 1 );
+
+
+// CBUpdate = new QCheckBox ( tr( "Update scalar bar with these values" ), TopGroup);
+// CBUpdate->setSizePolicy( QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed) );
+// TopGroupLayout->addMultiCellWidget( CBUpdate, 4, 4, 0, 1);
+// CBUpdate->setChecked(false);
+ QPushButton* aUpdateBtn = new QPushButton( "Update scalar bar range with these values", TopGroup);
+ TopGroupLayout->addMultiCellWidget( aUpdateBtn, 3, 3, 0, 1);
+ connect( aUpdateBtn, SIGNAL( clicked() ), this, SLOT(onCBUpdate() ) );
+
+// CBLog = new QCheckBox ( tr( "Logarithmic scaling" ), TopGroup);
+// CBLog->setSizePolicy( QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed) );
+// TopGroupLayout->addMultiCellWidget( CBLog, 3, 3, 0, 1);
+}
+
+void VisuGUI_IsoSurfPane::initFromPrsObject (VISU::IsoSurfaces_i* thePrs)
+{
+ NbrIso->setValue(thePrs->GetNbSurfaces());
+ MinIso->setText(QString::number(thePrs->GetSubMin()));
+ MaxIso->setText(QString::number(thePrs->GetSubMax()));
+// switch(thePrs->GetScaling()){
+// case VISU::LOGARITHMIC :
+// CBLog->setChecked(true);
+// break;
+// default:
+// CBLog->setChecked(false);
+// }
+}
+
+int VisuGUI_IsoSurfPane::storeToPrsObject (VISU::IsoSurfaces_i* thePrs)
+{
+ thePrs->SetNbSurfaces(NbrIso->value());
+ thePrs->SetSubRange(MinIso->text().toDouble(), MaxIso->text().toDouble());
+ return 1;
+// if (CBUpdate->isChecked())
+// {
+// thePrs->SetRange(MinIso->text().toDouble(), MaxIso->text().toDouble());
+// if (CBLog->isChecked())
+// thePrs->SetScaling(VISU::LOGARITHMIC);
+// else
+// thePrs->SetScaling(VISU::LINEAR);
+// }
+}
+
+void VisuGUI_IsoSurfPane::onCBUpdate()
+{
+ // if (CBUpdate->isChecked()) {
+ myScalarPane->setRange(MinIso->text().toDouble(), MaxIso->text().toDouble(), true);
+ // }
+// CBLog->setDisabled(false);
+// else CBLog->setDisabled(true);
+}
+
+bool VisuGUI_IsoSurfPane::check()
+{
+ if (MinIso->text().toDouble() >= MaxIso->text().toDouble()) {
+ MESSAGE(tr("MSG_MINMAX_VALUES"));
+ SUIT_MessageBox::warn1( this,tr("WRN_VISU"),
+ tr("MSG_MINMAX_VALUES"),
+ tr("BUT_OK"));
+ return false;
+ } // else if (/* CBUpdate->isChecked() && CBLog->isChecked() && */
+// (MinIso->text().toDouble() <=0 || MaxIso->text().toDouble() <=0) ) {
+// SUIT_MessageBox::warn1( this,
+// tr("WRN_VISU"),
+// tr("WRN_LOGARITHMIC_RANGE_ISOSURF"),
+// tr("BUT_OK"));
+// return false;
+// }
+ return true;
+}
+
+
+
+
+
+/*!
+ Constructor
+*/
+VisuGUI_IsoSurfacesDlg::VisuGUI_IsoSurfacesDlg (SalomeApp_Module* theModule)
+ : QDialog(VISU::GetDesktop(theModule), "VisuGUI_IsoSurfacesDlg", true,
+ WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
+{
+ setCaption(tr("DEFINE_ISOSURFACES"));
+ setSizeGripEnabled( TRUE );
+
+ QVBoxLayout* TopLayout = new QVBoxLayout(this);
+ TopLayout->setSpacing( 6 );
+ TopLayout->setMargin(11);
+
+ QTabWidget* aTabBox = new QTabWidget(this);
+ myIsoPane = new VisuGUI_IsoSurfPane(this);
+ myIsoPane->setMargin( 5 );
+ aTabBox->addTab(myIsoPane, "Iso Surface");
+ myScalarPane = new VisuGUI_ScalarBarPane(this, false);
+ myIsoPane->setScalarBarPane(myScalarPane);
+ myScalarPane->setMargin( 5 );
+ aTabBox->addTab(myScalarPane, "Scalar Bar");
+
+ TopLayout->addWidget(aTabBox);
+
+ QGroupBox* GroupButtons = new QGroupBox( this, "GroupButtons" );
+ GroupButtons->setGeometry( QRect( 10, 10, 281, 48 ) );
+ GroupButtons->setColumnLayout(0, Qt::Vertical );
+ GroupButtons->layout()->setSpacing( 0 );
+ GroupButtons->layout()->setMargin( 0 );
+ QGridLayout* GroupButtonsLayout = new QGridLayout( GroupButtons->layout() );
+ GroupButtonsLayout->setAlignment( Qt::AlignTop );
+ GroupButtonsLayout->setSpacing( 6 );
+ GroupButtonsLayout->setMargin( 11 );
+
+ QPushButton* buttonOk = new QPushButton( tr( "&OK" ), GroupButtons, "buttonOk" );
+ buttonOk->setAutoDefault( TRUE );
+ buttonOk->setDefault( TRUE );
+ GroupButtonsLayout->addWidget( buttonOk, 0, 0 );
+ GroupButtonsLayout->addItem( new QSpacerItem( 5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum ), 0, 1 );
+ QPushButton* buttonCancel = new QPushButton( tr( "&Cancel" ) , GroupButtons, "buttonCancel" );
+ buttonCancel->setAutoDefault( TRUE );
+ GroupButtonsLayout->addWidget( buttonCancel, 0, 2 );
+
+ TopLayout->addWidget(GroupButtons);
+
+ // signals and slots connections
+ connect( buttonOk, SIGNAL( clicked() ), this, SLOT( accept() ) );
+ connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
+}
+
+void VisuGUI_IsoSurfacesDlg::accept()
+{
+ if (myIsoPane->check() && myScalarPane->check())
+ {
+ myScalarPane->deletePreview();
+ QDialog::accept();
+ }
+}
+
+void VisuGUI_IsoSurfacesDlg::reject()
+{
+ myScalarPane->deletePreview();
+ QDialog::reject();
+}
--- /dev/null
+// VISU VISUGUI : GUI of VISU component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : VisuGUI_IsoSurfacesDlg.h
+// Author : Laurent CORNABE & Hubert ROLLAND
+// Module : VISU
+// $Header$
+
+#ifndef VISUGUI_ISOSURFACESDLG_H
+#define VISUGUI_ISOSURFACESDLG_H
+
+#include "VisuGUI_ScalarBarDlg.h"
+#include "VISU_IsoSurfaces_i.hh"
+
+#include <qdialog.h>
+#include <qlabel.h>
+#include <qgroupbox.h>
+#include <qspinbox.h>
+#include <qpushbutton.h>
+#include <qcheckbox.h>
+#include <qlineedit.h>
+
+class SalomeApp_Module;
+
+class VisuGUI_IsoSurfPane : public QVBox
+{
+ Q_OBJECT;
+
+ public:
+ VisuGUI_IsoSurfPane (QWidget* parent);
+ ~VisuGUI_IsoSurfPane() {};
+
+ void initFromPrsObject(VISU::IsoSurfaces_i* thePrs);
+ int storeToPrsObject(VISU::IsoSurfaces_i* thePrs);
+
+ void setScalarBarPane(VisuGUI_ScalarBarPane* theScalarPane) {myScalarPane = theScalarPane;}
+ VisuGUI_ScalarBarPane* getScalarBarPane() {return myScalarPane;}
+
+ bool check();
+
+ protected slots:
+ void onCBUpdate();
+
+ private:
+ QLineEdit* MinIso;
+ QLineEdit* MaxIso;
+ QSpinBox* NbrIso;
+ VisuGUI_ScalarBarPane* myScalarPane;
+};
+
+
+class VisuGUI_IsoSurfacesDlg : public QDialog
+{
+ Q_OBJECT;
+
+ public:
+ VisuGUI_IsoSurfacesDlg (SalomeApp_Module* theModule);
+ ~VisuGUI_IsoSurfacesDlg() {};
+
+ void initFromPrsObject(VISU::IsoSurfaces_i* thePrs)
+ {myScalarPane->initFromPrsObject(thePrs); myIsoPane->initFromPrsObject(thePrs);}
+
+ int storeToPrsObject(VISU::IsoSurfaces_i* thePrs)
+ {return myScalarPane->storeToPrsObject(thePrs) && myIsoPane->storeToPrsObject(thePrs);}
+
+ protected slots:
+ void accept();
+ void reject();
+
+ private:
+ VisuGUI_IsoSurfPane* myIsoPane;
+ VisuGUI_ScalarBarPane* myScalarPane;
+};
+
+#endif // VISUGUI_ISOSURFACESDLG_H
--- /dev/null
+// VISU VISUGUI : GUI of VISU component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : VisuGUI_StreamLinesDlg.cxx
+// Author : Vitaly SMETANNIKOV
+// Module : VISU
+
+#include "VisuGUI_StreamLinesDlg.h"
+
+#include "VisuGUI.h"
+#include "VisuGUI_Tools.h"
+
+#include "VISU_Mesh_i.hh"
+#include "VISU_Gen_i.hh"
+#include "VISU_StreamLines_i.hh"
+#include "VISU_StreamLinesPL.hxx"
+#include "VISU_Actor.h"
+
+#include "SalomeApp_Application.h"
+#include "LightApp_SelectionMgr.h"
+
+#include "SVTK_ViewWindow.h"
+
+#include "SUIT_Desktop.h"
+#include "SUIT_ResourceMgr.h"
+#include "SUIT_MessageBox.h"
+
+#include "SALOME_ListIO.hxx"
+
+#include <SALOMEDSClient_SObject.hxx>
+
+#include <limits.h>
+#include <qlayout.h>
+#include <qgroupbox.h>
+#include <qcolordialog.h>
+#include <qtabwidget.h>
+
+using namespace std;
+
+VisuGUI_StreamLinesDlg::VisuGUI_StreamLinesDlg (SalomeApp_Module* theModule)
+ : QDialog(VISU::GetDesktop(theModule), "VisuGUI_StreamLinesDlg", false,
+ WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
+ myVisuGUI(theModule)
+{
+ myPrs = NULL;
+ setCaption(tr("DLG_TITLE"));
+ setSizeGripEnabled(TRUE);
+
+ QVBoxLayout* aBoxLayout = new QVBoxLayout(this);
+ aBoxLayout->setSpacing( 6 );
+ aBoxLayout->setMargin( 11 );
+
+ QTabWidget* aTabBox = new QTabWidget(this);
+
+ QFrame* aTopBox = new QFrame(this);
+ aTopBox->setMargin( 11 );
+ QGridLayout* TopLayout = new QGridLayout( aTopBox );
+ TopLayout->setAlignment( Qt::AlignTop );
+ TopLayout->setSpacing( 8 );
+ TopLayout->setMargin( 11 );
+
+ // Source box
+ QGroupBox* aSourceBox = new QGroupBox (tr("SOURCE_GRP"), aTopBox);
+ aSourceBox->setColumnLayout(0, Qt::Vertical);
+ QGridLayout* aSrcLayout = new QGridLayout( aSourceBox->layout() );
+ aSrcLayout->setSpacing( 6 );
+ aSrcLayout->setMargin( 0 );
+
+ QLabel* aTypeLbl = new QLabel( tr( "LBL_SOURCE_TYPE" ), aSourceBox);
+ aSrcLayout->addWidget(aTypeLbl, 0, 0);
+
+ myUseSrcCombo = new QComboBox(aSourceBox);
+ const char* aChoise[] = { "None", "Entity", "Family", "Group", "Presentation", 0 };
+ myUseSrcCombo->insertStrList(aChoise);
+ aSrcLayout->addWidget(myUseSrcCombo, 0, 1);
+
+ mySrcCombo = new QComboBox(aSourceBox);
+ mySrcCombo->setEnabled((myUseSrcCombo->currentItem() == 0));
+
+ connect(myUseSrcCombo, SIGNAL(activated(int)), this, SLOT(onSourceTypeChange(int)));
+
+ // Find All prs obj
+ //SUIT_Study* aActiveStudy = VISU::(myVisuGUI);
+ _PTR(Study) aActiveStudy = VISU::GetCStudy(VISU::GetAppStudy(myVisuGUI));
+ LightApp_SelectionMgr* aSel = VISU::GetSelectionMgr(myVisuGUI);
+ SALOME_ListIO selected;
+ aSel->selectedObjects(selected);
+ if (selected.Extent() > 0) {
+ Handle(SALOME_InteractiveObject) aIO = selected.First();
+ if (aIO->hasEntry()) {
+ _PTR(SObject) aSObject = aActiveStudy->FindObjectID(aIO->getEntry());
+ aSObject = aSObject->GetFather();
+ aSObject = aSObject->GetFather();
+ aSObject = aSObject->GetFather();
+ aSObject = aSObject->GetFather();
+ mySelectionObj = aSObject;
+ CORBA::Object_var anObject = VISU::ClientSObjectToObject(mySelectionObj);
+ VISU::Result_var aResult;
+ if (CORBA::is_nil(anObject)) {
+ mySelectionObj = mySelectionObj->GetFather();
+ }
+ _PTR(ChildIterator) aIter = aActiveStudy->NewChildIterator(mySelectionObj);
+
+ for (aIter->InitEx(true); aIter->More(); aIter->Next()) {
+ _PTR(SObject) aChildSObj = aIter->Value();
+ CORBA::Object_var aChildObject = VISU::ClientSObjectToObject(aChildSObj);
+
+ if (!CORBA::is_nil(aChildObject)) {
+ VISU::Prs3d_var aPrsObj = VISU::Prs3d::_narrow(aChildObject);
+ if (!CORBA::is_nil(aPrsObj)) { // if this is a Prs object
+ if ((aPrsObj->GetType() != VISU::TSTREAMLINES) &&
+ (aPrsObj->GetType() != VISU::TMESH)) {
+ _PTR(GenericAttribute) anAttr;
+ if (aChildSObj->FindAttribute(anAttr, "AttributeName")) {
+ _PTR(AttributeName) aName (anAttr);
+ myPrsLst += QString(aName->Value().c_str());
+ myPrsList.append(aPrsObj);
+ continue;
+ }
+ }
+ }
+ }
+ // else { // This is not a Prs object
+ _PTR(GenericAttribute) anAttr;
+ if (aChildSObj->FindAttribute(anAttr, "AttributeComment")) {
+ _PTR(AttributeComment) aComment (anAttr);
+ string aComm = aComment->Value();
+ QString strIn (aComm.c_str());
+ VISU::Storable::TRestoringMap aMap;
+ VISU::Storable::StrToMap(strIn,aMap);
+ bool isExist;
+ VISU::VISUType aType = (VISU::VISUType)VISU::Storable::FindValue(aMap,"myType",&isExist).toInt();
+ if (isExist) {
+ if ((aType == VISU::TFAMILY) || (aType == VISU::TGROUP) || (aType == VISU::TENTITY)) {
+ _PTR(GenericAttribute) aNameAttr;
+ if (aChildSObj->FindAttribute(aNameAttr, "AttributeName")) {
+ _PTR(AttributeName) aName (aNameAttr);
+ VISU::Prs3d_var aPrsObj = VISU::Prs3d::_narrow(aChildObject);
+ switch (aType) {
+ case VISU::TFAMILY:
+ myFamilisLst += QString(aName->Value().c_str());
+ myFamilyList.append(aPrsObj);
+ break;
+ case VISU::TGROUP:
+ myGroupsLst += QString(aName->Value().c_str());
+ myGroupList.append(aPrsObj);
+ break;
+ case VISU::TENTITY:
+ myEntitiesLst += QString(aName->Value().c_str());
+ myEntityList.append(aPrsObj);
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // connect(myUseSrcChk, SIGNAL(toggled(bool)), mySrcCombo, SLOT(setEnabled(bool)));
+ aSrcLayout->addMultiCellWidget(mySrcCombo, 1, 1, 0, 1);
+
+ QLabel* aPercentLbl = new QLabel (tr("LBL_USED_POINTS"), aSourceBox);
+ aSrcLayout->addWidget(aPercentLbl, 2, 0);
+
+ myPntPercent = new QtxDblSpinBox( 0, 1, 0.1, aSourceBox );
+ aSrcLayout->addWidget(myPntPercent, 2, 1);
+
+ TopLayout->addMultiCellWidget(aSourceBox, 0, 0, 0, 1);
+
+ QLabel* aStepLenLbl = new QLabel (tr("LBL_STEP_LENGTH"), aTopBox);
+ TopLayout->addWidget(aStepLenLbl, 1, 0);
+ myStepLen = new QtxDblSpinBox( DBL_MIN, DBL_MAX, 0.1, aTopBox );
+ myStepLen->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+ TopLayout->addWidget(myStepLen, 1, 1);
+ connect(myStepLen, SIGNAL(valueChanged(double)), this, SLOT(StepLengthChanged(double)));
+
+ QLabel* aIntegStepLenLbl = new QLabel (tr("LBL_INTEGRATION_STEP"), aTopBox);
+ TopLayout->addWidget(aIntegStepLenLbl, 2, 0);
+ myIntegStepLen = new QtxDblSpinBox( DBL_MIN, DBL_MAX, 0.1, aTopBox );
+ myIntegStepLen->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+ TopLayout->addWidget(myIntegStepLen, 2, 1);
+ connect(myIntegStepLen, SIGNAL(valueChanged(double)), this, SLOT(IntegrationStepChanged(double)));
+
+ QLabel* aPropagationLbl = new QLabel (tr("LBL_PROPAGATION_TIME"), aTopBox);
+ TopLayout->addWidget(aPropagationLbl, 3, 0);
+ myPropTime = new QtxDblSpinBox( DBL_MIN, DBL_MAX, 1, aTopBox );
+ myPropTime->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+ TopLayout->addWidget(myPropTime, 3, 1);
+ connect(myPropTime, SIGNAL(valueChanged(double)), this, SLOT(PropagationTimeChanged(double)));
+
+ QLabel* aDirLbl = new QLabel (tr("LBL_DIRECTION"),aTopBox);
+ TopLayout->addWidget(aDirLbl, 4, 0);
+ myDirCombo = new QComboBox(aTopBox);
+ myDirCombo->insertItem("Forward");
+ myDirCombo->insertItem("Backward");
+ myDirCombo->insertItem("Both");
+ TopLayout->addWidget(myDirCombo, 4, 1);
+
+ myUseScalar = new QCheckBox (tr("MAGNITUDE_COLORING_CHK"), aTopBox, "UseMagn");
+ connect( myUseScalar, SIGNAL( clicked() ), this, SLOT( enableSetColor() ) );
+ TopLayout->addWidget(myUseScalar, 5, 0);
+
+ SelColor = new QPushButton (tr("USE_COLOR_BTN"), aTopBox, "SelColor");
+ connect( SelColor, SIGNAL( clicked() ), this, SLOT( setVColor() ) );
+ TopLayout->addWidget( SelColor, 5, 1);
+
+ aTabBox->addTab(aTopBox, "Stream Lines");
+ myScalarPane = new VisuGUI_ScalarBarPane(this, false);
+ myScalarPane->setMargin( 5 );
+ aTabBox->addTab(myScalarPane, "Scalar Bar");
+
+ aBoxLayout->addWidget(aTabBox);
+
+ QGroupBox* aGroupButtons = new QGroupBox( this, "GroupButtons" );
+ aGroupButtons->setColumnLayout(0, Qt::Vertical );
+ aGroupButtons->layout()->setSpacing( 0 );
+ aGroupButtons->layout()->setMargin( 0 );
+
+ QGridLayout* aGroupButtonsLayout = new QGridLayout( aGroupButtons->layout() );
+ aGroupButtonsLayout->setAlignment( Qt::AlignTop );
+ aGroupButtonsLayout->setSpacing( 6 );
+ aGroupButtonsLayout->setMargin( 11 );
+
+ QPushButton* aOkBtn = new QPushButton( tr( "&OK" ), aGroupButtons, "buttonOk" );
+ aOkBtn->setAutoDefault( TRUE );
+ aOkBtn->setDefault( TRUE );
+ aGroupButtonsLayout->addWidget( aOkBtn, 0, 0 );
+ aGroupButtonsLayout->addItem( new QSpacerItem( 5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum ), 0, 1 );
+
+ QPushButton* aCancelBtn = new QPushButton( tr( "&Cancel" ) , aGroupButtons, "buttonCancel" );
+ aCancelBtn->setAutoDefault( TRUE );
+ aGroupButtonsLayout->addWidget( aCancelBtn, 0, 2 );
+ connect( aOkBtn, SIGNAL( clicked() ), this, SLOT( accept() ) );
+ connect( aCancelBtn, SIGNAL( clicked() ), this, SLOT( reject() ) );
+
+ aBoxLayout->addWidget(aGroupButtons);
+
+ enableSetColor();
+}
+
+
+
+void VisuGUI_StreamLinesDlg::initFromPrsObject (VISU::StreamLines_i* thePrs)
+{
+ myScalarPane->initFromPrsObject(thePrs);
+
+ myPrs = thePrs;
+ static int aNbOfSteps = 30;
+ VISU_StreamLinesPL* aStreamLinesPL = thePrs->GetStreamLinesPL();
+ float aMin, aMax;
+ aMin = aStreamLinesPL->GetMinPropagationTime();
+ aMax = aStreamLinesPL->GetMaxPropagationTime();
+ myPropTime->setRange(aMin,aMax);
+ myPropTime->setValue(aStreamLinesPL->GetPropagationTime());
+ myPropTime->setLineStep((aMax-aMin)/aNbOfSteps);
+
+ aMin = aStreamLinesPL->GetMinStepLength();
+ aMax = aStreamLinesPL->GetMaxStepLength();
+ myStepLen->setRange(aMin,aMax);
+ myStepLen->setValue(aStreamLinesPL->GetStepLength());
+ myStepLen->setLineStep((aMax-aMin)/aNbOfSteps);
+
+ aMin = aStreamLinesPL->GetMinIntegrationStep();
+ aMax = aStreamLinesPL->GetMaxIntegrationStep();
+ myIntegStepLen->setRange(aMin,aMax);
+ myIntegStepLen->setValue(aStreamLinesPL->GetIntegrationStep());
+ myIntegStepLen->setLineStep((aMax-aMin)/aNbOfSteps);
+
+ switch (thePrs->GetDirection()) {
+ case VISU::StreamLines::FORWARD:
+ myDirCombo->setCurrentItem(0);
+ break;
+ case VISU::StreamLines::BACKWARD:
+ myDirCombo->setCurrentItem(1);
+ break;
+ case VISU::StreamLines::BOTH:
+ myDirCombo->setCurrentItem(2);
+ }
+ myUseScalar->setChecked(thePrs->IsColored());
+ myPntPercent->setValue(thePrs->GetUsedPoints());
+
+ mySrcCombo->setEnabled(false);
+ QString aSrcEntry = thePrs->GetSourceEntry();
+
+ SALOMEDS::Color anOldColor = thePrs->GetColor();
+ QColor aColor = QColor(int(255*anOldColor.R),int(255*anOldColor.G),int(255*anOldColor.B));
+ setColor(aColor);
+ enableSetColor();
+
+#define INITPRS(PRSLIST, PRSNUM) \
+ for (int i = 0; i < PRSLIST.count(); i++) { \
+ VISU::Prs3d_i* aPrs = dynamic_cast<VISU::Prs3d_i*>(VISU::GetServant(PRSLIST[i]).in()); \
+ if (aPrs == NULL) continue; \
+ if (aSrcEntry == aPrs->GetEntry()) { \
+ onSourceTypeChange(PRSNUM); \
+ myUseSrcCombo->setCurrentItem(PRSNUM); \
+ mySrcCombo->setEnabled(true); \
+ mySrcCombo->setCurrentItem(i); \
+ return; \
+ } \
+ }
+
+ if (!aSrcEntry.isEmpty()) {
+ INITPRS(myEntityList, 1);
+ INITPRS(myFamilyList, 2);
+ INITPRS(myGroupList, 3);
+ INITPRS(myPrsList, 4);
+ }
+#undef INITPRS
+}
+
+int VisuGUI_StreamLinesDlg::storeToPrsObject (VISU::StreamLines_i* thePrs)
+{
+ bool isAccepted = myScalarPane->storeToPrsObject(thePrs);
+ if (isAccepted) {
+ thePrs->ShowColored(myUseScalar->isChecked());
+ if (!thePrs->IsColored()) {
+ SALOMEDS::Color aColor;
+ aColor.R = myColor.red()/255.;
+ aColor.G = myColor.green()/255.;
+ aColor.B = myColor.blue()/255.;
+ thePrs->SetColor(aColor);
+ }
+
+ VISU::StreamLines::Direction aDirection = VISU::StreamLines::BOTH;
+ switch (myDirCombo->currentItem()) {
+ case 0:
+ aDirection = VISU::StreamLines::FORWARD;
+ break;
+ case 1:
+ aDirection = VISU::StreamLines::BACKWARD;
+ break;
+ case 2:
+ aDirection = VISU::StreamLines::BOTH;
+ }
+
+ VISU::Prs3d_var aPrs;
+ int aSrcSelection = myUseSrcCombo->currentItem();
+ int aSrcItem = (mySrcCombo->count() > 0)? mySrcCombo->currentItem() : -1;
+ if ((aSrcSelection > 0) && (aSrcItem > -1)) {
+ VISU::VISUType aType;
+ QString aName;
+ switch (aSrcSelection) {
+ case 1: // Entity
+ aPrs = myEntityList[aSrcItem];
+ aType = VISU::TENTITY;
+ aName = myEntitiesLst[aSrcItem];
+ break;
+ case 2: // Family
+ aPrs = myFamilyList[aSrcItem];
+ aType = VISU::TFAMILY;
+ aName = myFamilisLst[aSrcItem];
+ break;
+ case 3: // Group
+ aPrs = myGroupList[aSrcItem];
+ aType = VISU::TGROUP;
+ aName = myGroupsLst[aSrcItem];
+ break;
+ case 4: // Presentation
+ aPrs = myPrsList[aSrcItem];
+ break;
+ }
+ if (CORBA::is_nil(aPrs) && aSrcSelection != 4) {
+ aPrs = createMesh(aType, aName);
+ }
+ }
+ isAccepted = thePrs->SetParams(myIntegStepLen->value(),
+ myPropTime->value(),
+ myStepLen->value(),
+ aPrs,
+ myPntPercent->value(),
+ aDirection);
+ }
+ //if (!isAccepted)
+ // SUIT_MessageBox::warn1(VisuGUI::application()->desktop(), tr("WRN_VISU"),
+ // tr("ERR_CANT_BUILD_PRESENTATION"),
+ // tr("BUT_OK"));
+ return isAccepted;
+}
+
+/*!
+ Sets color
+*/
+void VisuGUI_StreamLinesDlg::setColor( QColor color )
+{
+ myColor = color;
+ SelColor->setPaletteBackgroundColor(myColor);
+}
+
+
+/*!
+ Called when "Select Color" buttonx clicked
+*/
+void VisuGUI_StreamLinesDlg::setVColor()
+{
+ QColor cnew = QColorDialog::getColor( myColor, this );
+ if ( cnew.isValid() )
+ setColor( cnew );
+}
+
+
+/*!
+ Enbled/disables magnitude coloring
+*/
+void VisuGUI_StreamLinesDlg::enableMagnColor( bool enable )
+{
+ myUseScalar->setEnabled( enable );
+ enableSetColor();
+}
+
+/*!
+ Called when "Magnitude Coloring" check box clicked
+*/
+void VisuGUI_StreamLinesDlg::enableSetColor()
+{
+ SelColor->setEnabled(!myUseScalar->isChecked() );
+}
+
+void VisuGUI_StreamLinesDlg::StepLengthChanged(double theValue){
+}
+
+void VisuGUI_StreamLinesDlg::IntegrationStepChanged(double theValue) {
+}
+
+void VisuGUI_StreamLinesDlg::PropagationTimeChanged(double theValue) {
+ myStepLen->setMaxValue(theValue);
+}
+
+void VisuGUI_StreamLinesDlg::onSourceTypeChange(int theIndex) {
+ mySrcCombo->clear();
+ if (theIndex == 0) {
+ mySrcCombo->setEnabled(false);
+ return;
+ } else
+ mySrcCombo->setEnabled(true);
+
+ switch(theIndex) {
+ case 1: // Entity
+ mySrcCombo->insertStringList(myEntitiesLst);
+ return;
+ case 2: // Family
+ mySrcCombo->insertStringList(myFamilisLst);
+ return;
+ case 3: // Group
+ mySrcCombo->insertStringList(myGroupsLst);
+ return;
+ case 4: // Presentation
+ mySrcCombo->insertStringList(myPrsLst);
+ return;
+ }
+}
+
+
+VISU::Mesh_ptr VisuGUI_StreamLinesDlg::createMesh (VISU::VISUType theType, QString theName)
+{
+ return VISU::Mesh::_nil();
+/*
+ CORBA::Object_var anObject = VISU::ClientSObjectToObject(mySelectionObj);
+ VISU::Result_var aResult;
+ if (!CORBA::is_nil(anObject)) {
+ aResult = VISU::Result::_narrow(anObject);
+ }
+ if (CORBA::is_nil(aResult)) {
+ SUIT_MessageBox::warn1(VisuGUI::application()->desktop(), tr("VISU_WARNING"),
+ tr("WRN_NO_AVAILABLE_DATA"),
+ tr("BUT_OK"));
+ return VISU::Mesh::_nil();
+ }
+ SALOMEDSClient_ChildIterator* aIter = VisuGUI::GetStudyDocument()->NewChildIterator( mySelectionObj );
+ VISU::Storable::TRestoringMap aMap;
+
+ for (aIter->InitEx(true); aIter->More(); aIter->Next() ) {
+ SALOMEDSClient_SObject* aChildSObj = aIter->Value();
+ SALOMEDSClient_GenericAttribute* anAttr;
+ if (aChildSObj->FindAttribute(anAttr, "AttributeComment")) {
+ SALOMEDSClient_AttributeComment* aComment = dynamic_cast<SALOMEDSClient_AttributeComment*>( anAttr );
+ CORBA::String_var aComm = aComment->Value().c_str();
+ QString strIn(aComm.in());
+ aMap.clear();
+ VISU::Storable::StrToMap(strIn,aMap);
+ bool isExist;
+ VISU::VISUType aType = (VISU::VISUType)VISU::Storable::FindValue(aMap,"myType",&isExist).toInt();
+ if (isExist) {
+ if (aType != theType) continue;
+
+ SALOMEDSClient_GenericAttribute* aNameAttr;
+ if ( aChildSObj->FindAttribute(aNameAttr, "AttributeName") ) {
+ SALOMEDSClient_AttributeName* aName = dynamic_cast<SALOMEDSClient_AttributeName*>(aNameAttr);
+ if (QString(aName->Value()) == theName) break; //use current map
+ }
+ }
+ }
+ }
+ VISU::Mesh_var aMesh;
+ QString aMeshName = VISU::Storable::FindValue(aMap,"myMeshName");
+ switch (theType) {
+ case VISU::TFAMILY:
+ {
+ VISU::Entity anEntity = (VISU::Entity)VISU::Storable::FindValue(aMap,"myEntityId").toInt();
+ aMesh = VisuGUI::GetVisuGen()->FamilyMeshOnEntity(aResult,aMeshName.latin1(),anEntity,theName.latin1());
+ }
+ break;
+ case VISU::TGROUP:
+ {
+ aMesh = VisuGUI::GetVisuGen()->GroupMesh(aResult,aMeshName.latin1(), theName.latin1());
+ }
+ break;
+ case VISU::TENTITY:
+ {
+ VISU::Entity anEntity = (VISU::Entity)VISU::Storable::FindValue(aMap,"myId").toInt();
+ aMesh = VisuGUI::GetVisuGen()->MeshOnEntity(aResult,aMeshName.latin1(),anEntity);
+ }
+ break;
+ }
+ if(!CORBA::is_nil(aMesh)){ // Create Actor
+ VISU::Mesh_i* pPresent = dynamic_cast<VISU::Mesh_i*>(VISU::GetServant(aMesh).in());
+ if(SVTK_ViewWindow* vf = VISU::GetViewWindow()){
+ try{
+ pPresent->SetPresentationType(VISU::POINT);
+ VISU_Actor *anActor = pPresent->CreateActor();
+ vf->AddActor(anActor);
+ }catch(...){
+ SUIT_MessageBox::warn1 ( VisuGUI::application()->desktop(), tr("VISU_WARNING"),
+ tr("ERR_CANT_CREATE_ACTOR"),
+ tr("BUT_OK") );
+ }
+ }
+ } else {
+ SUIT_MessageBox::warn1(VisuGUI::application()->desktop(), tr("VISU_WARNING"),
+ tr("ERR_CANT_BUILD_PRESENTATION"),
+ tr("BUT_OK"));
+ }
+ return aMesh._retn();
+*/
+}
+
+void VisuGUI_StreamLinesDlg::accept() {
+ if (myScalarPane->check())
+ {
+ myScalarPane->deletePreview();
+ QDialog::accept();
+ }
+}
+
+void VisuGUI_StreamLinesDlg::reject()
+{
+ myScalarPane->deletePreview();
+ QDialog::reject();
+}
--- /dev/null
+// VISU VISUGUI : GUI of VISU component
+//
+// Copyright (C) 2003 CEA/DEN, EDF R&D
+//
+//
+//
+// File : VisuGUI_StreamLinesDlg.h
+// Author : Vitaly SMETANNIKOV
+// Module : VISU
+
+#ifndef VISUGUI_STREAMLINESDLG_H
+#define VISUGUI_STREAMLINESDLG_H
+
+#include "VisuGUI_ScalarBarDlg.h"
+
+#include <qdialog.h>
+#include <qcombobox.h>
+#include <qcheckbox.h>
+#include <qstringlist.h>
+
+class SalomeApp_Module;
+class QtxDblSpinBox;
+
+namespace VISU{
+ class StreamLines_i;
+}
+
+class VisuGUI_StreamLinesDlg: public QDialog
+{
+ Q_OBJECT
+public:
+ VisuGUI_StreamLinesDlg (SalomeApp_Module* theModule);
+ ~VisuGUI_StreamLinesDlg() {};
+
+ void initFromPrsObject(VISU::StreamLines_i* thePrs);
+ int storeToPrsObject(VISU::StreamLines_i* thePrs);
+ void setColor( QColor color );
+ void enableMagnColor( bool enable );
+
+protected slots:
+ void accept();
+ void reject();
+
+private slots:
+ void onSelectionActive(bool theActive);
+ void StepLengthChanged(double theValue);
+ void IntegrationStepChanged(double theValue);
+ void PropagationTimeChanged(double theValue);
+ void onSourceTypeChange(int theIndex);
+
+private:
+ VISU::Mesh_ptr createMesh(VISU::VISUType theType, QString theName);
+
+ QtxDblSpinBox* myStepLen;
+ QtxDblSpinBox* myIntegStepLen;
+ QtxDblSpinBox* myPropTime;
+ QComboBox* myDirCombo;
+ QCheckBox* myUseScalar;
+ QPushButton* SelColor;
+ QColor myColor;
+ //QCheckBox* myUseSrcChk;
+ QComboBox* myUseSrcCombo;
+ QtxDblSpinBox* myPntPercent;
+ QComboBox* mySrcCombo;
+
+ VisuGUI_ScalarBarPane* myScalarPane;
+
+ QValueList<VISU::Prs3d_var> myPrsList;
+ QValueList<VISU::Prs3d_var> myEntityList;
+ QValueList<VISU::Prs3d_var> myFamilyList;
+ QValueList<VISU::Prs3d_var> myGroupList;
+ QStringList myEntitiesLst;
+ QStringList myFamilisLst;
+ QStringList myGroupsLst;
+ QStringList myPrsLst;
+
+ _PTR(SObject) mySelectionObj;
+ VISU::StreamLines_i* myPrs;
+ SalomeApp_Module* myVisuGUI;
+
+private slots:
+ void setVColor();
+ void enableSetColor();
+};
+
+#endif //VISUGUI_STREAMLINESDLG_H
--- /dev/null
+// VISU VISUGUI : GUI of VISU component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : VisuGUI_VectorsDlg.cxx
+// Author : Laurent CORNABE & Hubert ROLLAND
+// Module : VISU
+// $Header$
+
+#include "VisuGUI_VectorsDlg.h"
+
+#include "VisuGUI.h"
+//#include "VisuGUI_Selection.h"
+#include "VisuGUI_Tools.h"
+
+#include "VISU_Vectors_i.hh"
+
+#include "SalomeApp_Module.h"
+#include "SUIT_Desktop.h"
+
+#include <qlayout.h>
+#include <qcolordialog.h>
+#include <qtabwidget.h>
+
+using namespace std;
+
+/*!
+ Constructor
+*/
+VisuGUI_VectorsDlg::VisuGUI_VectorsDlg (SalomeApp_Module* theModule)
+ : QDialog(VISU::GetDesktop(theModule), "VisuGUI_VectorsDlg", true,
+ WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
+{
+ setCaption(tr("DLG_TITLE"));
+ setSizeGripEnabled(TRUE);
+
+ QVBoxLayout* TopLayout = new QVBoxLayout( this );
+ TopLayout->setSpacing( 6 );
+ TopLayout->setMargin( 11 );
+
+ QTabWidget* aTabBox = new QTabWidget(this);
+
+ QVBox* aBox = new QVBox(this);
+ aBox->setMargin( 11 );
+
+ TopGroup = new QButtonGroup( aBox, "TopGroup" );
+ TopGroup->setColumnLayout(0, Qt::Vertical );
+ TopGroup->layout()->setSpacing( 0 );
+ TopGroup->layout()->setMargin( 5 );
+ QGridLayout* TopGroupLayout = new QGridLayout( TopGroup->layout() );
+ TopGroupLayout->setAlignment( Qt::AlignTop );
+ TopGroupLayout->setSpacing( 6 );
+ TopGroupLayout->setMargin( 11 );
+
+ // Scale factor
+ ScaleLabel = new QLabel (tr("LBL_SCALE_FACTOR"), TopGroup, "ScaleLabel");
+
+ ScalFact = new QtxDblSpinBox( 1e-20, 1.0E+38, 0.1, TopGroup );
+ ScalFact->setPrecision( 5 );
+ ScalFact->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+ ScalFact->setValue( 0.1 );
+
+ TopGroupLayout->addWidget( ScaleLabel, 0, 0 );
+ TopGroupLayout->addWidget( ScalFact, 0, 1 );
+
+ // Line width
+ LineWidLabel = new QLabel (tr("LBL_LINE_WIDTH"), TopGroup, "LineWidLabel");
+
+ LinWid = new QSpinBox( 1, 10, 1, TopGroup, "LinWid" );
+ LinWid->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+ LinWid->setValue( 1 );
+
+ TopGroupLayout->addWidget( LineWidLabel, 1, 0 );
+ TopGroupLayout->addWidget( LinWid, 1, 1 );
+
+ // Color
+ UseMagn = new QCheckBox (tr("MAGNITUDE_COLORING_CHK"), TopGroup, "UseMagn");
+ //UseMagn->setText(tr("MAGNITUDE_COLORING_CHK"));
+ SelColor = new QPushButton (tr("SEL_COLOR_BTN"), TopGroup, "SelColor");
+
+ /* ColorLab = new QLabel( TopGroup, "ColorLab" );
+ ColorLab->setFixedSize( SelColor->sizeHint().height(), SelColor->sizeHint().height() );
+ ColorLab->setFrameStyle( QLabel::Plain | QLabel::Box );
+ */
+ TopGroupLayout->addWidget( UseMagn, 2, 0 );
+ //TopGroupLayout->addWidget( ColorLab, 2, 1 );
+ TopGroupLayout->addWidget( SelColor, 2, 1 );
+
+ // Gliphs
+ UseGlyph = new QCheckBox (tr("USE_GLYPHS_CHK"), TopGroup, "UseGlyph");
+
+ TypeGlyph = new QButtonGroup (tr("GLYPH_TYPE_GRP"), TopGroup, "TypeGlyph");
+ TypeGlyph->setColumnLayout(0, Qt::Vertical );
+ TypeGlyph->layout()->setSpacing( 0 );
+ TypeGlyph->layout()->setMargin( 0 );
+ QGridLayout* TypeGlyphLayout = new QGridLayout( TypeGlyph->layout() );
+ TypeGlyphLayout->setAlignment( Qt::AlignTop );
+ TypeGlyphLayout->setSpacing( 6 );
+ TypeGlyphLayout->setMargin( 11 );
+
+ RBArrows = new QRadioButton (tr("ARROWS_BTN") , TypeGlyph, "RBArrows");
+ TypeGlyphLayout->addWidget( RBArrows, 0, 0 );
+ RBCones2 = new QRadioButton (tr("CONES2_BTN"), TypeGlyph, "RBCones2");
+ TypeGlyphLayout->addWidget( RBCones2, 1, 0 );
+ RBCones6 = new QRadioButton (tr("CONES6_BTN"), TypeGlyph, "RBCones6");
+ TypeGlyphLayout->addWidget( RBCones6, 2, 0 );
+
+ PosGlyph = new QButtonGroup (tr("GLYPH_POSITION_GRP"), TopGroup, "PosGlyph");
+ PosGlyph->setColumnLayout(0, Qt::Vertical );
+ PosGlyph->layout()->setSpacing( 0 );
+ PosGlyph->layout()->setMargin( 0 );
+ QGridLayout* PosGlyphLayout = new QGridLayout( PosGlyph->layout() );
+ PosGlyphLayout->setAlignment( Qt::AlignTop );
+ PosGlyphLayout->setSpacing( 6 );
+ PosGlyphLayout->setMargin( 11 );
+
+ RBTail = new QRadioButton (tr("TAIL_BTN" ), PosGlyph, "RBTail");
+ PosGlyphLayout->addWidget( RBTail, 0, 0 );
+ RBCent = new QRadioButton (tr("CENTER_BTN"), PosGlyph, "RBCent");
+ PosGlyphLayout->addWidget( RBCent, 1, 0 );
+ RBHead = new QRadioButton (tr("HEAD_BTN" ), PosGlyph, "RBHead");
+ PosGlyphLayout->addWidget( RBHead, 2, 0 );
+
+ TopGroupLayout->addMultiCellWidget( UseGlyph, 3, 3, 0, 2 );
+ TopGroupLayout->addWidget( TypeGlyph, 4, 0 );
+ TopGroupLayout->addMultiCellWidget( PosGlyph, 4, 4, 1, 2 );
+
+ // Common buttons ===========================================================
+ GroupButtons = new QGroupBox( this, "GroupButtons" );
+ GroupButtons->setColumnLayout(0, Qt::Vertical );
+ GroupButtons->layout()->setSpacing( 0 );
+ GroupButtons->layout()->setMargin( 0 );
+ QGridLayout* GroupButtonsLayout = new QGridLayout( GroupButtons->layout() );
+ GroupButtonsLayout->setAlignment( Qt::AlignTop );
+ GroupButtonsLayout->setSpacing( 6 );
+ GroupButtonsLayout->setMargin( 11 );
+
+ buttonOk = new QPushButton( tr( "&OK" ), GroupButtons, "buttonOk" );
+ buttonOk->setAutoDefault( TRUE );
+ buttonOk->setDefault( TRUE );
+ GroupButtonsLayout->addWidget( buttonOk, 0, 0 );
+ GroupButtonsLayout->addItem( new QSpacerItem( 5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum ), 0, 1 );
+ buttonCancel = new QPushButton( tr( "&Cancel" ) , GroupButtons, "buttonCancel" );
+ buttonCancel->setAutoDefault( TRUE );
+ GroupButtonsLayout->addWidget( buttonCancel, 0, 2 );
+
+ // top layout
+ aTabBox->addTab(aBox, "Vectors");
+ myScalarPane = new VisuGUI_ScalarBarPane(this, false);
+ myScalarPane->setMargin( 5 );
+ aTabBox->addTab(myScalarPane, "Scalar Bar");
+
+ TopLayout->addWidget( aTabBox );
+ TopLayout->addWidget( GroupButtons );
+
+ // signals and slots connections
+ connect( UseGlyph, SIGNAL( clicked() ), this, SLOT( enableGlyphType() ) );
+ connect( SelColor, SIGNAL( clicked() ), this, SLOT( setVColor() ) );
+ connect( UseMagn, SIGNAL( clicked() ), this, SLOT( enableSetColor() ) );
+ connect( buttonOk, SIGNAL( clicked() ), this, SLOT( accept() ) );
+ connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
+
+ // default values
+ UseMagn->setChecked( TRUE );
+ UseGlyph->setChecked( TRUE );
+ RBArrows->setChecked( TRUE );
+ RBTail->setChecked( TRUE );
+ setColor( QColor( 255, 0, 0 ) );
+ enableGlyphType();
+ enableSetColor();
+}
+
+
+
+void VisuGUI_VectorsDlg::initFromPrsObject(VISU::Vectors_i* thePrs) {
+ myScalarPane->initFromPrsObject(thePrs);
+ setScaleFactor(thePrs->GetScale());
+ setLineWidth((int)thePrs->GetLineWidth());
+ setUseMagnColor(thePrs->IsColored());
+ SALOMEDS::Color anOldColor = thePrs->GetColor();
+ QColor aColor = QColor(int(255*anOldColor.R),int(255*anOldColor.G),int(255*anOldColor.B));
+ setColor(aColor);
+
+ if (thePrs->GetGlyphType() != VISU::Vectors::NONE) {
+ setUseGlyphs(true);
+ setGlyphType(thePrs->GetGlyphType());
+ setGlyphPos(thePrs->GetGlyphPos());
+ } else
+ setUseGlyphs(false);
+
+ enableSetColor();
+}
+
+
+int VisuGUI_VectorsDlg::storeToPrsObject(VISU::Vectors_i* thePrs) {
+ myScalarPane->storeToPrsObject(thePrs);
+ thePrs->SetScale(getScaleFactor());
+ thePrs->SetLineWidth(getLineWidth());
+ thePrs->ShowColored(getUseMagnColor());
+ if(!thePrs->IsColored()){
+ SALOMEDS::Color aColor;
+ aColor.R = myColor.red()/255.;
+ aColor.G = myColor.green()/255.;
+ aColor.B = myColor.blue()/255.;
+ thePrs->SetColor(aColor);
+ }
+ if (getUseGlyphs()) {
+ thePrs->SetGlyphPos(getGlyphPos());
+ thePrs->SetGlyphType(getGlyphType());
+ } else
+ thePrs->SetGlyphType(VISU::Vectors::NONE);
+ return 1;
+}
+
+
+
+/*!
+ Called when "Use glyphs" check box clicked
+*/
+void VisuGUI_VectorsDlg::enableGlyphType()
+{
+ TypeGlyph->setEnabled( UseGlyph->isChecked() );
+ PosGlyph->setEnabled( UseGlyph->isChecked() );
+}
+
+/*!
+ Called when "Magnitude Coloring" check box clicked
+*/
+void VisuGUI_VectorsDlg::enableSetColor()
+{
+ SelColor->setEnabled(!UseMagn->isChecked() );
+ //ColorLab->setEnabled( UseMagn->isEnabled() && !UseMagn->isChecked() );
+}
+
+/*!
+ Called when "Select Color" buttonx clicked
+*/
+void VisuGUI_VectorsDlg::setVColor()
+{
+ QColor cnew = QColorDialog::getColor( myColor, this );
+ if ( cnew.isValid() )
+ setColor( cnew );
+}
+
+/*!
+ Sets Scale factor
+*/
+void VisuGUI_VectorsDlg::setScaleFactor( double sf )
+{
+ ScalFact->setValue( sf );
+}
+
+/*!
+ Gets Scale factor
+*/
+double VisuGUI_VectorsDlg::getScaleFactor()
+{
+ return ScalFact->value();
+}
+
+/*!
+ Sets Line width
+*/
+void VisuGUI_VectorsDlg::setLineWidth( int lw )
+{
+ LinWid->setValue( lw );
+}
+
+/*!
+ Gets Line width
+*/
+int VisuGUI_VectorsDlg::getLineWidth()
+{
+ return LinWid->value();
+}
+
+/*!
+ Sets "Use Magnitude Coloring" flag
+*/
+void VisuGUI_VectorsDlg::setUseMagnColor( bool on )
+{
+ UseMagn->setChecked( on );
+ enableSetColor();
+}
+
+/*!
+ Gets "Use Magnitude Coloring" flag state
+*/
+bool VisuGUI_VectorsDlg::getUseMagnColor()
+{
+ return UseMagn->isChecked();
+}
+
+/*!
+ Sets "Use Glyphs" flag
+*/
+void VisuGUI_VectorsDlg::setUseGlyphs( bool on )
+{
+ UseGlyph->setChecked( on );
+ enableGlyphType();
+}
+
+/*!
+ Gets "Use Glyphs" flag state
+*/
+bool VisuGUI_VectorsDlg::getUseGlyphs()
+{
+ return UseGlyph->isChecked();
+}
+
+/*!
+ Sets color
+*/
+void VisuGUI_VectorsDlg::setColor( QColor color )
+{
+ myColor = color;
+ SelColor->setPaletteBackgroundColor(myColor);
+/* QPalette pal = ColorLab->palette();
+ QColorGroup ca = pal.active();
+ ca.setColor( QColorGroup::Background, myColor );
+ pal.setActive( ca );
+ ColorLab->setPalette( pal );*/
+}
+
+/*!
+ Sets glyphs type : 0 - arrows, 1 - cones2, 2 - cones6
+*/
+void VisuGUI_VectorsDlg::setGlyphType(VISU::Vectors::GlyphType type )
+{
+ if ( type == VISU::Vectors::CONE2)
+ RBCones2->setChecked( true );
+ else if ( type == VISU::Vectors::CONE6)
+ RBCones6->setChecked( true );
+ else
+ RBArrows->setChecked( true );
+}
+
+/*!
+ Gets glyphs type : 0 - arrows, 1 - cones2, 2 - cones6
+*/
+VISU::Vectors::GlyphType VisuGUI_VectorsDlg::getGlyphType()
+{
+ VISU::Vectors::GlyphType type;
+ if ( RBCones2->isChecked() )
+ type = VISU::Vectors::CONE2;
+ else if ( RBCones6->isChecked() )
+ type = VISU::Vectors::CONE6;
+ else
+ type = VISU::Vectors::ARROW;
+ return type;
+}
+
+/*!
+ Sets glyph position : -1 - tail, 0 - center, 1 - head
+*/
+void VisuGUI_VectorsDlg::setGlyphPos(VISU::Vectors::GlyphPos pos)
+{
+ if ( pos == VISU::Vectors::TAIL)
+ RBTail->setChecked(true);
+ else if ( pos == VISU::Vectors::HEAD)
+ RBHead->setChecked(true);
+ else
+ RBCent->setChecked(true);
+}
+
+/*!
+ Gets glyph position : -1 - tail, 0 - center, 1 - head
+*/
+VISU::Vectors::GlyphPos VisuGUI_VectorsDlg::getGlyphPos()
+{
+ VISU::Vectors::GlyphPos pos;
+ if ( RBTail->isChecked() )
+ pos = VISU::Vectors::TAIL;
+ else if ( RBHead->isChecked() )
+ pos = VISU::Vectors::HEAD;
+ else
+ pos = VISU::Vectors::CENTER;
+ return pos;
+}
+
+/*!
+ Enbled/disables magnitude coloring
+*/
+void VisuGUI_VectorsDlg::enableMagnColor( bool enable )
+{
+ UseMagn->setEnabled( enable );
+ enableSetColor();
+}
+
+
+void VisuGUI_VectorsDlg::accept() {
+ if (myScalarPane->check())
+ {
+ myScalarPane->deletePreview();
+ QDialog::accept();
+ }
+}
+
+void VisuGUI_VectorsDlg::reject()
+{
+ myScalarPane->deletePreview();
+ QDialog::reject();
+}
--- /dev/null
+// VISU VISUGUI : GUI of VISU component
+//
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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.
+//
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//
+// File : VisuGUI_VectorsDlg.h
+// Author : Laurent CORNABE & Hubert ROLLAND
+// Module : VISU
+// $Header$
+
+#ifndef VISUGUI_VECTORSDLG_H
+#define VISUGUI_VECTORSDLG_H
+
+#include "VisuGUI_ScalarBarDlg.h"
+#include "QtxDblSpinBox.h"
+
+#include <qdialog.h>
+#include <qbuttongroup.h>
+#include <qgroupbox.h>
+#include <qradiobutton.h>
+#include <qcheckbox.h>
+#include <qlabel.h>
+#include <qspinbox.h>
+#include <qpushbutton.h>
+
+#include "SALOMEconfig.h"
+#include CORBA_CLIENT_HEADER(VISU_Gen)
+
+class SalomeApp_Module;
+
+namespace VISU{
+ class Vectors_i;
+}
+
+class VisuGUI_VectorsDlg : public QDialog
+{
+ Q_OBJECT
+
+public:
+ VisuGUI_VectorsDlg (SalomeApp_Module* theModule);
+ ~VisuGUI_VectorsDlg() {};
+
+ void setScaleFactor( double sf );
+ double getScaleFactor();
+ void setLineWidth( int lw );
+ int getLineWidth();
+ void setUseMagnColor( bool on );
+ bool getUseMagnColor();
+ void setUseGlyphs( bool on );
+ bool getUseGlyphs();
+ void setColor( QColor color);
+ QColor getColor();
+
+ void setGlyphType(VISU::Vectors::GlyphType type );
+ VISU::Vectors::GlyphType getGlyphType();
+
+ void setGlyphPos(VISU::Vectors::GlyphPos pos);
+ VISU::Vectors::GlyphPos getGlyphPos();
+ void enableMagnColor( bool enable );
+
+ void initFromPrsObject(VISU::Vectors_i* thePrs);
+ int storeToPrsObject(VISU::Vectors_i* thePrs);
+
+protected slots:
+ void accept();
+ void reject();
+
+private:
+ QGroupBox* TopGroup;
+ QCheckBox* UseMagn;
+ //QLabel* ColorLab;
+ QPushButton* SelColor;
+ QLabel* LineWidLabel;
+ QSpinBox* LinWid;
+ QLabel* ScaleLabel;
+ QtxDblSpinBox* ScalFact;
+ QCheckBox* UseGlyph;
+ QButtonGroup* TypeGlyph;
+ QRadioButton* RBCones6;
+ QRadioButton* RBCones2;
+ QRadioButton* RBArrows;
+ QButtonGroup* PosGlyph;
+ QRadioButton* RBTail;
+ QRadioButton* RBCent;
+ QRadioButton* RBHead;
+ QGroupBox* GroupButtons;
+ QPushButton* buttonOk;
+ QPushButton* buttonCancel;
+
+ QColor myColor;
+ VisuGUI_ScalarBarPane* myScalarPane;
+
+private slots:
+ void enableGlyphType();
+ void setVColor();
+ void enableSetColor();
+};
+
+#endif // VISUGUI_VECTORSDLG_H
--- /dev/null
+# T 2.23, 28: Displaying fields (scalar and vectorial) on nodes, change presentation options.
+# Uses MED files ResOK_0000.med and Fields_group3D.med
+#
+# This script is equivalent to non-regression test script 003/A1
+
+import salome
+import visu_gui
+import SALOMEDS
+import VISU
+import os
+
+datadir = os.getenv("DATA_DIR") + "/MedFiles/"
+
+#%====================Stage1: Creating a new study====================%
+
+print "**** Stage1: Creating a new study"
+
+print "Creating a new study..................",
+myVisu = visu_gui.myVisu
+myVisu.SetCurrentStudy(salome.myStudy)
+myViewManager = myVisu.GetViewManager()
+if myViewManager is None : print "Error"
+else : print "OK"
+
+#%====================Stage2: Importing MED file====================%
+
+print "**** Stage2: Importing MED file"
+
+print 'Import "ResOK_0000.med"...............',
+medFile = datadir + "ResOK_0000.med"
+myResult = myVisu.ImportFile(medFile)
+if myResult is None : print "Error"
+else : print "OK"
+
+print 'Creating new View3D...................',
+myView = myViewManager.Create3DView()
+if myView is None : print "Error"
+else : print "OK"
+
+myMeshName = 'dom'
+myCellEntity = VISU.CELL
+myNodeEntity = VISU.NODE
+
+#%====================Stage3: Displaying vector field====================%
+
+print "**** Stage3: Displaying vector field"
+
+print "Creating Scalar Map.......",
+scalarmap = myVisu.ScalarMapOnField(myResult,myMeshName,myNodeEntity,'vitesse',1);
+if scalarmap is None : print "Error"
+else : print "OK"
+scalarmap.SetSize(0.15, 0.8)
+myView.DisplayOnly(scalarmap)
+myView.FitAll()
+
+print "Creating Stream Lines.....",
+streamlines = myVisu.StreamLinesOnField(myResult,myMeshName,myNodeEntity,'vitesse',1);
+if streamlines is None : print "Error"
+else : print "OK"
+myView.DisplayOnly(streamlines)
+
+print "Creating Vectors..........",
+vectors = myVisu.VectorsOnField(myResult,myMeshName,myNodeEntity,'vitesse',1);
+if vectors is None : print "Error"
+else : print "OK"
+myView.DisplayOnly(vectors)
+
+
+print "Creating Iso Surfaces.....",
+isosurfaces = myVisu.IsoSurfacesOnField(myResult,myMeshName,myNodeEntity,'vitesse',1);
+if isosurfaces is None : print "Error"
+else : print "OK"
+myView.DisplayOnly(isosurfaces)
+
+print "Creating Cut Planes.......",
+cutplanes = myVisu.CutPlanesOnField(myResult,myMeshName,myNodeEntity,'vitesse',1);
+if cutplanes is None : print "Error"
+else : print "OK"
+cutplanes.SetNbPlanes(30)
+cutplanes.SetOrientation(VISU.CutPlanes.YZ, 0, 0)
+myView.DisplayOnly(cutplanes)
+
+#%====================Stage4: Opening a new study and Med file import====================%
+
+# Opening a new study tempoparily commented due to a problem
+# with python initialization. To be restored after bug 10000 fixing.
+
+#print "**** Stage4: Opening a new study and Med file import"
+print "**** Stage4: Med file import"
+
+#print "Creating a new study..................",
+#newStudy = salome.myStudyManager.NewStudy('newStudy')
+newStudy = salome.myStudy # temporarily
+#myVisu.SetCurrentStudy(newStudy)
+myViewManager = myVisu.GetViewManager()
+myView = myViewManager.Create3DView()
+if myView is None : print "Error"
+else : print "OK"
+
+print 'Importing "Fields_group3D.med"........',
+medFile = datadir + "Fields_group3D.med"
+myResult1 = myVisu.ImportFile(medFile)
+if myResult1 is None : print "Error"
+myView1 = myViewManager.Create3DView()
+if myView1 is None : print "Error"
+else : print "OK"
+
+#%====================Stage5: Displaying scalar field====================%
+
+print "**** Stage5: Displaying scalar field"
+
+myMeshName1 = 'mailles_MED'
+
+print "Creating Scalar Map.......",
+scalarmap1 = myVisu.ScalarMapOnField(myResult1,myMeshName1,myCellEntity,'scalar field',1);
+if scalarmap1 is None : print "Error"
+else : print "OK"
+myView1.DisplayOnly(scalarmap1)
+myView1.FitAll()
+
+print "Creating Iso Surfaces.....",
+isosurfaces1 = myVisu.IsoSurfacesOnField(myResult1,myMeshName1,myCellEntity,'scalar field',1);
+if isosurfaces1 is None : print "Error"
+else : print "OK"
+myView1.DisplayOnly(isosurfaces1)
+
+print "Creating Cut Planes.......",
+cutplanes1 = myVisu.CutPlanesOnField(myResult1,myMeshName1,myCellEntity,'scalar field',1);
+if cutplanes1 is None : print "Error"
+else : print "OK"
+cutplanes1.SetOrientation(VISU.CutPlanes.YZ, 0, 0)
+myView1.DisplayOnly(cutplanes1)
+
+#%====================Stage6: Object browser popup====================%
+
+print "**** Stage6: Object browser popup"
+
+print "Creating mesh.............",
+mesh = myVisu.MeshOnEntity(myResult1,myMeshName1,myCellEntity);
+if mesh is None : print "Error"
+else : print "OK"
+myView1.DisplayOnly(mesh)
+
+
+print "Changing type of presentation of mesh:"
+mesh.SetPresentationType(VISU.WIREFRAME)
+PrsType = mesh.GetPresentationType()
+print "Presentation type..", PrsType
+myView1.DisplayOnly(mesh)
+
+mesh.SetPresentationType(VISU.SHADED)
+PrsType = mesh.GetPresentationType()
+print "Presentation type.....", PrsType
+myView1.DisplayOnly(mesh)
+
+mesh.SetPresentationType(VISU.POINT)
+PrsType = mesh.GetPresentationType()
+print "Presentation type......", PrsType
+myView1.DisplayOnly(mesh)
+myView1.Update()
+
+mesh.SetPresentationType(VISU.SHRINK)
+PrsType = mesh.GetPresentationType()
+print "Presentation type.....", PrsType
+myView1.DisplayOnly(mesh)
+
+print "Changing color of mesh....",
+aColor = SALOMEDS.Color(0,0,1)
+mesh.SetCellColor(aColor)
+myView1.DisplayOnly(mesh)
+print "OK"
+
+print "Renaming ScalarMap........",
+SObj = newStudy.FindObjectIOR(scalarmap1.GetID())
+newName = 'Renamed Object'
+SObj.Name = newName
+print "OK"
+
+print "Deleting Cut Planes.......",
+SObj = newStudy.FindObjectIOR(cutplanes1.GetID())
+myBuilder = newStudy.NewBuilder()
+myBuilder.RemoveObject(SObj)
+print "OK"
+
+print "Changing first IsoSurfaces",
+myVisu.SetCurrentStudy(salome.myStudy)
+myView.DisplayOnly(isosurfaces)
+isosurfaces.SetNbSurfaces(25)
+print "OK"
+
+myView.Maximize()
+myView.DisplayOnly(isosurfaces)
+
+print "Hide IsoSurfaces..........",
+myView.Erase(isosurfaces)
+print "OK"
--- /dev/null
+# T 2.24: Save/retrieve view parameters.
+# Uses MED file fra.med from ${DATA_DIR}/MedFiles directory.
+#
+# This script is equivalent to non-regression test script 003/A3
+
+import salome
+import visu_gui
+import SALOMEDS
+import VISU
+import os
+
+medFile = os.getenv("DATA_DIR") + "/MedFiles/fra.med"
+
+#%====================Stage1: Creating a new study====================%
+
+print "**** Stage1: Creating a new study "
+
+print "Creating a new study..................",
+myVisu = visu_gui.myVisu
+myVisu.SetCurrentStudy(salome.myStudy)
+myViewManager = myVisu.GetViewManager()
+if myViewManager is None : print "Error"
+else : print "OK"
+
+#%====================Stage2: Saving view parameters before import====================%
+
+print "**** Stage2: Saving view parameters before import "
+
+myView = myViewManager.Create3DView()
+
+print "Zooming trihedron.....................",
+aScale = myView.GetParallelScale()
+myView.SetParallelScale(aScale*4)
+print "OK"
+
+print "Rotating trihedron....................",
+aPoint = (100,100,100)
+myView.SetPointOfView(aPoint)
+print "OK"
+
+print "Saving view parameters................",
+aViewParamsName1 = 'ViewParams:1'
+aSaveRes = myView.SaveViewParams(aViewParamsName1)
+if aSaveRes != 1 : print "Error"
+else : print "OK"
+
+#%====================Stage3: Import MED file====================%
+
+print "**** Stage3: Import MED file"
+
+print 'Importing "fra.med"...................',
+myResult = myVisu.ImportFile(medFile)
+if myResult is None : print "Error"
+else : print "OK"
+
+print "Creating mesh.........................",
+myMeshName = 'LE VOLUME'
+myCellEntity = VISU.CELL
+mesh = myVisu.MeshOnEntity(myResult,myMeshName,myCellEntity);
+if mesh is None : print "Error"
+else : print "OK"
+
+myView.Maximize()
+myView.Display(mesh)
+myView.FitAll()
+
+#%====================Stage4: Saving view parameters after import====================%
+
+print "**** Stage4: Saving view parameters after import"
+
+print "Creating Scalar Map...................",
+myFieldName = 'TAUX_DE_VIDE'
+myNodeEntity = VISU.NODE
+scalarmap = myVisu.ScalarMapOnField(myResult,myMeshName,myNodeEntity,myFieldName,1);
+if scalarmap is None : print "Error"
+else : print "OK"
+myView.DisplayOnly(scalarmap)
+
+print "Zooming 3D view.......................",
+aScale = myView.GetParallelScale()
+myView.SetParallelScale(aScale*2)
+print "OK"
+
+print "Setting view point(LEFT)..............",
+myView.SetView((VISU.View3D.LEFT))
+print "OK"
+
+print "Saving view parameters................",
+aViewParamsName2 = 'ViewParams:2'
+aSaveRes = myView.SaveViewParams(aViewParamsName2)
+if aSaveRes != 1 : print "Error"
+else : print "OK"
+
+print "Creating Cut Planes...................",
+cutplanes = myVisu.CutPlanesOnField(myResult,myMeshName,myNodeEntity,myFieldName,1);
+if cutplanes is None : print "Error"
+else : print "OK"
+cutplanes.SetNbPlanes(4)
+myView.DisplayOnly(cutplanes)
+
+print "Setting scaling.......................",
+
+#Define parameters of scaling:
+myXParam = 5
+myYParam = 5
+myZParam = 1
+
+myXAxis = VISU.View3D.XAxis
+myYAxis = VISU.View3D.YAxis
+myZAxis = VISU.View3D.ZAxis
+
+myView.ScaleView(myXAxis,myXParam)
+myView.ScaleView(myYAxis,myYParam)
+myView.ScaleView(myZAxis,myZParam)
+print "OK"
+
+print "Rotating 3d view......................",
+aPoint = (100,40,0)
+myView.SetPointOfView(aPoint)
+print "OK"
+
+print "Fit All...............................",
+myView.FitAll()
+print "OK"
+
+print "Saving view parameters................",
+aViewParamsName3 = 'ViewParams:3'
+aSaveRes = myView.SaveViewParams(aViewParamsName3)
+if aSaveRes != 1 : print "Error"
+else : print "OK"
+
+#%====================Stage5: Restoring view parameters====================%
+
+print "**** Stage5: Restoring view parameters"
+
+print "Restoring first view parameters.......",
+aRestoreRes = myView.RestoreViewParams(aViewParamsName1)
+if aRestoreRes != 1 : print "Error"
+else : print "OK"
+
+print "Restoring second view parameters......",
+aRestoreRes = myView.RestoreViewParams(aViewParamsName2)
+if aRestoreRes != 1 : print "Error"
+else : print "OK"
+
+print "Displaing only Scalar Map.............",
+myView.DisplayOnly(scalarmap)
+print "OK"
+
+print "Displaing only Cut Planes.............",
+myView.DisplayOnly(cutplanes)
+print "OK"
+
+print "Restoring third view parameters.......",
+aRestoreRes = myView.RestoreViewParams(aViewParamsName3)
+if aRestoreRes != 1 : print "Error"
+else : print "OK"
+
+print "Displaing only Mesh...................",
+myView.DisplayOnly(mesh)
+print "OK"
+
+print "Displaing only Scalar Map.............",
+myView.DisplayOnly(scalarmap)
+print "OK"
+
+print "Displaing only Cut Planes.............",
+myView.DisplayOnly(cutplanes)
+print "OK"
+
+#%====================Stage6: Changing of view parameters====================%
+
+print "**** Stage6: Changing of view parameters"
+
+print "Remove scaling........................",
+myView.RemoveScale()
+print "OK"
+
+print "Fit All...............................",
+myView.FitAll()
+print "OK"
+
+print "Rotating 3d view......................",
+aPoint = (0,60,150)
+myView.SetPointOfView(aPoint)
+print "OK"
+
+print "Resaving first view parameters........",
+aSaveRes = myView.SaveViewParams(aViewParamsName1)
+if aSaveRes != 1 : print "Error"
+else : print "OK"
+
+print "Restoring third view parameters.......",
+aRestoreRes = myView.RestoreViewParams(aViewParamsName3)
+if aRestoreRes != 1 : print "Error"
+else : print "OK"
+
+print "Restoring first view parameters.......",
+aRestoreRes = myView.RestoreViewParams(aViewParamsName1)
+if aRestoreRes != 1 : print "Error"
+else : print "OK"
+
+print "Displaying only Mesh..................",
+myView.DisplayOnly(mesh)
+print "OK"
+
+print "Displaying only Scalar Map............",
+myView.DisplayOnly(scalarmap)
+print "OK"
+
+#%====================Stage7: Saving of created view parameters====================%
+
+print "**** Stage7: Saving of created view parameters"
+
+print "Saving study..........................",
+
+str = os.getenv("TmpDir")
+if str == None:
+ str = "/tmp"
+
+file = str+'/VISU_005.hdf'
+
+salome.myStudyManager.SaveAs(file, salome.myStudy, 0)
+study_id = salome.myStudy._get_StudyId()
+print "OK"
+
+file_new = str+'/VISU_005_new.hdf'
+command = "mv " + file + " " + file_new
+os.system(command)
+file = file_new
+
+# Opening a study tempoparily commented due to a problem
+# with python initialization. To be restored after bug 10000 fixing.
+
+#print "Opening just saved study..............",
+#
+#openedStudy = salome.myStudyManager.Open(file)]
+openedStudy = salome.myStudy # temporarily
+#myVisu.SetCurrentStudy(openedStudy)
+myViewManager = myVisu.GetViewManager()
+myView1 = myViewManager.Create3DView()
+if myView1 is None : print "Error"
+else : print "OK"
+
+import time
+time.sleep(1)
+
+print "Restoring first view parameters.......",
+aRestoreRes = myView1.RestoreViewParams(aViewParamsName1)
+if aRestoreRes != 1 : print "Error"
+else : print "OK"
+
+Builder = openedStudy.NewBuilder()
+#SCom = openedStudy.FindComponent("VISU")
+#Builder.LoadWith(SCom ,myVisu)
+
+print "Displaying Scalar Map.................",
+SObj = openedStudy.FindObject('ScalarMap')
+scalarmap1 = visu_gui.visu.SObjectToObject(SObj)
+if scalarmap1 is None : print "Error"
+else : print "OK"
+myView1.DisplayOnly(scalarmap1)
+
+print "Displaying Cut Planes.................",
+SObj = openedStudy.FindObject('CutPlanes')
+cutplanes1 = visu_gui.visu.SObjectToObject(SObj)
+if cutplanes1 is None : print "Error"
+else : print "OK"
+myView1.DisplayOnly(cutplanes1)
+
+print "Restoring second view parameters......",
+aRestoreRes = myView1.RestoreViewParams(aViewParamsName2)
+if aRestoreRes != 1 : print "Error"
+else : print "OK"
+
+print "Displaying Scalar Map.................",
+myView1.DisplayOnly(scalarmap1)
+print "OK"
+
+print "Restoring third view parameters.......",
+aRestoreRes = myView1.RestoreViewParams(aViewParamsName3)
+if aRestoreRes != 1 : print "Error"
+else : print "OK"
+
+print "Displaying Cut Planes.................",
+myView1.DisplayOnly(cutplanes1)
+print "OK"
+
+#%====================Stage8: Changing of saved session====================%
+
+print "**** Stage8: Changing of saved session"
+
+print "Deleting ViewParams:3,1,2.............",
+SObj = openedStudy.FindObject(aViewParamsName3)
+Builder.RemoveObject(SObj)
+SObj = openedStudy.FindObject(aViewParamsName1)
+Builder.RemoveObject(SObj)
+SObj = openedStudy.FindObject(aViewParamsName2)
+Builder.RemoveObject(SObj)
+print "OK"
+
+SObjList2 = openedStudy.FindObjectByName(aViewParamsName1, "VISU")
+print "FindObjectByName(aViewParamsName1, VISU) returned ", len(SObjList2), " objects"
+
+print "Zooming trihedron.....................",
+aScale = myView.GetParallelScale()
+myView1.SetParallelScale(aScale*2)
+myView1.Update()
+print "OK"
+
+print "Rotating trihedron....................",
+aPoint = (200,40,-40)
+myView1.SetPointOfView(aPoint)
+print "OK"
+
+print "Saving view parameters................",
+aSaveRes = myView1.SaveViewParams(aViewParamsName1)
+if aSaveRes != 1 : print "Error"
+else : print "OK"
+
+print "Renaming ViewParams:1.................",
+SObj = openedStudy.FindObject(aViewParamsName1)
+SObj.Name = "New_view"
+print "OK"
+
+print "Setting scaling.......................",
+#Define parameters of scaling:
+myXParam = 4
+myYParam = 4
+myZParam = 8
+
+myXAxis = VISU.View3D.XAxis
+myYAxis = VISU.View3D.YAxis
+myZAxis = VISU.View3D.ZAxis
+
+myView1.ScaleView(myXAxis,myXParam)
+myView1.ScaleView(myYAxis,myYParam)
+myView1.ScaleView(myZAxis,myZParam)
+print "OK"
+
+myView1.FitAll()
+
+print "Saving view parameters................",
+aSaveRes = myView1.SaveViewParams(aViewParamsName2)
+if aSaveRes != 1 : print "Error"
+else : print "OK"
+
+print "Restoring first view parameters.......",
+aRestoreRes = myView1.RestoreViewParams(aViewParamsName1)
+if aSaveRes != 1 : print "Error"
+else : print "OK"
+
+print "Restoring second view parameters......",
+aRestoreRes = myView1.RestoreViewParams(aViewParamsName2)
+if aRestoreRes != 1 : print "Error"
+else : print "OK"
+
+# Remove the study file
+command = "rm -r " + file
+os.system(command)
--- /dev/null
+# Show some results presentations in different 3D and 2D viewers
+# with different options (view parameters and display modes).
+# Uses MED files fra.med and TimeStamps.med from ${DATA_DIR}/MedFiles directory.
+#
+# Pay attention to a viewer title to know its purpose.
+#
+# This script is equivalent to script VISU_SWIG/visu_view3d.py
+
+import os
+import time
+import math
+import VISU
+import SALOMEDS
+from visu_gui import *
+
+aDelay = 1
+
+myViewManager = myVisu.GetViewManager();
+
+myView = myViewManager.Create3DView();
+myView.SetTitle("The window will be soon destroyed!")
+print "myViewManager.Create3DView()"
+time.sleep(aDelay)
+
+myView.Maximize()
+print "myView.Maximize()"
+time.sleep(aDelay)
+
+myView.Restore()
+print "myView.Restore()"
+time.sleep(aDelay)
+
+myView.Minimize()
+print "myView.Minimize()"
+time.sleep(aDelay)
+
+myViewManager.Destroy(myView)
+print "myViewManager.Destroy(myView)"
+time.sleep(aDelay)
+
+
+medFile = "fra.med"
+myFieldName = "VITESSE";
+
+aMeshName ="LE VOLUME"
+anEntity = VISU.NODE
+aTimeStampId = 1
+
+medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
+myResult = myVisu.ImportFile(medFile)
+
+myView = myViewManager.Create3DView();
+
+print "myView.SetBackground(...)"
+aColor = SALOMEDS.Color(0.0,0.3,1.0)
+myView.SetBackground(aColor);
+
+myView.SetTitle("The viewer will display ScalarMap")
+print "myViewManager.Create3DView()"
+
+aScalarMap = myVisu.ScalarMapOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
+
+myView.Display(aScalarMap);
+print "myView.Display(aScalarMap)"
+myView.SetFocalPoint([0,0,0]);
+print "myView.SetFocalPoint(...)"
+myView.SetParallelScale(2);
+print "myView.SetParallelScale(...)"
+myView.FitAll();
+
+aMax = aScalarMap.GetMax()
+aMin = aScalarMap.GetMin()
+aDelta = (aMax - aMin)/2.0
+aNbColors = aScalarMap.GetNbColors()
+aNbColors = 64
+for i in range(2,aNbColors) :
+ aScalarMap.SetNbColors(i)
+ aX = aMin + aDelta*i/aNbColors
+ aY = aMax - aDelta*i/aNbColors
+ aScalarMap.SetRange(aX,aY)
+ myView.Update();
+ time.sleep(aDelay)
+
+aScalarMap.SetRange(aMin,aMax)
+
+print "myView.Update()"
+myView.Update();
+print "myView.FitAll()"
+myView.FitAll();
+
+
+myView = myViewManager.Create3DView();
+myView.SetTitle("Here we will display CutPlanes")
+
+print "myView.SetBackground(...)"
+aColor = SALOMEDS.Color(0.0,0.7,0.0)
+myView.SetBackground(aColor);
+
+aCutPlanes = myVisu.CutPlanesOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
+print "myVisu.CutPlanesOnField(...)"
+
+myView.DisplayOnly(aCutPlanes);
+print "myView.DisplayOnly(aCutPlanes)"
+
+aPoint = myView.GetPointOfView();
+aPoint[0] = aPoint[0] + 10;
+myView.SetPointOfView(aPoint);
+print "myView.SetPointOfView(...)"
+myView.ScaleView(VISU.View3D.YAxis,10.0);
+myView.ScaleView(VISU.View3D.XAxis,3.0);
+print "myView.ScaleView(...)"
+time.sleep(aDelay)
+
+myView.FitAll();
+
+aNbPlanes = aCutPlanes.GetNbPlanes()
+aNbPlanes = 30
+aXAngle = aCutPlanes.GetRotateX()
+aYAngle = aCutPlanes.GetRotateY()
+anOrientation = aCutPlanes.GetOrientationType()
+for i in range(aNbPlanes,1,-1) :
+ aCutPlanes.SetNbPlanes(i)
+ aX = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
+ aY = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
+ aCutPlanes.SetOrientation(anOrientation,aX,aY)
+ myView.Update();
+ time.sleep(aDelay)
+
+aNbPlanes = 10
+aCutPlanes.SetOrientation(VISU.CutPlanes.ZX,0,0)
+for i in range(1,aNbPlanes) :
+ aCutPlanes.SetNbPlanes(i)
+ myView.Update();
+ time.sleep(aDelay)
+
+myView.SaveViewParams('AAA')
+print "myView.SaveViewParams('AAA')"
+time.sleep(aDelay)
+
+aCutPlanes.SetOrientation(VISU.CutPlanes.XY,0,0)
+myView.RemoveScale();
+
+print "myView.Update()"
+myView.Update();
+print "myView.FitAll()"
+myView.FitAll();
+
+
+myView = myViewManager.Create3DView();
+print "myViewManager.Create3DView()"
+
+myView.SetTitle("IsoSurface's viewer")
+
+print "myView.SetBackground(...)"
+aColor = SALOMEDS.Color(1.0,0.7,0.0)
+myView.SetBackground(aColor);
+time.sleep(aDelay)
+
+aIsoSurfaces = myVisu.IsoSurfacesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
+
+myView.DisplayOnly(aIsoSurfaces);
+myView.FitAll();
+print "myView.DisplayOnly(aCutPlanes)"
+time.sleep(aDelay)
+
+aNbSurfaces = aIsoSurfaces.GetNbSurfaces()
+aNbSurfaces = 32
+for i in range(2,aNbSurfaces) :
+ aIsoSurfaces.SetNbSurfaces(i)
+ myView.Update();
+ time.sleep(aDelay)
+
+aIsoSurfaces.SetNbSurfaces(10)
+
+print "myView.Update()"
+myView.Update();
+print "myView.FitAll()"
+myView.FitAll();
+
+
+myView = myViewManager.Create3DView();
+myView.SetTitle("The viewer for CutLines")
+print "myViewManager.Create3DView()"
+time.sleep(aDelay)
+
+print "myView.SetBackground(...)"
+aColor = SALOMEDS.Color(0.7,0.7,0.7)
+myView.SetBackground(aColor);
+time.sleep(aDelay)
+
+aCutLines = myVisu.CutLinesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
+aCutLines.SetOrientation(VISU.CutPlanes.ZX,0,0)
+aCutLines.SetOrientation2(VISU.CutPlanes.YZ,0,0)
+
+myView.DisplayOnly(aCutLines);
+myView.FitAll();
+print "myView.DisplayOnly(aCutLines)"
+time.sleep(aDelay)
+
+aSObj = myStudy.FindObjectIOR(aCutLines.GetID())
+aTable = myVisu.CreateTable( aSObj.GetID() )
+print "myVisu.CreateTable(...)"
+
+aTableView = myViewManager.CreateTableView(aTable)
+aTableView.SetTitle('Changed Title')
+
+aContainer = myVisu.CreateContainer()
+print "myVisu.CreateContainer(...)"
+
+aNbCurve = aTable.GetNbRows() - 1
+for i in range(2,aNbCurve):
+ aCurve = myVisu.CreateCurve( aTable, 1, i )
+ print i, aCurve
+ aContainer.AddCurve(aCurve)
+
+
+myView = myViewManager.CreateXYPlot();
+myView.SetTitle("The viewer for Curves from CutLines")
+print "myViewManager.CreateXYPlot()"
+time.sleep(aDelay)
+
+myView.Display(aContainer)
+
+
+myView = myViewManager.Create3DView();
+myView.SetTitle("The viewer for Animation")
+print "myViewManager.Create3DView()"
+time.sleep(aDelay)
+
+medFile = "TimeStamps.med"
+myFieldName = "vitesse";
+
+medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
+myResult = myVisu.ImportFile(medFile)
+
+anAnim = myVisu.CreateAnimation(myView);
+aSObj = myStudy.FindObjectIOR(myResult.GetID())
+aSObj = aSObj.FindSubObject(1)[1]
+aSObj = aSObj.FindSubObject(2)[1]
+aSObj = aSObj.FindSubObject(2)[1]
+anAnim.addField(aSObj)
+anAnim.setPresentationType(0,VISU.TISOSURFACE)
+print "Generate presentations"
+anAnim.generatePresentations(0)
+print "Generate frames"
+anAnim.generateFrames()
+print "Start Animation"
+anAnim.setSpeed(99)
+anAnim.startAnimation()
+myView.FitAll()
+while 1:
+ time.sleep(1+aDelay)
+ if not anAnim.isRunning():
+ anAnim.stopAnimation()
+ break
--- /dev/null
+# Import a table from file and show it in Plot2d viewer
+
+import salome
+import math
+import SALOMEDS
+import VISU
+from visu_gui import *
+
+# >>> Getting study builder ==================================================
+myStudy = salome.myStudy
+myBuilder = myStudy.NewBuilder()
+
+# >>> Getting (loading) VISU component =======================================
+myVisu = salome.lcc.FindOrLoadComponent("FactoryServer", "VISU")
+myComponent = myStudy.FindComponent("VISU")
+myVisu.SetCurrentStudy(myStudy)
+if not myComponent:
+ myComponent = myBuilder.NewComponent("VISU")
+ aName = myBuilder.FindOrCreateAttribute(myComponent, "AttributeName")
+ #aName.SetValue("Visu")
+ aName.SetValue( salome.sg.getComponentUserName("VISU") )
+
+ A2 = myBuilder.FindOrCreateAttribute(myComponent, "AttributePixMap");
+ aPixmap = A2._narrow(SALOMEDS.AttributePixMap);
+ aPixmap.SetPixMap( "ICON_OBJBROWSER_Visu" );
+
+ myBuilder.DefineComponentInstance(myComponent,myVisu)
+
+# >>> Import a tables from a file ============================================
+aFileName = os.getenv("DATA_DIR") + "/Tables/tables_test.xls"
+sobj = myVisu.ImportTables(aFileName)
+
+# >>> Create container and insert curves =====================================
+myContainer = myVisu.CreateContainer()
+
+chiter = myStudy.NewChildIterator(sobj)
+while chiter.More():
+ sobj_table = chiter.Value()
+
+ # >>> Create Visu table ====================================================
+ myVisuTableReal = myVisu.CreateTable(sobj_table.GetID())
+
+ nbRows = myVisuTableReal.GetNbRows()
+
+ # >>> Create curves ========================================================
+ for i in range(1, nbRows):
+ myCurve = myVisu.CreateCurve(myVisuTableReal, 1, i+1)
+ myContainer.AddCurve(myCurve)
+
+ chiter.Next()
+
+# >>> Updating Object Browser ================================================
+salome.sg.updateObjBrowser(1)
+
+# >>> Display curves in Plot2d viewer ========================================
+myViewManager = myVisu.GetViewManager();
+myView = myViewManager.CreateXYPlot();
+myView.SetTitle("The viewer for Curves from the Table")
+myView.Display(myContainer)
+
+# ============================================================================