Salome HOME
Merge from BR_size_maps
authorrnc <rnc@opencascade.com>
Thu, 22 Aug 2013 11:25:44 +0000 (11:25 +0000)
committerrnc <rnc@opencascade.com>
Thu, 22 Aug 2013 11:25:44 +0000 (11:25 +0000)
adm_local/unix/config_files/check_GHS3DPLUGIN.m4 [new file with mode: 0644]
src/GUI/HexoticPLUGIN_msg_en.ts
src/GUI/HexoticPLUGIN_msg_fr.ts
src/GUI/HexoticPluginGUI_Dlg.h
src/GUI/HexoticPluginGUI_HypothesisCreator.cxx
src/GUI/HexoticPluginGUI_HypothesisCreator.h
src/GUI/HexoticPluginGUI_SizeMapsWidget.cxx [new file with mode: 0644]
src/GUI/HexoticPluginGUI_SizeMapsWidget_QTD.ui [new file with mode: 0644]
src/GUI/Makefile.am

diff --git a/adm_local/unix/config_files/check_GHS3DPLUGIN.m4 b/adm_local/unix/config_files/check_GHS3DPLUGIN.m4
new file mode 100644 (file)
index 0000000..0573e9f
--- /dev/null
@@ -0,0 +1,76 @@
+dnl Copyright (C) 2007-2013  CEA/DEN, EDF R&D
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the terms of the GNU Lesser General Public
+dnl License as published by the Free Software Foundation; either
+dnl version 2.1 of the License.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl Lesser General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU Lesser General Public
+dnl License along with this library; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+dnl
+dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+dnl
+
+dnl  File   : check_GHS3DPLUGIN.m4
+dnl  Author : Vadim SANDLER, Open CASCADE S.A.S (vadim.sandler@opencascade.com)
+dnl
+AC_DEFUN([CHECK_GHS3DPLUGIN],[
+
+AC_CHECKING(for GHS3D mesh plugin)
+
+GHS3Dplugin_ok=no
+
+GHS3DPLUGIN_LDFLAGS=""
+GHS3DPLUGIN_CXXFLAGS=""
+
+AC_ARG_WITH(GHS3Dplugin,
+      --with-GHS3Dplugin=DIR  root directory path of GHS3D mesh plugin installation,
+      GHS3DPLUGIN_DIR="$withval",GHS3DPLUGIN_DIR="")
+
+if test "x$GHS3DPLUGIN_DIR" = "x" ; then
+
+# no --with-GHS3Dplugin option used
+
+  if test "x$GHS3DPLUGIN_ROOT_DIR" != "x" ; then
+
+    # SALOME_ROOT_DIR environment variable defined
+    GHS3DPLUGIN_DIR=$GHS3DPLUGIN_ROOT_DIR
+
+  else
+
+    # search Salome binaries in PATH variable
+    AC_PATH_PROG(TEMP, libGHS3DEngine.so)
+    if test "x$TEMP" != "x" ; then
+      GHS3DPLUGIN_DIR=`dirname $TEMP`
+    fi
+
+  fi
+
+fi
+
+if test -f ${GHS3DPLUGIN_DIR}/lib${LIB_LOCATION_SUFFIX}/salome/libGHS3DEngine.so  ; then
+  GHS3Dplugin_ok=yes
+  AC_MSG_RESULT(Using GHS3D mesh plugin distribution in ${GHS3DPLUGIN_DIR})
+
+  if test "x$GHS3DPLUGIN_ROOT_DIR" == "x" ; then
+    GHS3DPLUGIN_ROOT_DIR=${GHS3DPLUGIN_DIR}
+  fi
+  GHS3DPLUGIN_CXXFLAGS=-I${GHS3DPLUGIN_ROOT_DIR}/include/salome
+  GHS3DPLUGIN_LDFLAGS="-L${GHS3DPLUGIN_ROOT_DIR}/lib${LIB_LOCATION_SUFFIX}/salome -lGHS3DEngine"
+else
+  AC_MSG_WARN("Cannot find compiled GHS3D mesh plugin distribution")
+fi
+  
+AC_MSG_RESULT(for GHS3D mesh plugin: $GHS3Dplugin_ok)
+
+AC_SUBST(GHS3DPLUGIN_ROOT_DIR)
+AC_SUBST(GHS3DPLUGIN_LDFLAGS)
+AC_SUBST(GHS3DPLUGIN_CXXFLAGS)
+])dnl
index d19476798638713a4fc04ca3af1a0859a0b6ea69..a1b00bf77ac393ddf17baea7a934537bd4c46360 100644 (file)
         <source>Hexotic_SD_MODE_4</source>
         <translation>Non-manifold geometries</translation>
     </message>
+    <message>
+        <source>Hexotic_ADD</source>
+        <translation>Add</translation>
+    </message>
+    <message>
+        <source>Hexotic_REMOVE</source>
+        <translation>Remove</translation>
+    </message>
+    <message>
+        <source>Hexotic_ENTRY</source>
+        <translation>Entry</translation>
+    </message>
+    <message>
+        <source>Hexotic_NAME</source>
+        <translation>Name</translation>
+    </message>
+    <message>
+        <source>Hexotic_SIZE</source>
+        <translation>Size</translation>
+    </message>
+    <message>
+        <source>Hexotic_SEL_SHAPE</source>
+        <translation>Select a shape</translation>
+    </message>
 </context>
 </TS>
index 12e77d01e0876f9e0c0b9296154659d9a9986661..7449f3790a2ade8f97c4c6c72e002cfe373642f5 100755 (executable)
         <source>Hexotic_SD_MODE_4</source>
         <translation>Géométries "non-manifold"</translation>
     </message>
+    <message>
+        <source>Hexotic_ADD</source>
+        <translation>Ajouter</translation>
+    </message>
+    <message>
+        <source>Hexotic_REMOVE</source>
+        <translation>Supprimer</translation>
+    </message>
+    <message>
+        <source>Hexotic_ENTRY</source>
+        <translation>Entry</translation>
+    </message>
+    <message>
+        <source>Hexotic_NAME</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <source>Hexotic_SIZE</source>
+        <translation>Taille</translation>
+    </message>
+    <message>
+        <source>Hexotic_SEL_SHAPE</source>
+        <translation>Sélectionnez un objet géométrique</translation>
+    </message>
 </context>
 </TS>
index 609c415cb6ac28a4db788a17964a6d38688a7dae..def7082422346108595ee88c4ac587671b680bcd 100644 (file)
@@ -37,6 +37,7 @@ enum {
 //////////////////////////////////////////
 
 #include "ui_HexoticPluginGUI_StdWidget_QTD.h"
+#include "ui_HexoticPluginGUI_SizeMapsWidget_QTD.h"
 #include "HexoticPluginGUI.h"
 
 class HEXOTICPLUGIN_GUI_EXPORT HexoticPluginGUI_StdWidget : public QWidget,
@@ -56,5 +57,15 @@ public:
   QPixmap imageSdMode;
 };
 
+class HEXOTICPLUGIN_GUI_EXPORT HexoticPluginGUI_SizeMapsWidget : public QWidget,
+                                            public Ui::HexoticPluginGUI_SizeMapsWidget_QTD
+{
+  Q_OBJECT
+
+public:
+  HexoticPluginGUI_SizeMapsWidget( QWidget* = 0, Qt::WindowFlags = 0 );
+  ~HexoticPluginGUI_SizeMapsWidget();
+};
+
 
 #endif
index ef66f690e4a26bda0a19c838b0955eef167f0d6c..ad1e57c22d177541569f7c7c29c379288f2b9056 100644 (file)
@@ -27,6 +27,9 @@
 
 #include <SMESHGUI_Utils.h>
 #include <SMESHGUI_HypothesesUtils.h>
+#include "SMESH_NumberFilter.hxx"
+
+#include "utilities.h"
 
 #include CORBA_SERVER_HEADER(HexoticPlugin_Algorithm)
 
 #include <QCheckBox>
 #include <QPushButton>
 
+#include "SMESH_Gen_i.hxx"
+
+// OCC includes
+#include <TColStd_MapOfInteger.hxx>
+#include <TopAbs.hxx>
+
+// Main widget tabs identification
+enum {
+  STD_TAB = 0,
+  SMP_TAB
+};
+
+// Size maps tab, table columns order
+enum {
+  ENTRY_COL = 0,
+  NAME_COL,
+  SIZE_COL
+};
 
 HexoticPluginGUI_HypothesisCreator::HexoticPluginGUI_HypothesisCreator( const QString& theHypType )
 : SMESHGUI_GenericHypothesisCreator( theHypType ),
-  myIs3D( true )
+  myIs3D( true ),
+  mySizeMapRemoved ( false )
 {
 }
 
@@ -91,19 +113,24 @@ QFrame* HexoticPluginGUI_HypothesisCreator::buildFrame()
   QVBoxLayout* lay = new QVBoxLayout( fr );
   lay->setMargin( 0 );
   lay->setSpacing( 6 );
-
-  QGroupBox* GroupC1 = new QGroupBox( tr( "SMESH_ARGUMENTS" ), fr );
-  lay->addWidget( GroupC1 );
   
-  QGridLayout* l = new QGridLayout( GroupC1 );
+  // main TabWidget of the dialog
+  QTabWidget* aTabWidget = new QTabWidget( fr );
+  aTabWidget->setTabShape( QTabWidget::Rounded );
+  aTabWidget->setTabPosition( QTabWidget::North );
+  lay->addWidget( aTabWidget );
+
+  // Standard arguments tab
+  QWidget* aStdGroup = new QWidget();
+  QGridLayout* l = new QGridLayout( aStdGroup );
   l->setSpacing( 6 );
   l->setMargin( 11 );
-  
   int row = 0;
   myName = 0;
   if( isCreation() ) {
-    l->addWidget( new QLabel( tr( "SMESH_NAME" ), GroupC1 ), row, 0, 1, 1 );
-    myName = new QLineEdit( GroupC1 );
+    l->addWidget( new QLabel( tr( "SMESH_NAME" ), aStdGroup ), row, 0, 1, 1 );
+    myName = new QLineEdit( aStdGroup );
     l->addWidget( myName, row++, 1, 1, 2 );
     myName->setMinimumWidth( 150 );
   }
@@ -111,15 +138,133 @@ QFrame* HexoticPluginGUI_HypothesisCreator::buildFrame()
   HexoticPlugin::HexoticPlugin_Hypothesis_var h =
   HexoticPlugin::HexoticPlugin_Hypothesis::_narrow( initParamsHypothesis() );
   
-  myStdWidget = new HexoticPluginGUI_StdWidget(GroupC1);
+  myStdWidget = new HexoticPluginGUI_StdWidget(aStdGroup);
   l->addWidget( myStdWidget, row++, 0, 1, 3 );
   myStdWidget->onSdModeSelected(SD_MODE_4);
 
-  myIs3D = true;
+  // SIZE MAPS TAB
+  QWidget* aSmpGroup = new QWidget();
+  lay->addWidget( aSmpGroup );
+  
+  // Size map widget creation and initialisation
+  mySmpWidget = new HexoticPluginGUI_SizeMapsWidget(aSmpGroup);
+  mySmpWidget->doubleSpinBox->setValue(0.0);
+  
+  // Filters of selection
+  TColStd_MapOfInteger SM_ShapeTypes; 
+  SM_ShapeTypes.Add( TopAbs_VERTEX );
+  SM_ShapeTypes.Add( TopAbs_EDGE );
+  SM_ShapeTypes.Add( TopAbs_WIRE );
+  SM_ShapeTypes.Add( TopAbs_FACE );
+  SM_ShapeTypes.Add( TopAbs_SOLID );
+  SM_ShapeTypes.Add( TopAbs_COMPOUND );  
+  SMESH_NumberFilter* aFilter = new SMESH_NumberFilter("GEOM", TopAbs_SHAPE, 0, SM_ShapeTypes);
+  
+  myGeomSelWdg = new StdMeshersGUI_ObjectReferenceParamWdg( aFilter, mySmpWidget, /*multiSel=*/false,/*stretch=*/false);
+  myGeomSelWdg->SetDefaultText(tr("Hexotic_SEL_SHAPE"), "QLineEdit { color: grey }");
+  mySmpWidget->gridLayout->addWidget(myGeomSelWdg, 0, 1);
+  
+  QHBoxLayout* aSmpLayout = new QHBoxLayout( aSmpGroup );
+  aSmpLayout->setMargin( 0 );
+  aSmpLayout->addWidget( mySmpWidget);
+  
+  QStringList headerLabels;
+  headerLabels << tr("Hexotic_ENTRY")<< tr("Hexotic_NAME")<< tr("Hexotic_SIZE");
+  mySmpWidget->tableWidget->setHorizontalHeaderLabels(headerLabels);
+  mySmpWidget->tableWidget->resizeColumnsToContents();
+  mySmpWidget->tableWidget->hideColumn( 0 );
+  mySmpWidget->label->setText(tr("LOCAL_SIZE"));
+  mySmpWidget->pushButton_1->setText(tr("Hexotic_ADD"));
+  mySmpWidget->pushButton_2->setText(tr("Hexotic_REMOVE"));
+  
 //  resizeEvent();
+  
+  aTabWidget->insertTab( STD_TAB, aStdGroup, tr( "SMESH_ARGUMENTS" ) );
+  aTabWidget->insertTab( SMP_TAB, aSmpGroup, tr( "LOCAL_SIZE" ) );
+  
+  myIs3D = true;
+  
+  // Size Maps
+  connect( mySmpWidget->pushButton_1,  SIGNAL( clicked() ),  this,  SLOT( onAddLocalSize() ) );
+  connect( mySmpWidget->pushButton_2,  SIGNAL( clicked() ),  this,  SLOT( onRemoveLocalSize() ) );
+  
   return fr;
 }
 
+void HexoticPluginGUI_HypothesisCreator::onAddLocalSize()
+{
+  int rowCount = mySmpWidget->tableWidget->rowCount();
+  int columnCount = mySmpWidget->tableWidget->columnCount();
+  
+  // Get the selected object properties
+  GEOM::GEOM_Object_var sizeMapObject = myGeomSelWdg->GetObject< GEOM::GEOM_Object >(0);
+  std::string entry, shapeName;
+  entry = (std::string) sizeMapObject->GetStudyEntry();
+  shapeName = sizeMapObject->GetName();
+  
+  // Check if the object is already in the widget
+  QList<QTableWidgetItem *> listFound = mySmpWidget->tableWidget
+                                        ->findItems( QString(entry.c_str()), Qt::MatchExactly );
+  if ( !listFound.isEmpty() )
+    return;
+  
+  // Get the size value
+  double size = mySmpWidget->doubleSpinBox->value();
+  
+  // Set items for the inserted row
+  insertLocalSizeInWidget( entry, shapeName, size, rowCount );
+}
+
+void HexoticPluginGUI_HypothesisCreator::insertLocalSizeInWidget( std::string entry, 
+                                                                  std::string shapeName, 
+                                                                  double size, 
+                                                                  int row ) const
+{
+  MESSAGE("HexoticPluginGUI_HypothesisCreator:insertLocalSizeInWidget")
+  int columnCount = mySmpWidget->tableWidget->columnCount();
+  
+  // Add a row at the end of the table
+  mySmpWidget->tableWidget->insertRow(row);
+  
+  QVariant value;
+  for (int col = 0; col<columnCount; col++)
+  {
+    QTableWidgetItem* item = new QTableWidgetItem();
+    switch ( col )
+    {
+      case ENTRY_COL:
+        value = QVariant( entry.c_str() );
+        break;  
+      case NAME_COL:
+        value = QVariant( shapeName.c_str() );
+        break;
+      case SIZE_COL:
+        value = QVariant( size );
+        break;
+    }       
+    item->setData(Qt::DisplayRole, value );
+    mySmpWidget->tableWidget->setItem(row,col,item);
+  }
+}
+
+void HexoticPluginGUI_HypothesisCreator::onRemoveLocalSize()
+{
+  // Remove the selected rows in the table
+  QList<QTableWidgetSelectionRange> ranges = mySmpWidget->tableWidget->selectedRanges();
+  if ( ranges.isEmpty() ) // If none is selected remove the last one
+  {
+    int lastRow = mySmpWidget->tableWidget->rowCount() - 1;
+    mySmpWidget->tableWidget->removeRow( lastRow ); 
+  }
+  else
+  {
+    QTableWidgetSelectionRange& range = ranges.first();
+    mySmpWidget->tableWidget->model()->removeRows(range.topRow(), range.rowCount());
+  }
+  mySizeMapRemoved = true;
+}
+
 //=================================================================================
 // function : resizeEvent [REDEFINED]
 // purpose  :
@@ -183,6 +328,18 @@ void HexoticPluginGUI_HypothesisCreator::retrieveParams() const
   myStdWidget->myHexoticMaxMemory->setValue( data.myHexoticMaxMemory );
 
   myStdWidget->myHexoticSdMode->setCurrentIndex(data.myHexoticSdMode);
+  
+  HexoticPlugin_Hypothesis::THexoticSizeMaps::const_iterator it = data.mySizeMaps.begin();
+  for ( int row = 0; it != data.mySizeMaps.end(); it++, row++ )
+  {
+    std::string entry = it->first;
+    double size = it->second;
+    GEOM::GEOM_Object_var anObject = entryToObject( entry );
+    std::string shapeName = anObject->GetName();
+
+    MESSAGE(" Insert local size, entry : "<<entry<<", size : "<<size<<", at row : "<<row) 
+    insertLocalSizeInWidget( entry, shapeName, size , row );
+  }
 
   std::cout << "myStdWidget->myMinSize->value(): " << myStdWidget->myMinSize->value() << std::endl;
   std::cout << "myStdWidget->myMaxSize->value(): " << myStdWidget->myMaxSize->value() << std::endl;
@@ -255,7 +412,18 @@ bool HexoticPluginGUI_HypothesisCreator::readParamsFromHypo( HexoticHypothesisDa
   h_data.myHexoticVerbosity = h->GetHexoticVerbosity();
   h_data.myHexoticMaxMemory = h->GetHexoticMaxMemory();
   h_data.myHexoticSdMode = h->GetHexoticSdMode()-1;
-
+  
+  // Size maps
+  HexoticPlugin::HexoticPluginSizeMapsList_var sizeMaps = h->GetSizeMaps();
+  for ( int i = 0 ; i < sizeMaps->length() ; i++) 
+  {
+    HexoticPlugin::HexoticPluginSizeMap aSizeMap = sizeMaps[i];
+    std::string entry = CORBA::string_dup(aSizeMap.entry.in());
+    double size = aSizeMap.size;
+    h_data.mySizeMaps[ entry ] = size;
+    MESSAGE("READING Size map : entry "<<entry<<" size : "<<size)
+  }
+  
   return true;
 }
 
@@ -283,6 +451,18 @@ bool HexoticPluginGUI_HypothesisCreator::storeParamsToHypo( const HexoticHypothe
     h->SetHexoticVerbosity( h_data.myHexoticVerbosity );
     h->SetHexoticMaxMemory( h_data.myHexoticMaxMemory );
     h->SetHexoticSdMode( h_data.myHexoticSdMode+1 );
+    
+    HexoticPlugin_Hypothesis::THexoticSizeMaps::const_iterator it;
+    
+    // Clear size maps in hypothesis if one of them as been removed by the user
+    if ( mySizeMapRemoved )
+      h->ClearSizeMaps();
+    
+    for ( it =  h_data.mySizeMaps.begin(); it !=  h_data.mySizeMaps.end(); it++ )
+    {
+       h->SetSizeMapEntry( it->first.c_str(), it->second );
+       MESSAGE("STORING Size map : entry "<<it->first.c_str()<<" size : "<<it->second)
+    }
   }
   catch(const SALOME::SALOME_Exception& ex)
   {
@@ -311,11 +491,50 @@ bool HexoticPluginGUI_HypothesisCreator::readParamsFromWidgets( HexoticHypothesi
   h_data.myHexesMaxLevel = myStdWidget->myHexesMaxLevel->text().isEmpty() ? 0 : myStdWidget->myHexesMaxLevel->value();
   h_data.myHexoticSharpAngleThreshold = myStdWidget->myHexoticSharpAngleThreshold->text().isEmpty() ? 0 : myStdWidget->myHexoticSharpAngleThreshold->value();
 
+  // Size maps reading
+  bool ok = readSizeMapsFromWidgets( h_data );
+  if ( !ok )
+    return false;
+  
   printData(h_data);
 
   return true;
 }
 
+bool HexoticPluginGUI_HypothesisCreator::readSizeMapsFromWidgets( HexoticHypothesisData& h_data ) const
+{
+  int rowCount = mySmpWidget->tableWidget->rowCount();
+  for ( int row = 0; row <  rowCount; row++ )
+  {
+    std::string entry     = mySmpWidget->tableWidget->item( row, ENTRY_COL )->text().toStdString();
+    QVariant size_variant = mySmpWidget->tableWidget->item( row, SIZE_COL )->data(Qt::DisplayRole);
+    
+    // Convert the size to double
+    bool ok = false;
+    double size = size_variant.toDouble(&ok);
+    if (!ok)
+      return false;
+    
+    // Set the size maps
+    h_data.mySizeMaps[ entry ] = size;
+    MESSAGE("READING Size map from WIDGET: entry "<<entry<<" size : "<<size)
+  } 
+}
+
+GEOM::GEOM_Object_var HexoticPluginGUI_HypothesisCreator::entryToObject( std::string entry) const
+{
+  SMESH_Gen_i* smeshGen_i = SMESH_Gen_i::GetSMESHGen();
+  SALOMEDS::Study_var myStudy = smeshGen_i->GetCurrentStudy();
+  GEOM::GEOM_Object_var aGeomObj;
+  SALOMEDS::SObject_var aSObj = myStudy->FindObjectID( entry.c_str() );
+  if (!aSObj->_is_nil()) {
+    CORBA::Object_var obj = aSObj->GetObject();
+    aGeomObj = GEOM::GEOM_Object::_narrow(obj);
+    aSObj->UnRegister();
+  }
+  return aGeomObj;
+}
+
 QString HexoticPluginGUI_HypothesisCreator::caption() const
 {
   return myIs3D ? tr( "Hexotic_3D_TITLE" ) : tr( "Hexotic_3D_TITLE" ); // ??? 3D/2D ???
index fab52b697ed93d8403fe36c398cd11c4a40bae9e..ba687d50c4a53b9506f7fb8ab6eeac0d45478b24 100644 (file)
 #include "HexoticPluginGUI.h"
 
 #include <SMESHGUI_Hypotheses.h>
+#include "StdMeshersGUI_ObjectReferenceParamWdg.h"
+#include "HexoticPlugin_Hypothesis.hxx"
 
 class QtxIntSpinBox;
 class QCheckBox;
 class QLineEdit;
 
 class HexoticPluginGUI_StdWidget;
+class HexoticPluginGUI_SizeMapsWidget;
 
 typedef struct
 {
@@ -48,6 +51,7 @@ typedef struct
   int      myHexoticVerbosity;
   int      myHexoticMaxMemory;
   int      myHexoticSdMode;
+  HexoticPlugin_Hypothesis::THexoticSizeMaps mySizeMaps;
 } HexoticHypothesisData;
 
 /*!
@@ -76,17 +80,29 @@ protected:
 private:
   bool readParamsFromHypo( HexoticHypothesisData& ) const;
   bool readParamsFromWidgets( HexoticHypothesisData& ) const;
+  bool readSizeMapsFromWidgets( HexoticHypothesisData& ) const;
+  void insertLocalSizeInWidget( std::string entry, std::string shapeName, double size, int row ) const;
   bool storeParamsToHypo( const HexoticHypothesisData& ) const;
   void resizeEvent(QResizeEvent *event);
   void printData(HexoticHypothesisData&) const;
+  
+  GEOM::GEOM_Object_var entryToObject( std::string entry) const;
 
 private:
 
 //  QWidget*           myStdGroup;
   QLineEdit*   myName;
-  HexoticPluginGUI_StdWidget*  myStdWidget;
+  HexoticPluginGUI_StdWidget*           myStdWidget;
+  HexoticPluginGUI_SizeMapsWidget*       mySmpWidget;
+  StdMeshersGUI_ObjectReferenceParamWdg* myGeomSelWdg;
 
- bool             myIs3D;
+  bool             myIs3D;
+  bool             mySizeMapRemoved;
+protected slots:
+  void             onAddLocalSize();
+  void             onRemoveLocalSize();
+  
 };
 
 #endif
diff --git a/src/GUI/HexoticPluginGUI_SizeMapsWidget.cxx b/src/GUI/HexoticPluginGUI_SizeMapsWidget.cxx
new file mode 100644 (file)
index 0000000..de92ddd
--- /dev/null
@@ -0,0 +1,49 @@
+// Copyright (C) 2007-2013  CEA/DEN, EDF R&D
+//
+// 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+// ---
+// File    : HexoticPluginGUI_SizeMapsWidget.cxx
+// Authors : Renaud NEDELEC (OCC)
+// ---
+//
+
+
+#include "HexoticPluginGUI_Dlg.h"
+
+#include <SUIT_Session.h>
+#include <SUIT_ResourceMgr.h>
+#include <SUIT_FileDlg.h>
+#include <SalomeApp_Tools.h>
+
+//////////////////////////////////////////
+// HexoticPluginGUI_SizeMapsWidget
+//////////////////////////////////////////
+
+HexoticPluginGUI_SizeMapsWidget::HexoticPluginGUI_SizeMapsWidget( QWidget* parent, Qt::WindowFlags f )
+: QWidget( parent, f )
+{
+  setupUi( this );
+  
+}
+
+HexoticPluginGUI_SizeMapsWidget::~HexoticPluginGUI_SizeMapsWidget()
+{
+}
+
+
diff --git a/src/GUI/HexoticPluginGUI_SizeMapsWidget_QTD.ui b/src/GUI/HexoticPluginGUI_SizeMapsWidget_QTD.ui
new file mode 100644 (file)
index 0000000..2107ca0
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>HexoticPluginGUI_SizeMapsWidget_QTD</class>
+ <widget class="QWidget" name="HexoticPluginGUI_SizeMapsWidget_QTD">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>450</width>
+    <height>286</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout_2">
+   <item row="0" column="0">
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="0" column="0" rowspan="4">
+      <widget class="QTableWidget" name="tableWidget">
+       <property name="rowCount">
+        <number>0</number>
+       </property>
+       <property name="columnCount">
+        <number>3</number>
+       </property>
+       <attribute name="horizontalHeaderVisible">
+        <bool>true</bool>
+       </attribute>
+       <attribute name="horizontalHeaderCascadingSectionResizes">
+        <bool>false</bool>
+       </attribute>
+       <attribute name="horizontalHeaderDefaultSectionSize">
+        <number>80</number>
+       </attribute>
+       <attribute name="horizontalHeaderShowSortIndicator" stdset="0">
+        <bool>false</bool>
+       </attribute>
+       <attribute name="horizontalHeaderStretchLastSection">
+        <bool>true</bool>
+       </attribute>
+       <attribute name="verticalHeaderVisible">
+        <bool>false</bool>
+       </attribute>
+       <attribute name="verticalHeaderCascadingSectionResizes">
+        <bool>false</bool>
+       </attribute>
+       <column/>
+       <column/>
+       <column/>
+      </widget>
+     </item>
+     <item row="3" column="1">
+      <layout class="QHBoxLayout" name="horizontalLayout">
+       <item>
+        <widget class="QPushButton" name="pushButton_1">
+         <property name="text">
+          <string>PushButton</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QPushButton" name="pushButton_2">
+         <property name="text">
+          <string>PushButton</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item row="1" column="1">
+      <layout class="QHBoxLayout" name="horizontalLayout_2">
+       <item>
+        <widget class="QLabel" name="label">
+         <property name="text">
+          <string>TextLabel</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="SMESHGUI_SpinBox" name="doubleSpinBox">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item row="2" column="1">
+      <spacer name="verticalSpacer">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>40</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item row="1" column="0">
+    <spacer name="verticalSpacer_2">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>103</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>SMESHGUI_SpinBox</class>
+   <extends>QDoubleSpinBox</extends>
+   <header location="global">SMESHGUI_SpinBox.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
index 60c045afb0083e63a6cf743bbd8083954ce4dcb7..aca5544ad2cbe81caf4597ed20bdcaa19eddad5c 100644 (file)
@@ -35,15 +35,17 @@ lib_LTLIBRARIES = libHexoticPluginGUI.la
 
 dist_libHexoticPluginGUI_la_SOURCES =          \
        HexoticPluginGUI.cxx                    \
-       HexoticPluginGUI_StdWidget.cxx \
-    HexoticPluginGUI_HypothesisCreator.cxx
+       HexoticPluginGUI_StdWidget.cxx          \
+       HexoticPluginGUI_SizeMapsWidget.cxx     \
+       HexoticPluginGUI_HypothesisCreator.cxx
 
 MOC_FILES = \
        HexoticPluginGUI_HypothesisCreator_moc.cxx \
     HexoticPluginGUI_Dlg_moc.cxx
 
 UIC_FILES =     \
-        ui_HexoticPluginGUI_StdWidget_QTD.h
+        ui_HexoticPluginGUI_StdWidget_QTD.h    \
+       ui_HexoticPluginGUI_SizeMapsWidget_QTD.h
 
 BUILT_SOURCES = $(UIC_FILES)
 
@@ -60,6 +62,7 @@ libHexoticPluginGUI_la_CPPFLAGS =     \
        $(GUI_CXXFLAGS)                 \
        $(GEOM_CXXFLAGS)                \
        $(SMESH_CXXFLAGS)               \
+       $(VTK_INCLUDES)                 \
        $(BOOST_CPPFLAGS)               \
        $(CORBA_CXXFLAGS)               \
        $(CORBA_INCLUDES)               \
@@ -69,7 +72,7 @@ libHexoticPluginGUI_la_CPPFLAGS =     \
 libHexoticPluginGUI_la_LDFLAGS =                          \
        ../HexoticPlugin/libHexoticEngine.la               \
        ../../idl/libSalomeIDLHexoticPLUGIN.la \
-       ${SMESH_LDFLAGS} -lSMESH                           \
+       ${SMESH_LDFLAGS} -lSMESH -lStdMeshersGUI           \
        $(CAS_KERNEL)                                      \
        $(GUI_LDFLAGS) -lsuit -lqtx -lSalomeApp            \
        $(QT_LIBS)