]> SALOME platform Git repositories - modules/hexablock.git/commitdiff
Salome HOME
Livraison IHM Hexa7
authorabuhsing <abuhsing>
Thu, 14 Nov 2013 17:42:31 +0000 (17:42 +0000)
committerabuhsing <abuhsing>
Thu, 14 Nov 2013 17:42:31 +0000 (17:42 +0000)
  src/HEXABLOCKGUI/AddShapeDialog_QTD.ui
  src/HEXABLOCKGUI/CutEdge_QTD.ui
  src/HEXABLOCKGUI/Disconnect_QTD.ui
  src/HEXABLOCKGUI/EdgeAssoc_QTD.ui src/HEXABLOCKGUI/Edge_QTD.ui
  src/HEXABLOCKGUI/Group_QTD.ui
  src/HEXABLOCKGUI/HEXABLOCKGUI.cxx
  src/HEXABLOCKGUI/HEXABLOCKGUI.hxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentDelegate.cxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentDelegate.hxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentItem.cxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentItem.hxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentModel.cxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentModel.hxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentPanel.cxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentPanel.hxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentSelectionModel.cxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentSelectionModel.hxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_Exception.hxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_GraphicViewsHandler.hxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_Model.hxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_OCCSelector.h
  src/HEXABLOCKGUI/HEXABLOCKGUI_OccGraphicView.cxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_OccGraphicView.hxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_Resource.hxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_SalomeTools.hxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_Trace.hxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_VtkDocumentGraphicView.cxx
  src/HEXABLOCKGUI/HEXABLOCKGUI_VtkDocumentGraphicView.hxx
  src/HEXABLOCKGUI/Hexa_QTD.ui src/HEXABLOCKGUI/Law_QTD.ui
  src/HEXABLOCKGUI/MakeCylinders_QTD.ui
  src/HEXABLOCKGUI/MakeHemiSphere_QTD.ui
  src/HEXABLOCKGUI/MakePipes_QTD.ui
  src/HEXABLOCKGUI/MergeEdges_QTD.ui
  src/HEXABLOCKGUI/Merge_QTD.ui
  src/HEXABLOCKGUI/MyBasicGUI_PointDlg.cxx
  src/HEXABLOCKGUI/MyBasicGUI_PointDlg.hxx
  src/HEXABLOCKGUI/MyGEOMBase_Skeleton.hxx
  src/HEXABLOCKGUI/PrismQuad_QTD.ui
  src/HEXABLOCKGUI/Propagation_QTD.ui
  src/HEXABLOCKGUI/QuadAssoc_QTD.ui
  src/HEXABLOCKGUI/QuadRevolution_QTD.ui
  src/HEXABLOCKGUI/Quad_QTD.ui
  src/HEXABLOCKGUI/RemoveHexa_QTD.ui
  src/HEXABLOCKGUI/ReplaceHexa_QTD.ui
  src/HEXABLOCKGUI/Resource.hxx src/HEXABLOCKGUI/Symmetry_QTD.ui
  src/HEXABLOCKGUI/Transformation_QTD.ui
  src/HEXABLOCKGUI/Vector_QTD.ui src/HEXABLOCKGUI/Vertex_QTD.ui
  src/HEXABLOCKGUI/klinkitemselectionmodel.hxx
  src/HEXABLOCKGUI/kmodelindexproxymapper.hxx
  src/HEXABLOCKGUI/MyDlgRef/DlgRef_Skeleton_QTD.ui
  src/HEXABLOCKGUI/resources/HEXABLOCKCatalog.xml.in
  src/HEXABLOCKGUI/resources/SalomeApp.xml.in
  src/HEXABLOCK_SWIG/hexablock_swig.py
  src/HEXABLOCK_SWIG/hexablock_swig_wrap.cc
  src/TEST_CPP/test_hexa1.cxx
 Removed Files:
  Tag: V7_main
  src/HEXABLOCK/HexCrossElements.cxx
  src/HEXABLOCK/HexCrossElements_build.cxx
  src/HEXABLOCK/HexCylinder.cxx
  src/HEXABLOCK/HexDocument_del.cxx
  src/HEXABLOCK/HexElements_del.cxx src/HEXABLOCK/HexPipe.cxx

103 files changed:
HEXABLOCK_version.h.in
src/HEXABLOCK/Hex.hxx
src/HEXABLOCK/HexAnaQuads.hxx
src/HEXABLOCK/HexAssoEdge.hxx
src/HEXABLOCK/HexBiCylinder.hxx
src/HEXABLOCK/HexBiCylinderShape.hxx
src/HEXABLOCK/HexCloner.hxx
src/HEXABLOCK/HexCramer.hxx
src/HEXABLOCK/HexCrossElements.cxx [deleted file]
src/HEXABLOCK/HexCrossElements_build.cxx [deleted file]
src/HEXABLOCK/HexCylinder.cxx [deleted file]
src/HEXABLOCK/HexDocument.hxx
src/HEXABLOCK/HexDocument_Xml.cxx
src/HEXABLOCK/HexDocument_del.cxx [deleted file]
src/HEXABLOCK/HexDumpStudy.cxx
src/HEXABLOCK/HexDumpStudy.hxx
src/HEXABLOCK/HexEdge.hxx
src/HEXABLOCK/HexEdgeShape.hxx
src/HEXABLOCK/HexElements.hxx
src/HEXABLOCK/HexElements_del.cxx [deleted file]
src/HEXABLOCK/HexEltBase.hxx
src/HEXABLOCK/HexFaceShape.hxx
src/HEXABLOCK/HexGlobale.hxx
src/HEXABLOCK/HexGroup.hxx
src/HEXABLOCK/HexHexa.hxx
src/HEXABLOCK/HexKas_functions.hxx
src/HEXABLOCK/HexLaw.hxx
src/HEXABLOCK/HexMatrix.hxx
src/HEXABLOCK/HexNewShape.hxx
src/HEXABLOCK/HexPipe.cxx [deleted file]
src/HEXABLOCK/HexPropagation.hxx
src/HEXABLOCK/HexQuad.hxx
src/HEXABLOCK/HexShape.hxx
src/HEXABLOCK/HexSubShape.cxx
src/HEXABLOCK/HexSubShape.hxx
src/HEXABLOCK/HexVector.hxx
src/HEXABLOCK/HexVertex.hxx
src/HEXABLOCK/HexVertexShape.hxx
src/HEXABLOCK/HexWitness.hxx
src/HEXABLOCK/HexXmlTree.hxx
src/HEXABLOCK/HexXmlWriter.hxx
src/HEXABLOCK/Hex_defines.hxx
src/HEXABLOCK/hexa_base.hxx
src/HEXABLOCK/hexa_utils.cxx
src/HEXABLOCKGUI/AddShapeDialog_QTD.ui
src/HEXABLOCKGUI/CutEdge_QTD.ui
src/HEXABLOCKGUI/Disconnect_QTD.ui
src/HEXABLOCKGUI/EdgeAssoc_QTD.ui
src/HEXABLOCKGUI/Edge_QTD.ui
src/HEXABLOCKGUI/Group_QTD.ui
src/HEXABLOCKGUI/HEXABLOCKGUI.cxx
src/HEXABLOCKGUI/HEXABLOCKGUI.hxx
src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentDelegate.cxx
src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentDelegate.hxx
src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentItem.cxx
src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentItem.hxx
src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentModel.cxx
src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentModel.hxx
src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentPanel.cxx
src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentPanel.hxx
src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentSelectionModel.cxx
src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentSelectionModel.hxx
src/HEXABLOCKGUI/HEXABLOCKGUI_Exception.hxx
src/HEXABLOCKGUI/HEXABLOCKGUI_GraphicViewsHandler.hxx
src/HEXABLOCKGUI/HEXABLOCKGUI_Model.hxx
src/HEXABLOCKGUI/HEXABLOCKGUI_OCCSelector.h
src/HEXABLOCKGUI/HEXABLOCKGUI_OccGraphicView.cxx
src/HEXABLOCKGUI/HEXABLOCKGUI_OccGraphicView.hxx
src/HEXABLOCKGUI/HEXABLOCKGUI_Resource.hxx
src/HEXABLOCKGUI/HEXABLOCKGUI_SalomeTools.hxx
src/HEXABLOCKGUI/HEXABLOCKGUI_Trace.hxx
src/HEXABLOCKGUI/HEXABLOCKGUI_VtkDocumentGraphicView.cxx
src/HEXABLOCKGUI/HEXABLOCKGUI_VtkDocumentGraphicView.hxx
src/HEXABLOCKGUI/Hexa_QTD.ui
src/HEXABLOCKGUI/Law_QTD.ui
src/HEXABLOCKGUI/MakeCylinders_QTD.ui
src/HEXABLOCKGUI/MakeHemiSphere_QTD.ui
src/HEXABLOCKGUI/MakePipes_QTD.ui
src/HEXABLOCKGUI/MergeEdges_QTD.ui
src/HEXABLOCKGUI/Merge_QTD.ui
src/HEXABLOCKGUI/MyBasicGUI_PointDlg.cxx
src/HEXABLOCKGUI/MyBasicGUI_PointDlg.hxx
src/HEXABLOCKGUI/MyDlgRef/DlgRef_Skeleton_QTD.ui
src/HEXABLOCKGUI/MyGEOMBase_Skeleton.hxx
src/HEXABLOCKGUI/PrismQuad_QTD.ui
src/HEXABLOCKGUI/Propagation_QTD.ui
src/HEXABLOCKGUI/QuadAssoc_QTD.ui
src/HEXABLOCKGUI/QuadRevolution_QTD.ui
src/HEXABLOCKGUI/Quad_QTD.ui
src/HEXABLOCKGUI/RemoveHexa_QTD.ui
src/HEXABLOCKGUI/ReplaceHexa_QTD.ui
src/HEXABLOCKGUI/Resource.hxx
src/HEXABLOCKGUI/Symmetry_QTD.ui
src/HEXABLOCKGUI/Transformation_QTD.ui
src/HEXABLOCKGUI/Vector_QTD.ui
src/HEXABLOCKGUI/Vertex_QTD.ui
src/HEXABLOCKGUI/klinkitemselectionmodel.hxx
src/HEXABLOCKGUI/kmodelindexproxymapper.hxx
src/HEXABLOCKGUI/resources/HEXABLOCKCatalog.xml.in
src/HEXABLOCKGUI/resources/SalomeApp.xml.in
src/HEXABLOCK_SWIG/hexablock_swig.py
src/HEXABLOCK_SWIG/hexablock_swig_wrap.cc
src/TEST_CPP/test_hexa1.cxx

index 2fd948ba8ff18a2acb1f5af7af35fe384e94d1ac..b2dc846e854b4f71ef12c0f0db249423d98840e7 100755 (executable)
 #if !defined(__HEXABLOCK_VERSION_H__)
 #define __HEXABLOCK_VERSION_H__
 
-/*!
-  Specify version of SALOME HEXABLOCK module, as follows
-
-  HEXABLOCK_VERSION_MAJOR       : (integer) number identifying major version
-  HEXABLOCK_VERSION_MINOR       : (integer) number identifying minor version
-  HEXABLOCK_VERSION_MAINTENANCE : (integer) number identifying maintenance version
-  HEXABLOCK_VERSION_STR         : (string)  complete version number "major.minor.maintenance"
-  HEXABLOCK_VERSION             : (hex)     complete version number (major << 16) + (minor << 8) + maintenance
-  HEXABLOCK_DEVELOPMENT         : (integer) indicates development version when set to 1
+/*
+  HEXABLOCK_VERSION is (major << 16) + (minor << 8) + patch.
 */
 
-#define HEXABLOCK_VERSION_MAJOR       @SALOMEHEXABLOCK_MAJOR_VERSION@
-#define HEXABLOCK_VERSION_MINOR       @SALOMEHEXABLOCK_MINOR_VERSION@
-#define HEXABLOCK_VERSION_MAINTENANCE @SALOMEHEXABLOCK_PATCH_VERSION@
-#define HEXABLOCK_VERSION_STR         "@SALOMEHEXABLOCK_VERSION@"
-#define HEXABLOCK_VERSION             @SALOMEHEXABLOCK_XVERSION@
-#define HEXABLOCK_DEVELOPMENT         @SALOMEHEXABLOCK_VERSION_DEV@
+#define HEXABLOCK_VERSION_STR "@VERSION@"
+#define HEXABLOCK_VERSION     @XVERSION@
+#define HEXABLOCK_DEVELOPMENT @VERSION_DEV@
 
 #endif // __HEXABLOCK_VERSION_H__
index 7cdbc2aa0a13fd2d94cbe9cc502ed07d646febf3..7c727c172a683552145bad1a808bbbe673f4e6d5 100755 (executable)
@@ -24,8 +24,6 @@
 #ifndef __HEX_H
 #define __HEX_H
 
-#include "Hex_defines.hxx"
-
 #include "hexa_base.hxx"
 
 #if defined WIN32
 
 BEGIN_NAMESPACE_HEXA
 
-class Hex;
-HEXABLOCKENGINE_EXPORT Hex*  hex_instance ();
+HexaExport Hex*  hex_instance ();
 
-class HEXABLOCKENGINE_EXPORT Hex
+class HexaExport Hex
 {
 public:
    static Hex* getInstance ();
@@ -75,7 +72,7 @@ private:
 #endif    // not SWIG
 };
 
-HEXABLOCKENGINE_EXPORT void what ();
+HexaExport void what ();
 
 END_NAMESPACE_HEXA
 #endif
index 854afd7119559435dcd89f525ffc47be2f5861de..1751e1888c994d25476df7a40ac53a16489c4e9e 100755 (executable)
 #ifndef __ANA_QUADS_H
 #define __ANA_QUADS_H
 
-#include "Hex_defines.hxx"
 #include "HexQuad.hxx"
 // #include "HexEdge.hxx"
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT AnaQuads
+class HexaExport AnaQuads
 {
 public:
     AnaQuads (Quad* q1, Quad* q2, Quad* q3=NULL, Quad* q4=NULL, Quad* q5=NULL);
index e6813fd69e81a6a11eaccb6e148ebe00ccb21e41..7e9898e1be12ac3c498edfb8fd5751e19a01a101 100644 (file)
@@ -4,7 +4,6 @@
 #ifndef __ASSO_EDGE_H_
 #define __ASSO_EDGE_H_
 
-#include "Hex_defines.hxx"
 #include "HexEdgeShape.hxx"
 
 #include <TopTools_IndexedMapOfShape.hxx>
@@ -12,7 +11,7 @@
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT AssoEdge
+class HexaExport AssoEdge
 {
 public :
     AssoEdge (EdgeShape* shape, double deb, double fin);
index 3033bf794c7e46cb3c50ba18bbad6f2575b851cb..ba6d3699b284daec17b807a9736555196aa7a1a4 100755 (executable)
 #ifndef __BI_CYLINDER_H_
 #define __BI_CYLINDER_H_
 
-#include "Hex_defines.hxx"
-
 #include "HexElements.hxx"
 #include <map>
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT BiCylinder : public Elements
+class HexaExport BiCylinder : public Elements
 {
 public:
    BiCylinder (Document* doc);
index f8dcb4e192c6c2c32ab4b864ca89ba3dec5de42a..7309f45ac964fd8b2969149e5e99c7e7ff9c4050 100755 (executable)
 #ifndef __BI_CYLINDER_SHAPE_HXX_
 #define __BI_CYLINDER_SHAPE_HXX_
 
-#include "Hex_defines.hxx"
 #include "HexGlobale.hxx"
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT BiCylinderShape
+class HexaExport BiCylinderShape
 {
 public :
    BiCylinderShape (Document* doc);
index 1d32a429751d8a4d4cd8c165f8851f82ba7cde46..1f9390b8119271815c00ac5e92073a88347065e1 100755 (executable)
 #ifndef __CLONER_H
 #define __CLONER_H
 
-#include "Hex_defines.hxx"
 #include "hexa_base.hxx"
 
 #include <map>
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT Cloner 
+class HexaExport Cloner 
 {
 public:
     Cloner (Matrix* mat);
index 84d8cac12c9e8aefe874b52b24eae863fb28c031..0898f0ac886d26b8f5d8f0f535b8abea6ee56a0c 100755 (executable)
 #ifndef __CRAMER_H_
 #define __CRAMER_H_
 
-#include "Hex_defines.hxx"
 #include "hexa_base.hxx"
 // #include <cmath>
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT Cramer 
+class HexaExport Cramer 
 {
 public:
     Cramer (int size);
diff --git a/src/HEXABLOCK/HexCrossElements.cxx b/src/HEXABLOCK/HexCrossElements.cxx
deleted file mode 100755 (executable)
index 9fab3c2..0000000
+++ /dev/null
@@ -1,807 +0,0 @@
-
-// C++ : Gestion des cylindres croises
-
-// Copyright (C) 2009-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
-
-#include "HexCrossElements.hxx"
-
-#include "HexDocument.hxx"
-#include "HexVector.hxx"
-#include "HexVertex.hxx"
-#include "HexHexa.hxx"
-#include "HexEdge.hxx"
-
-#include "HexGlobale.hxx"
-#include "HexCylinder.hxx"
-#include "HexNewShape.hxx"
-
-#include <stdlib.h>
-
-static bool   db  = false;
-
-static const double UnSur2pi = DEMI/M_PI;
-
-BEGIN_NAMESPACE_HEXA
-
-// ====================================================== Constructeur
-CrossElements::CrossElements (Document* doc, EnumGrid type)
-             : Elements (doc)
-{
-   cross_cyl1   = NULL;
-   cross_cyl1   = NULL;
-   cross_cyl2   = NULL;
-   cross_center = NULL;
-   grid_type    = type;
-   angle_intermed = angle_inter [CylSmall] = angle_inter [CylBig] =  0;
-   at_right  = at_left = true;
-   is_filled = false;
-   grid_geom = NULL;
-}
-// ====================================================== resize
-void CrossElements::resize ()
-{
-   size_hx  = 2;
-   size_hy  = S_MAXI;
-   size_hz [CylSmall] = size_h1z;
-   size_hz [CylBig]   = size_h2z;
-
-   size_vx  = size_hx + 1;
-   size_vy  = size_hy;
-   size_vz[CylSmall] = size_v1z;
-   size_vz[CylBig]   = size_v2z;
-
-   nbr_vertex1 = size_vx*size_vy* size_v1z;
-   nbr_quads1  = nbr_vertex1*DIM3;
-   nbr_edges1  = nbr_quads1;
-   nbr_hexas1  = size_hx * size_hy * size_h1z;
-
-   nbr_vertex  = nbr_vertex1 + size_vx * size_vy * size_v1z;
-   nbr_quads   = nbr_vertex*DIM3;
-   nbr_edges   = nbr_quads;
-   nbr_hexas   = nbr_hexas1 + size_hx * size_hy * size_h2z;
-
-   tab_hexa  .resize (nbr_hexas*2);
-   tab_quad  .resize (nbr_quads*2);
-   tab_edge  .resize (nbr_edges*2);
-   tab_vertex.resize (nbr_vertex*2);
-
-   for (int nc=0 ; nc< nbr_hexas  ; nc++) tab_hexa   [nc] = NULL;
-   for (int nc=0 ; nc< nbr_quads  ; nc++) tab_quad   [nc] = NULL;
-   for (int nc=0 ; nc< nbr_edges  ; nc++) tab_edge   [nc] = NULL;
-   for (int nc=0 ; nc< nbr_vertex ; nc++) tab_vertex [nc] = NULL;
-}
-// ====================================================== indHexa
-int CrossElements::indHexa (int cyl, int nx, int ny, int nz)
-{
-   if (cyl<0 || cyl>1)
-       return NOTHING;
-   if (   nx < 0 || nx >= size_hx || ny < 0 || ny >= size_hy
-       || nz < 0 || nz >= size_hz[cyl]) return NOTHING;
-
-   int nro = cyl*nbr_hexas1 + nx + size_hx*ny + size_hx*size_hy*nz;
-   return nro;
-}
-// ====================================================== indQuad
-int CrossElements::indQuad (int cyl, int dd, int nx, int ny, int nz)
-{
-   if (cyl<0 || cyl>1 || dd <0 || dd >= DIM3)
-       return NOTHING;
-   if (   nx < 0 || nx >= size_vx || ny < 0 || ny >= size_vy
-       || nz < 0 || nz >= size_vz[cyl]) return NOTHING;
-
-   int nro = cyl*nbr_quads1 + nx + size_vx*ny + size_vx*size_vy*nz
-                                 + size_vx*size_vy*size_vz[cyl]*dd;
-   return nro;
-}
-// ====================================================== indEdge
-int CrossElements::indEdge (int cyl, int dd, int nx, int ny, int nz)
-{
-   return indQuad (cyl, dd, nx, ny, nz);
-}
-// ====================================================== indVertex
-int CrossElements::indVertex (int cyl, int nx, int ny, int nz)
-{
-   if (cyl<0 || cyl>1)
-      return NOTHING;
-   if (   nx < 0 || nx >= size_vx || ny < 0 || ny >= size_vy
-       || nz < 0 || nz >= size_vz[cyl])
-      return NOTHING;
-
-   int nro = cyl*nbr_vertex1 + nx + size_vx*ny + size_vx*size_vy*nz;
-   return nro;
-}
-// ------------------------------------------------------------------------
-// ====================================================== getHexaIJK
-Hexa* CrossElements::getHexaIJK (int cyl, int nx, int ny, int nz)
-{
-   int nro = indHexa (cyl, nx, ny, nz);
-
-   if (nro >= 0 && tab_hexa[nro]!= NULL &&  tab_hexa[nro]->isHere ())
-      return tab_hexa [nro];
-   else
-      return NULL;
-}
-// ====================================================== getQuadIJ
-Quad* CrossElements::getQuadIJ (int cyl, int nx, int ny, int nz)
-{
-   int nro = indQuad (cyl, dir_z, nx, ny, nz);
-   if (nro<0)
-      return NULL;
-
-   return tab_quad [nro];
-}
-// ====================================================== getQuadJK
-Quad* CrossElements::getQuadJK (int cyl, int nx, int ny, int nz)
-{
-   int nro = indQuad (cyl, dir_x, nx, ny, nz);
-   if (nro<0)
-      return NULL;
-   return tab_quad [nro];
-}
-// ====================================================== getQuadIK
-Quad* CrossElements::getQuadIK (int cyl, int nx, int ny, int nz)
-{
-   int nro = indQuad (cyl, dir_y, nx, ny, nz);
-   if (nro<0)
-      return NULL;
-   return tab_quad [nro];
-}
-// ====================================================== getEdgeI
-Edge* CrossElements::getEdgeI (int cyl, int nx, int ny, int nz)
-{
-   int nro = indEdge (cyl, dir_x, nx, ny, nz);
-   if (nro<0)
-      return NULL;
-   return tab_edge [nro];
-}
-// ====================================================== getEdgeJ
-Edge* CrossElements::getEdgeJ (int cyl, int nx, int ny, int nz)
-{
-   int nro = indEdge (cyl, dir_y, nx, ny, nz);
-   if (nro<0)
-      return NULL;
-   return tab_edge [nro];
-}
-// ====================================================== getEdgeK
-Edge* CrossElements::getEdgeK (int cyl, int nx, int ny, int nz)
-{
-   int nro = indEdge (cyl, dir_z, nx, ny, nz);
-   if (nro<0)
-      return NULL;
-   return tab_edge [nro];
-}
-// ====================================================== getVertexIJK
-Vertex* CrossElements::getVertexIJK (int cyl, int nx, int ny, int nz)
-{
-   int nro = indVertex (cyl, nx, ny, nz);
-   if (nro<0)
-      return NULL;
-   return tab_vertex [nro];
-}
-// ------------------------------------------------------------------------
-// ====================================================== setHexa
-void CrossElements::setHexa (Hexa* elt, int cyl, int nx, int ny, int nz)
-{
-   if (db)
-      {
-      printf ("tab_hexa [%d, %d,%d,%d] = ", cyl, nx, ny, nz);
-      PrintName (elt);
-      printf ("\n");
-      }
-
-   int nro = indHexa (cyl, nx, ny, nz);
-   if (nro<0)
-      return;
-   tab_hexa [nro] = elt;
-}
-// ====================================================== setQuad
-void CrossElements::setQuad (Quad* elt, int cyl, int dd, int nx, int ny, int nz)
-{
-   if (db)
-      {
-      printf ("tab_quad [%d,%d, %d,%d,%d] = ", cyl, dd, nx, ny, nz);
-      PrintName (elt);
-      printf ("\n");
-      }
-
-   int nro = indQuad (cyl, dd, nx, ny, nz);
-   if (nro<0)
-      return;
-   tab_quad [nro] = elt;
-}
-// ====================================================== setEdge
-void CrossElements::setEdge (Edge* elt, int cyl, int dd, int nx, int ny, int nz)
-{
-   if (db)
-      {
-      printf ("tab_edge [%d,%d, %d,%d,%d] = ", cyl, dd, nx, ny, nz);
-      PrintName (elt);
-      printf ("\n");
-      }
-
-   int nro = indEdge (cyl, dd, nx, ny, nz);
-   if (nro<0)
-      return;
-   tab_edge [nro] = elt;
-}
-// ====================================================== setVertex
-void CrossElements::setVertex (Vertex* elt, int cyl, int nx, int ny, int nz)
-{
-   if (db)
-      {
-      printf ("tab_vertex [%d, %d,%d,%d] = ", cyl, nx, ny, nz);
-      PrintName (elt);
-      printf ("\n");
-      }
-
-   int nro = indVertex (cyl, nx, ny, nz);
-   if (nro<0)
-      return;
-   tab_vertex [nro] = elt;
-}
-// ====================================================== setVertex (2)
-inline bool isequals (double v1, double v2)
-{
-   const double eps    = 0.01;
-   bool         equals = v1 <= v2 + eps && v1 >= v2 - eps;
-   return equals;
-}
-// ====================================================== setVertex (2)
-void CrossElements::setVertex (int cyl, int nx, int ny, int nz, double px,
-                                                     double py, double pz)
-{
-   if (isequals (px, 0) && isequals (py, -1.5)  && isequals (pz, 5))
-      printf (" Vertex trouve : Cyl%d [%d,%d,%d] = (%g,%g,%g)\n",
-                                          cyl, nx,ny,nz, px,py,pz);
-
-   int nro = indVertex (cyl, nx, ny, nz);
-   if (nro<0)
-      return;
-   else if (tab_vertex[nro] != NULL)
-      {
-      Vertex* node = tab_vertex[nro];
-      if (node->definedBy (px, py, pz))
-         return;
-
-      printf (" ************ ATTENTION ****************\n");
-      printf (" Creation d'un vertex : Cyl%d [%d,%d,%d] = (%g,%g,%g)\n",
-                                          cyl, nx,ny,nz, px,py,pz);
-      printf (" Indice %d deja occupe par le vertex (%g,%g,%g)\n", nro,
-              node->getX(), node->getY(), node->getZ());
-
-      return;
-      }
-
-   int trouve = findVertex (px, py, pz);
-   if (trouve>=0)
-      {
-      printf (" Creation d'un vertex : Cyl%d [%d,%d,%d] = (%g,%g,%g)\n",
-                                          cyl, nx,ny,nz, px,py,pz);
-      printf (" Vertex %d present a l'indice %d\n", nro, trouve);
-      tab_vertex [nro] = tab_vertex [trouve];
-      return;
-      }
-   Vertex*    node = el_root->addVertex (px, py, pz);
-   setVertex (node, cyl, nx, ny, nz);
-}
-// ====================================================== copyEdge
-void CrossElements::copyEdge (int d1, int i1, int j1, int k1, int d2, int i2,
-                                      int j2, int k2)
-{
-   Edge* edge = NULL;
-   switch (d1)
-          {
-          case dir_x : edge = getEdgeI (CylSmall, i1, j1, k1);
-                       break;
-          case dir_y : edge = getEdgeJ (CylSmall, i1, j1, k1);
-                       break;
-          case dir_z : edge = getEdgeK (CylSmall, i1, j1, k1);
-                       break;
-          }
-
-   setEdge (edge, CylBig, d2, i2, j2, k2);
-}
-// ====================================================== copyQuad
-void CrossElements::copyQuad (int d1, int i1, int j1, int k1, int d2, int i2,
-                                              int j2, int k2)
-{
-   Quad* quad = NULL;
-   switch (d1)
-          {
-          case dir_x : quad = getQuadJK (CylSmall, i1, j1, k1);
-                       break;
-          case dir_y : quad = getQuadIK (CylSmall, i1, j1, k1);
-                       break;
-          case dir_z : quad = getQuadIJ (CylSmall, i1, j1, k1);
-                       break;
-          }
-
-   setQuad (quad, CylBig, d2, i2, j2, k2);
-}
-// ====================================================== addEdge
-Edge* CrossElements::addEdge (Vertex* v1, Vertex* v2, int cyl, int dir,
-                             int nx, int ny, int nz)
-{
-   Edge* edge = NULL;
-   if (v1==NULL || v2==NULL)
-      return NULL;
-
-   else if (cyl==CylBig)
-      {
-      edge = findEdge1 (v1, v2);
-      /* ************************************************
-      if (edge != NULL)
-         {
-         printf (" Edge (%d, %d,%d,%d) trouve = ", dir, nx, ny, nz);
-         edge->printName ("\n");
-         }
-         ************************************************ */
-      }
-
-   if (edge == NULL)
-      edge = newEdge (v1, v2);
-
-   setEdge (edge, cyl, dir, nx, ny, nz);
-   return edge;
-}
-// ====================================================== addHexa
-Hexa* CrossElements::addHexa (Quad* q1, Quad* q2, Quad* q3, Quad* q4, Quad* q5,
-                            Quad* q6, int cyl, int nx, int ny, int nz)
-{
-/* **************************
-   if (cyl==CylSmall)
-      {
-      if (nx == 0)  return NULL;
-      if (nz != 1)  return NULL;
-      if (ny != 4)  return NULL;
-      return NULL;
-      }
-
-   if (cyl==CylBig)
-      {
-      if (nz >  2)  return NULL;
-      if (nz <  1)  return NULL;
-      // if (nx == 0)  return NULL;
-      // if (ny != 4)  return NULL;
-      }
-   ************************** */
-
-   Hexa* hexa = NULL;
-   if (cyl==CylBig)
-      hexa = findHexa1 (q1, q2);
-
-   if (hexa == NULL)
-       hexa = newHexa (q1, q2, q3, q4, q5, q6);
-   else if (db)
-      {
-      printf (" Hexa (%d,%d,%d) trouve = ", nx, ny, nz);
-      hexa->printName ("\n");
-      }
-
-   setHexa (hexa, cyl, nx, ny, nz);
-   return   hexa;
-}
-// ====================================================== addQuad
-Quad* CrossElements::addQuad (Edge* e1, Edge* e2, Edge* e3, Edge* e4, int cyl,
-                             int dir, int nx, int ny, int nz)
-{
-   Quad* quad = NULL;
-   if (cyl==CylBig)
-      quad = findQuad1 (e1, e3);
-
-   if (quad == NULL)
-       quad = newQuad (e1, e2, e3, e4);
-   else if (db)
-      {
-      printf (" Quad (%d, %d,%d,%d) trouve = ", dir, nx, ny, nz);
-      quad->printName ("\n");
-      }
-
-   setQuad (quad, cyl, dir, nx, ny, nz);
-   return quad;
-}
-// ====================================================== findEdge1
-Edge* CrossElements::findEdge1 (Vertex* v1, Vertex* v2)
-{
-   for (int nc=0; nc < nbr_edges1 ; nc++)
-       if (tab_edge[nc] != NULL && tab_edge[nc]->definedBy (v1, v2))
-          return tab_edge[nc];
-
-   return NULL;
-}
-// ====================================================== findHexa1
-Hexa* CrossElements::findHexa1 (Quad* e1, Quad* e2)
-{
-   for (int nc=0; nc < nbr_hexas1 ; nc++)
-       if (tab_hexa[nc] != NULL && tab_hexa[nc]->definedBy (e1, e2))
-          return tab_hexa[nc];
-
-   return NULL;
-}
-// ====================================================== findQuad1
-Quad* CrossElements::findQuad1 (Edge* e1, Edge* e2)
-{
-   for (int nc=0; nc < nbr_quads1 ; nc++)
-       if (tab_quad[nc] != NULL && tab_quad[nc]->definedBy (e1, e2))
-          return tab_quad[nc];
-
-   return NULL;
-}
-// ====================================================== fillGrid
-void CrossElements::fillGrid (int cyl, int deb, int fin)
-{
-   int nz0 = deb >= 0 ? deb : 0;
-   int nzn = fin >  0 ? fin : size_vz [cyl];
-
-   fillCenter (cyl, nz0, nzn);
-
-   for (int nz=nz0 ; nz<nzn ; nz++)
-       {
-       for (int nx=1 ; nx<size_hx ; nx++)
-           {
-                                 //   Edges horizontaux radiaux
-                                 //   Edges horizontaux // cloisons ext
-           for (int ny=0 ; ny<size_vy ; ny++)
-               {
-               int ny1  = (ny + 1) MODULO size_vy;
-               Vertex* vc = getVertexIJK (cyl, nx,   ny, nz);
-               Vertex* v1 = getVertexIJK (cyl, nx+1, ny, nz);
-               Vertex* v2 = getVertexIJK (cyl, nx+1, ny1,nz);
-
-               addEdge (vc, v1, cyl, dir_x, nx,   ny, nz);
-               addEdge (v1, v2, cyl, dir_y, nx+1, ny, nz);
-               }
-                                 //   Quads horizontaux
-           for (int ny=0 ; ny<size_vy ; ny++)
-               {
-               int ny1  = (ny + 1) MODULO size_vy;
-               Edge* e1 = getEdgeI (cyl, nx,   ny,  nz);
-               Edge* e2 = getEdgeJ (cyl, nx+1, ny,  nz);
-               Edge* e3 = getEdgeI (cyl, nx,   ny1, nz);
-               Edge* e4 = getEdgeJ (cyl, nx,   ny,  nz);
-
-               addQuad (e1, e2, e3, e4, cyl, dir_z, nx, ny, nz);
-               }
-
-           if (nz>0)
-              {
-                                 //   Edges verticaux + cloisons interieures
-              for (int ny=0 ; ny<size_vy ; ny++)
-                  {
-                  Vertex* vp = getVertexIJK (cyl, nx+1, ny, nz-1);
-                  Vertex* vv = getVertexIJK (cyl, nx+1, ny, nz);
-
-                  Edge* edge = addEdge (vp, vv, cyl, dir_z, nx+1, ny, nz-1);
-
-                  Edge* e0 = getEdgeI (cyl, nx, ny,  nz-1);
-                  Edge* e2 = getEdgeI (cyl, nx, ny,  nz);
-                  Edge* e3 = getEdgeK (cyl, nx, ny,  nz-1);
-
-                  addQuad (e0, edge, e2, e3, cyl, dir_y, nx, ny, nz-1);
-                  }
-                                 //   Cloisons exterieures ***
-              for (int ny=0 ; ny<size_vy ; ny++)
-                  {
-                  int ny1  = (ny + 1) MODULO size_vy;
-                  Edge* e0 = getEdgeJ (cyl, nx+1, ny,  nz-1);
-                  Edge* e2 = getEdgeJ (cyl, nx+1, ny,  nz);
-
-                  Edge* e1 = getEdgeK (cyl, nx+1, ny,  nz-1);
-                  Edge* e3 = getEdgeK (cyl, nx+1, ny1, nz-1);
-                  addQuad (e0, e1, e2, e3, cyl, dir_x, nx+1, ny, nz-1);
-                  }
-                                 //   Hexas (8)
-              if (is_filled || cyl==CylBig || (nz!=3 && nz != 4))
-                  {
-                  for (int ny=0 ; ny<size_hy ; ny++)
-                      {
-                      int ny1  = (ny + 1) MODULO size_vy;
-                      // printf (" ---------- Hexa : nz=%d, ny=%d\n", ny, nz);
-                      Quad* qa = getQuadIJ (cyl, nx, ny, nz-1);
-                      Quad* qb = getQuadIJ (cyl, nx, ny, nz);
-
-                      Quad* qc = getQuadJK (cyl, nx+1, ny,  nz-1);
-                      Quad* qd = getQuadJK (cyl, nx,   ny,  nz-1);
-
-                      Quad* qe = getQuadIK (cyl, nx,   ny1, nz-1);
-                      Quad* qf = getQuadIK (cyl, nx,   ny,  nz-1);
-
-                      // Hexa* cell = newHexa (qa, qb, qc, qd, qe, qf);
-                      // setHexa (cell, cyl, nx, ny, nz-1);
-                      addHexa (qa, qb, qc, qd, qe, qf, cyl, nx, ny, nz-1);
-                      }
-                  }
-              }
-          }
-       }
-}
-// ====================================================== fillCenter
-void CrossElements::fillCenter (int cyl, int nz0, int nzn)
-{
-   int nx = 0;
-
-   for (int nz=nz0 ; nz<nzn ; nz++)
-       {
-       Vertex* center = getVertexIJK (cyl, 0, 0, nz);
-                                 //   Edges horizontaux // cloisons ext
-           for (int ny=0 ; ny<size_vy ; ny++)
-               {
-               Vertex* v1 = getVertexIJK (cyl, 1, ny, nz);
-               Vertex* v2 = getVertexIJK (cyl, 1, (ny+1) MODULO size_vy, nz);
-               addEdge (v1, v2, cyl, dir_y, nx+1, ny, nz);
-               }
-       if (is_filled)
-          {
-                                 //   Edges horizontaux radiaux
-           for (int nc=0 ; nc<NbrIntCotes ; nc++)
-               {
-               Vertex* vv = getVertexIJK (cyl, 1, 2*nc, nz);
-               addEdge (center, vv, cyl, dir_x, nx, nc, nz);
-               }
-                                 //   Quads horizontaux
-           for (int nc=0; nc<NbrIntCotes ; nc++)
-               {
-               int nc1  = (nc + 1) MODULO NbrIntCotes;
-               Edge* e1 = getEdgeI (cyl, nx, nc,    nz);
-               Edge* e2 = getEdgeJ (cyl, nx+1, 2*nc,  nz);
-               Edge* e3 = getEdgeJ (cyl, nx+1, 2*nc+1, nz);
-               Edge* e4 = getEdgeI (cyl, nx, nc1,    nz);
-
-               addQuad (e1, e2, e3, e4, cyl, dir_z, nx, nc, nz);
-               }
-          }
-
-       if (nz>0)
-          {
-                                 //   Edges verticaux + cloisons interieures
-          Vertex* vhaut  = getVertexIJK (cyl,nx,0, nz-1);
-          Edge*   pilier = addEdge (center, vhaut, cyl, dir_z, nx, 0, nz-1);
-
-          for (int ny=0 ; ny<size_vy ; ny++)
-              {
-              Vertex* vp = getVertexIJK (cyl, 1, ny, nz-1);
-              Vertex* vv = getVertexIJK (cyl, 1, ny, nz);
-              Edge* edge = addEdge (vp, vv, cyl, dir_z, 1, ny, nz-1);
-              if (is_filled && (ny MODULO 2) == 0)
-                 {
-                 Edge* e0 = getEdgeI (cyl, nx, ny/2,  nz-1);
-                 Edge* e2 = getEdgeI (cyl, nx, ny/2,  nz);
-                 addQuad (e0,edge, e2,pilier, cyl, dir_y, nx, ny/2, nz-1);
-                 }
-              }
-                                 //   Cloisons exterieures
-          for (int ny=0 ; ny<size_vy ; ny++)
-              {
-              int ny1  = (ny + 1) MODULO size_vy;
-              Edge* e0 = getEdgeJ (cyl, 1, ny,  nz-1);
-              Edge* e2 = getEdgeJ (cyl, 1, ny,  nz);
-              Edge* e1 = getEdgeK (cyl, 1, ny,  nz-1);
-              Edge* e3 = getEdgeK (cyl, 1, ny1, nz-1);
-
-              addQuad (e0, e1, e2, e3, cyl, dir_x, 1, ny, nz-1);
-              }
-                                 //   Hexas (4)
-          if (is_filled)
-             {
-             for (int nc=0 ; nc < NbrIntCotes ; nc++)
-                 {
-                  // printf (" --------------- Hexa : nz=%d, nc=%d\n", nc, nz);
-                 int nc1  = (nc + 1) MODULO NbrIntCotes;
-                 Quad* qa = getQuadIJ (cyl, 0, nc, nz-1);
-                 Quad* qb = getQuadIJ (cyl, 0, nc, nz);
-
-                 Quad* qc = getQuadJK (cyl, 1, 2*nc,   nz-1);
-                 Quad* qe = getQuadJK (cyl, 1, 2*nc+1, nz-1);
-
-                 Quad* qd = getQuadIK (cyl, 0, nc1, nz-1);
-                 Quad* qf = getQuadIK (cyl, 0, nc,  nz-1);
-
-                  // Hexa* cell = newHexa (qa, qb, qc, qd, qe, qf);
-                  // setHexa (cell, cyl, 0, nc, nz-1);
-                 addHexa (qa, qb, qc, qd, qe, qf, cyl, nx, nc, nz-1);
-                 }
-              }
-          }
-       }
-}
-// ====================================================== dump
-void CrossElements::dump ()
-{
-   int sizey [2] = { 4, S_MAXI };
-   for (int cyl=CylSmall ; cyl<=CylBig ; cyl++)
-       {
-       printf (" +++++++++ \n");
-       printf (" +++++++++ Hexas du Cylindre nro %d\n", cyl);
-       printf (" +++++++++ \n");
-       for (int nz=0; nz<size_hz[cyl]; nz++)
-           {
-           for (int nx=0; nx<size_hx; nx++)
-               {
-               printf ("\n");
-               for (int ny=0; ny<sizey[nx]; ny++)
-                   {
-                   Hexa* cell = getHexaIJK (cyl,nx,ny,nz);
-                   int nro = indHexa (cyl, nx, ny, nz);
-                   printf ("tab_hexa[%03d] (%d, %d,%d,%d) = ",
-                           nro, cyl,nx,ny,nz);
-                   if (cell!=NULL) cell->printName("\n");
-                      else         printf ("NULL\n");
-                   }
-               }
-           }
-       }
-}
-// ====================================================== dumpVertex
-void CrossElements::dumpVertex ()
-{
-   int sizey [3] = { 1, S_MAXI, S_MAXI };
-
-   for (int cyl=CylSmall ; cyl<=CylBig ; cyl++)
-       {
-       printf (" +++++++++ \n");
-       printf (" +++++++++ Vertex du Cylindre nro %d\n", cyl);
-       printf (" +++++++++ \n");
-       for (int nz=0; nz<size_vz[cyl]; nz++)
-           {
-           for (int nx=0; nx<size_vx; nx++)
-               {
-               printf ("\n");
-               for (int ny=0; ny<sizey[nx]; ny++)
-                   {
-                   Vertex* node = getVertexIJK (cyl,nx,ny,nz);
-                   int nro = indVertex (cyl, nx, ny, nz);
-                   printf ("tab_vertex[%03d] (%d, %d,%d,%d) = ",
-                           nro, cyl,nx,ny,nz);
-                   if (node!=NULL) node->printName("\n");
-                      else         printf ("NULL\n");
-                   }
-               }
-           }
-       }
-}
-// ====================================================== dumpHexas
-void CrossElements::dumpHexas ()
-{
-   int sizey [3] = { 1, 4, S_MAXI };
-
-   for (int cyl=CylSmall ; cyl<=CylBig ; cyl++)
-       {
-       printf (" +++++++++ \n");
-       printf (" +++++++++ Hexaedres du Cylindre nro %d\n", cyl);
-       printf (" +++++++++ \n");
-       for (int nz=0; nz<size_hz[cyl]; nz++)
-           {
-           for (int nx=0; nx<size_hx; nx++)
-               {
-               printf ("\n");
-               for (int ny=0; ny<sizey[nx]; ny++)
-                   {
-                   Hexa* elt = getHexaIJK (cyl,nx,ny,nz);
-                   if (elt!=NULL)
-                      {
-                      int nro = indHexa (cyl, nx, ny, nz);
-                      printf ("tab_hexa[%03d] (%d, %d,%d,%d) = ",
-                              nro, cyl,nx,ny,nz);
-                      elt->printName("\n");
-                      }
-                   }
-               }
-           }
-       }
-}
-// ====================================================== calcul_centre
-double calcul_centre (Vertex* orig, Vertex* inter)
-{
-   double dx = inter->getX () - orig->getX ();
-   double dy = inter->getY () - orig->getY ();
-   double dz = inter->getZ () - orig->getZ ();
-   double dd = sqrt (dx*dx + dy*dy + dz*dz);
-   return dd;
-}
-// ===================================================== assoSlice
-void CrossElements::assoSlice (int cyl, double* base, double* normal, int nx,
-                                                                      int nzs)
-{
-   Real3  center, pnt1, pnt2;
-   // string brep;
-
-   Vertex* v_n  = getVertexIJK (cyl, nx, S_N , nzs);
-   Vertex* v_s  = getVertexIJK (cyl, nx, S_S , nzs);
-
-   v_s->getPoint (pnt1);
-   v_n->getPoint (pnt2);
-
-   double rayon  = calc_distance (pnt1, pnt2)/2;
-   for (int nro=0 ; nro<DIM3 ; nro++)
-       center[nro] = (pnt1[nro] + pnt2[nro])/2;
-
-   int subid = grid_geom->addCircle (center, rayon, normal, base);
-
-   for (int ny=0 ; ny<S_MAXI ; ny++)
-       {
-       assoArc (cyl, nx, ny, nzs, subid);
-       }
-}
-// ===================================================== assoArc
-void CrossElements::assoArc (int cyl, int nx, int ny, int nz, int subid)
-{
-    double angle1 = getAngle (cyl, ny,   nz);
-    double angle2 = getAngle (cyl, ny+1, nz);
-    Edge*  edge   = getEdgeJ (cyl, nx, ny, nz);
-    if (edge==NULL)
-       return;
-
-    grid_geom->addAssociation (edge, subid, angle1*UnSur2pi, angle2*UnSur2pi);
-
-    // Assurer avec les vertex
-    int     ny2   = ny>=S_MAXI-1 ? 0 : ny+1;
-    Vertex* node1 = getVertexIJK (cyl, nx, ny,  nz);
-    Vertex* node2 = getVertexIJK (cyl, nx, ny2, nz);
-
-    grid_geom->addAssociation (node1, subid, angle1*UnSur2pi);
-    grid_geom->addAssociation (node2, subid, angle2*UnSur2pi);
-}
-// ====================================================== getAngleInter
-// ==== Angle intersection intermediaire
-double CrossElements::getAngleInter (int cyl, int nz)
-{
-   if (cyl==CylBig && (nz==1 || nz==3))
-      return angle_intermed;
-   else
-      return angle_inter[cyl];
-}
-// ====================================================== getAngle
-double CrossElements::getAngle (int cyl, int nj, int nz)
-{
-   switch (nj)
-      {
-      case S_E    : return 0;
-      case S_NE   : return angle_inter[cyl];
-      case S_N    : return M_PI/2;
-      case S_NW   : return M_PI - angle_inter[cyl];
-      case S_W    : return M_PI;
-      case S_SW   : return M_PI + angle_inter[cyl];
-      case S_S    : return 3*M_PI/2;
-      case S_SE   : return 2*M_PI - angle_inter[cyl];
-      case S_MAXI : return 2*M_PI;
-      default     : break;
-      }
-   return 0;
-}
-// ====================================================== addVertex
-void CrossElements::addVertex (int cyl, int ni, int nj, int nk, double px,
-                               double rayon)
-{
-   if (rayon<0.0)
-       rayon = cross_rayon [cyl][ni];
-   double theta = getAngle (cyl, nj);
-
-   if (cyl==CylSmall)
-       setVertex (cyl, ni, nj, nk,  px, rayon*cos(theta), rayon*sin(theta));
-   else
-       setVertex (cyl, ni, nj, nk,  rayon*cos(theta), rayon*sin(theta), px);
-}
-// ====================================================== addSlice
-void CrossElements::addSlice (int cyl, int ni, int nk, double px, double rayon)
-{
-   for (int nj=0 ; nj < S_MAXI ; nj++)
-       addVertex (cyl, ni, nj, nk, px, rayon);
-}
-END_NAMESPACE_HEXA
diff --git a/src/HEXABLOCK/HexCrossElements_build.cxx b/src/HEXABLOCK/HexCrossElements_build.cxx
deleted file mode 100755 (executable)
index 6b4fda5..0000000
+++ /dev/null
@@ -1,635 +0,0 @@
-
-// C++ : Gestion des cylindres croises : construction
-
-// Copyright (C) 2009-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
-//
-
-#include "HexCrossElements.hxx"
-
-#include "HexDocument.hxx"
-#include "HexVector.hxx"
-#include "HexVertex.hxx"
-#include "HexHexa.hxx"
-#include "HexEdge.hxx"
-
-#include "HexGlobale.hxx"
-#include "HexCylinder.hxx"
-#include "HexNewShape.hxx"
-#include "HexBiCylinderShape.hxx"
-#include "HexAssoEdge.hxx"
-#include "HexEdgeShape.hxx"
-
-static bool   db  = false;
-
-BEGIN_NAMESPACE_HEXA
-
-static const int    MaxLevel    = 7;
-static const double epaiss2 = 0.5;
-static const double UnSur2pi = DEMI/M_PI;
-
-double calcul_centre (Vertex* orig, Vertex* inter);
-
-// ====================================================== createBigCyl
-void CrossElements::createBigCyl ()
-{
-   const int iv0   = 0;
-   const int kv_mil = cyl_left != NO_PIPE ? 2 : 3 ;
-
-   enum { k0, k1, k2, k3, k4 };
-   double z0,     z2,     z4;
-
-   z0 = big_hauteur[0] = - calcul_centre (cross_cyl2->getBase(), cross_center);
-   z4 = big_hauteur[4] = z0 + cross_cyl2->getHeight ();
-
-        big_hauteur[1] = getVertexIJK (CylSmall, NxExt, S_SE, kv_mil)->getZ();
-   z2 = big_hauteur[2] = getVertexIJK (CylSmall, NxExt, S_E,  kv_mil)->getZ();
-        big_hauteur[3] = getVertexIJK (CylSmall, NxExt, S_NE, kv_mil)->getZ();
-
-   setVertex (CylBig, iv0, 0, k0,    0, 0, z0);
-   addSlice  (CylBig, NxInt, k0, z0);
-   addSlice  (CylBig, NxExt, k0, z0);
-
-   setVertex (CylBig, iv0, 0, k4,    0, 0, z4);
-   addSlice  (CylBig, NxInt, k4, z4);
-   addSlice  (CylBig, NxExt, k4, z4);
-
-   //------------------------------- Points intermediaires :
-
-   double xe1 = getVertexIJK (CylBig, NxExt, S_N, k0)->getX();
-   double ye1 = getVertexIJK (CylBig, NxExt, S_N, k0)->getY();
-
-   double xe2 = getVertexIJK (CylBig, NxExt, S_S, k0)->getX();
-   double ye2 = getVertexIJK (CylBig, NxExt, S_S, k0)->getY();
-
-   double xi1 = getVertexIJK (CylBig, NxInt, S_N, k0)->getX();
-   double yi1 = getVertexIJK (CylBig, NxInt, S_N, k0)->getY();
-
-   double xi2 = getVertexIJK (CylBig, NxInt, S_S, k0)->getX();
-   double yi2 = getVertexIJK (CylBig, NxInt, S_S, k0)->getY();
-
-   //------------------------------- Reprise des vertex du cylindre 1
-
-   //------------------------------- Centre
-   if (grid_type != GR_BIPIPE)
-       copyVertex (NxExt, S_S,  3, iv0,   0,    k1);
-
-   //------------------------------- Creation Vertex Nord-Sud
-   for (int nk=k1 ; nk<k4 ; nk++)
-       {
-       setVertex  (CylBig, NxExt, S_N, nk,   xe1, ye1, big_hauteur[nk]);
-       setVertex  (CylBig, NxExt, S_S, nk,   xe2, ye2, big_hauteur[nk]);
-       setVertex  (CylBig, NxInt, S_N, nk,   xi1, yi1, big_hauteur[nk]);
-       setVertex  (CylBig, NxInt, S_S, nk,   xi2, yi2, big_hauteur[nk]);
-       }
-
-   //------------------------------- Face k1 externe :
-
-   copyVertex (NxExt, S_S,  5,   NxExt, S_E,  k1);
-   copyVertex (NxExt, S_SE, 5,   NxExt, S_NE, k1);
-   copyVertex (NxExt, S_SW, 5,   NxExt, S_SE, k1);
-
-   copyVertex (NxExt, S_S,  1,   NxExt, S_W,  k1);
-   copyVertex (NxExt, S_SE, 1,   NxExt, S_NW, k1);
-   copyVertex (NxExt, S_SW, 1,   NxExt, S_SW, k1);
-
-   //------------------------------- Face k1 interne :
-
-   copyVertex (NxExt, S_S,  2,   NxInt, S_W,  k1);
-   copyVertex (NxExt, S_SE, 2,   NxInt, S_NW, k1);
-   copyVertex (NxExt, S_SW, 2,   NxInt, S_SW, k1);
-
-   copyVertex (NxExt, S_SE, 3,   NxInt, S_N,  k1);  // 16/02/2012
-   copyVertex (NxExt, S_SW, 3,   NxInt, S_S,  k1);  // 16/02/2012
-
-   copyVertex (NxExt, S_S,  4,   NxInt, S_E,  k1);
-   copyVertex (NxExt, S_SE, 4,   NxInt, S_NE, k1);
-   copyVertex (NxExt, S_SW, 4,   NxInt, S_SE, k1);
-
-   // ------------------------------------------------------------ K2
-   //------------------------------- Centre
-   // copyVertex (iv0, 0,      3,   iv0,   0,    k2);
-   // ------------------------------ Face k2 externe :
-
-
-   copyVertex (NxExt, S_E,  5,   NxExt, S_NE, k2);
-   copyVertex (NxExt, S_W,  5,   NxExt, S_SE, k2);
-
-   copyVertex (NxExt, S_E,  1,   NxExt, S_NW, k2);
-   copyVertex (NxExt, S_W,  1,   NxExt, S_SW, k2);
-
-   //------------------------------- Face k2 interne :
-
-   copyVertex (NxExt, S_E,  2,   NxInt, S_NW, k2);
-   copyVertex (NxExt, S_W,  2,   NxInt, S_SW, k2);
-
-   copyVertex (NxExt, S_E,  4,   NxInt, S_NE, k2);
-   copyVertex (NxExt, S_W,  4,   NxInt, S_SE, k2);
-
-   if (cyl_left == NO_PIPE)
-      {
-      addVertex (CylBig, NxExt, S_W, k2, z2, cross_rayon [CylBig][NxExt]);
-      addVertex (CylBig, NxInt, S_W, k2, z2, cross_rayon [CylBig][NxInt]);
-      }
-
-   if (cyl_right == NO_PIPE)
-      {
-      addVertex (CylBig, NxExt, S_E, k2, z2, cross_rayon [CylBig][NxExt]);
-      addVertex (CylBig, NxInt, S_E, k2, z2, cross_rayon [CylBig][NxInt]);
-      }
-
-   // ------------------------------------------------------------
-
-   //------------------------------- Centre
-   if (grid_type != GR_BIPIPE)
-       copyVertex (NxExt, S_N,  3,   iv0,   0,    k3);
-
-   //------------------------------- Face k3 externe :
-   copyVertex (NxExt, S_N,  5,   NxExt, S_E,  k3);
-   copyVertex (NxExt, S_NE, 5,   NxExt, S_NE, k3);
-   copyVertex (NxExt, S_NW, 5,   NxExt, S_SE, k3);
-
-   copyVertex (NxExt, S_N,  1,   NxExt, S_W,  k3);
-   copyVertex (NxExt, S_NE, 1,   NxExt, S_NW, k3);
-   copyVertex (NxExt, S_NW, 1,   NxExt, S_SW, k3);
-
-   //------------------------------- Face k3 interne :
-
-   copyVertex (NxExt, S_N,  2,   NxInt, S_W,  k3);
-   copyVertex (NxExt, S_NE, 2,   NxInt, S_NW, k3);
-   copyVertex (NxExt, S_NW, 2,   NxInt, S_SW, k3);
-
-   copyVertex (NxExt, S_NE, 3,   NxInt, S_N,  k3);  // 16/02/2012
-   copyVertex (NxExt, S_NW, 3,   NxInt, S_S,  k3);  // 16/02/2012
-
-   copyVertex (NxExt, S_N,  4,   NxInt, S_E,  k3);
-   copyVertex (NxExt, S_NE, 4,   NxInt, S_NE, k3);
-   copyVertex (NxExt, S_NW, 4,   NxInt, S_SE, k3);
-
-   //------------------------------- Remplissage
-
-   if (grid_type == GR_BIPIPE)
-      {
-      for (int nj=0; nj<S_MAXI ; nj++)
-          {
-          Vertex* node = getVertexIJK (CylBig, NxInt, nj, 0);
-          double  px = node->getX();
-          double  py = node->getY();
-          for (int nk=1; nk<4 ; nk++)
-              {
-              node = getVertexIJK (CylBig, NxInt, nj, nk);
-              if (node != NULL)
-                 {
-                 node -> setX (px);
-                 node -> setY (py);
-                 }
-              }
-          }
-      }
-   fillGrid (CylBig);
-}
-// ====================================================== createLittleCyl
-void CrossElements::createLittleCyl ()
-{
-   double c1 = calcul_centre (cross_cyl1->getBase(), cross_center);
-   // double cosalpha = cos (angle_inter[CylBig]);
-   double prayext  = cross_rayon [CylBig][NxExt]; // * cosalpha;
-   double prayint  = cross_rayon [CylBig][NxInt]; // * cosalpha;
-
-   double t_haut [MaxLevel] = { -c1,  -prayext,  -prayint,
-                                 0,    prayint,  prayext,
-                                 cross_cyl1->getHeight () -c1 };
-
-   double rm = (  cross_rayon [CylSmall][NxExt]
-                + cross_rayon [CylSmall][NxInt]) / 2;
-   double rc =    cross_rayon [CylBig]  [NxInt];
-
-   double t_rayext [MaxLevel] = { -1,  -1, rm, rc, rm, -1, -1 };
-
-/* *******************************************************************
-   int nkdeb = at_left  ? 0        : size_v1z/2;
-   int nkfin = at_right ? size_v1z : size_v1z/2;
-   ******************************************************************* */
-
-   int nkdeb, nkfin;
-   switch (cyl_left)
-          {
-          case IS_HERE : nkdeb = 0;
-               break;
-          case NO_PIPE : nkdeb = size_v1z/2;
-               break;
-          case NO_CYL  : nkdeb = 1;
-               break;
-          }
-   switch (cyl_right)
-          {
-          case IS_HERE : nkfin = size_v1z;
-               break;
-          case NO_PIPE : nkfin = size_v1z/2;
-               break;
-          case NO_CYL  : nkfin = size_v1z-1;
-               break;
-          }
-
-   for (int nk = nkdeb ; nk<nkfin ; nk++)
-       {
-       double px = t_haut [nk];
-       if (grid_type != GR_BIPIPE)
-          addVertex (CylSmall, 0, 0, nk, px, 0);
-
-       addSlice (CylSmall, NxInt, nk, px);
-       addSlice (CylSmall, NxExt, nk, px, t_rayext[nk]);
-       }
-
-
-   fillGrid (CylSmall);
-}
-// ====================================================== crossCylinders
-int CrossElements::crossCylinders (Cylinder* lun, Cylinder* lautre, bool fill)
-{
-   is_filled = fill;
-   resize ();
-
-   if (lun->getRadius() < lautre->getRadius())
-      {
-      cross_cyl1 = lun;
-      cross_cyl2 = lautre;
-      }
-   else
-      {
-      cross_cyl1 = lautre;
-      cross_cyl2 = lun;
-      }
-
-   double pr = cross_cyl1->getRadius ();
-   double gr = cross_cyl2->getRadius ();
-   if (pr>=gr*0.95)
-      {
-      cout << " **** crossCylinders : les deux rayons sont trop proches"
-           << endl;
-      setError (HERR);
-      return HERR;
-      }
-
-   cross_center = cross_cyl2->interCylinder(cross_cyl1, at_left, at_right);
-   if (cross_center==NULL)
-      {
-      setError (HERR);
-      return HERR;
-      }
-
-   if (at_left)                     cyl_left = IS_HERE;
-   else if (grid_type == GR_BIPIPE) cyl_left = NO_PIPE;
-   else                             cyl_left = NO_CYL;
-
-   if (at_right)                    cyl_right = IS_HERE;
-   else if (grid_type == GR_BIPIPE) cyl_right = NO_PIPE;
-   else                             cyl_right = NO_CYL;
-
-   double cross_gray1  = cross_cyl1->getRadius ();
-   double cross_gray2  = cross_cyl2->getRadius ();
-   double cross_igray1 = cross_gray1 * epaiss2;
-   double cross_igray2 = cross_gray2 * epaiss2;
-
-   if (db)
-      {
-      HexDisplay (cross_gray1);
-      HexDisplay (cross_gray2);
-      HexDisplay (cross_igray2);
-      HexDisplay (cross_igray1);
-      }
-
-   angle_inter [CylSmall] = M_PI/6;
-   angle_inter [CylBig]   = asin (cross_gray1/cross_gray2);
-   angle_intermed = angle_inter [CylBig];
-
-   cross_rayon [CylSmall] [0] = cross_rayon [CylBig] [0] = 0;
-
-   cross_rayon [CylSmall] [NxInt] = cross_igray1;
-   cross_rayon [CylSmall] [NxExt] = cross_gray1;
-   cross_rayon [CylBig]   [NxInt] = cross_igray2;
-   cross_rayon [CylBig]   [NxExt] = cross_gray2;
-
-   createLittleCyl ();
-   createBigCyl    ();
-
-   double h1=0, h3=0, dx=1 , dy=1;
-   if (cyl_left!=NO_PIPE)
-      {
-      adjustLittleSlice (NxExt, 1, NxExt);
-      adjustLittleSlice (NxInt, 1, NxExt);
-      if (grid_type == GR_BIPIPE)
-         adjustLittleSlice (NxInt, 2, NxInt);
-      dx = getVertexIJK (CylBig, NxExt, S_NW, 1)->getX();
-      dy = getVertexIJK (CylBig, NxExt, S_NW, 1)->getY();
-      h1 = getVertexIJK (CylBig, NxExt, S_NW, 1)->getZ();
-      h3 = getVertexIJK (CylBig, NxExt, S_NW, 3)->getZ();
-      }
-
-   if (cyl_right!=NO_PIPE)
-      {
-      adjustLittleSlice (NxExt, 5, NxExt);
-      adjustLittleSlice (NxInt, 5, NxExt);
-      if (grid_type == GR_BIPIPE)
-         adjustLittleSlice (NxInt, 4, NxInt);
-      dx = -getVertexIJK (CylBig, NxExt, S_NE, 1)->getX();
-      dy =  getVertexIJK (CylBig, NxExt, S_NE, 1)->getY();
-      h1 =  getVertexIJK (CylBig, NxExt, S_NE, 1)->getZ();
-      h3 =  getVertexIJK (CylBig, NxExt, S_NE, 3)->getZ();
-      }
-
-   for (int ny=0 ; ny<S_MAXI ; ny++)
-       {
-       if (ny != S_E && ny != S_W)
-          {
-          getVertexIJK (CylBig, NxExt, ny, 1)->setZ(h1);
-          getVertexIJK (CylBig, NxExt, ny, 3)->setZ(h3);
-          }
-       }
-
-   angle_intermed = atan (dy/dx);
-   Vector* iprim = new Vector (cross_cyl1->getDirection());
-   Vector* kprim = new Vector (cross_cyl2->getDirection());
-   Vector* jprim = new Vector (kprim);
-
-   iprim->renormer ();
-   kprim->renormer ();
-   jprim->vectoriel (kprim, iprim);
-
-   transfoVertices (cross_center, iprim, jprim, kprim);
-
-   Real3 snorm, bnorm;
-   iprim->getCoord (snorm);
-   kprim->getCoord (bnorm);
-
-   char     name [12];
-   sprintf (name, "grid_%02d", el_id);
-   grid_geom = el_root->addShape (name, SH_INTER);
-   grid_geom -> openShape();
-   assoCylinder (CylSmall, snorm);
-   assoCylinder (CylBig,   bnorm);
-   grid_geom -> closeShape();
-
-   if (cyl_left == IS_HERE)
-      {
-      assoIntersection (NxExt, 1, snorm, bnorm);
-      if (grid_type == GR_BIPIPE)
-         {
-         assoIntersection (NxInt, 2, snorm, bnorm);
-         }
-      }
-
-   if (cyl_right == IS_HERE)
-      {
-      assoIntersection (NxExt, NbrSlices1-1, snorm, bnorm);
-      if (grid_type == GR_BIPIPE)
-         {
-         assoIntersection (NxInt, NbrSlices1-2, snorm, bnorm);
-         }
-      }
-
-   if (cyl_left == IS_HERE)
-      {
-      adjustAsso (NxExt, S_N,  1, V_AVAL);
-      adjustAsso (NxExt, S_SW, 1, V_AMONT);
-
-      adjustAsso (NxExt, S_N,  3, V_AVAL);
-      adjustAsso (NxExt, S_SW, 3, V_AMONT);
-      }
-
-   if (cyl_right == IS_HERE)
-      {
-      adjustAsso (NxExt, S_NE, 1, V_AMONT);
-      adjustAsso (NxExt, S_S,  1, V_AVAL);
-
-      adjustAsso (NxExt, S_NE, 3, V_AMONT);
-      adjustAsso (NxExt, S_S,  3, V_AVAL);
-      }
-
-   // assoResiduelle ();
-   return HOK;
-}
-// ====================================================== copyVertex
-void CrossElements::copyVertex (int i1, int j1, int k1, int i2, int j2, int k2)
-{
-   Vertex*  node = getVertexIJK (CylSmall, i1, j1, k1);
-   if (node!=NULL)
-      {
-      setVertex (node, CylBig, i2, j2, k2);
-      return;
-      }
-
-   double rayon   = cross_rayon [CylBig][i2];
-   double hauteur = big_hauteur [k2];
-
-   addVertex (CylBig, i2, j2, k2, hauteur, rayon);
-}
-// ===================================================== assoCylinder
-void CrossElements::assoCylinder (int cyl, double* normal)
-{
-   Real3   base, vec1, center, east, west, nordest;
-   int nk = 0;
-   if (cyl==CylSmall && cyl_left != IS_HERE)
-      nk  = size_hz[cyl];
-
-   Vertex* v_e  = getVertexIJK (cyl, NxExt, S_E , nk);
-   Vertex* v_ne = getVertexIJK (cyl, NxExt, S_NE, nk);
-   Vertex* v_w  = getVertexIJK (cyl, NxExt, S_W , nk);
-
-   v_e->getPoint (east);
-   v_w->getPoint (west);
-   calc_vecteur  (west, east, base);
-
-   for (int nro=0 ; nro<DIM3 ; nro++)
-       center[nro] = (east[nro] + west[nro])/2;
-
-   v_ne->getPoint (nordest);
-   calc_vecteur (center, nordest, vec1);
-
-   double ps    = prod_scalaire (base, vec1);
-   double pnorm = calc_norme(base) * calc_norme(vec1);
-
-   angle_inter [cyl] = acos (ps/pnorm);
-
-   if (cyl==CylBig || at_left)
-      {
-      assoSlice (cyl, base, normal, NxExt, 0);
-      if (grid_type == GR_BIPIPE)
-         {
-         assoSlice (cyl, base, normal, NxInt, 0);
-         assoSlice (cyl, base, normal, NxInt, 1);
-         }
-      }
-
-   if (cyl==CylBig || cyl_right == IS_HERE)
-      {
-      assoSlice (cyl, base, normal, NxExt, size_hz[cyl]);
-      if (grid_type == GR_BIPIPE)
-         {
-         assoSlice (cyl, base, normal, NxInt, size_hz[cyl]);
-         assoSlice (cyl, base, normal, NxInt, size_hz[cyl]-1);
-         }
-      }
-
-   if (cyl==CylBig)
-      for (int nz=1 ; nz<=3 ; nz++)
-          assoBigMiddle (base, normal, nz);
-}
-// ===================================================== assoBigMiddle
-void CrossElements::assoBigMiddle (double* base, double* normal, int nzs)
-{
-   Real3  center, pnt1, pnt2;
-   int nx = NxExt;
-
-   Vertex* v_n  = getVertexIJK (CylBig, nx, S_N , nzs);
-   Vertex* v_s  = getVertexIJK (CylBig, nx, S_S , nzs);
-
-   v_s->getPoint (pnt1);
-   v_n->getPoint (pnt2);
-
-   double rayon = calc_distance (pnt1, pnt2)/2;
-   // double alpha = angle_inter [CylBig];
-   // if (nzs != 2)
-      // {
-      // double h1  = cross_rayon[CylSmall][NxExt] * cos (angle_inter[CylSmall]);
-      // alpha = asin (h1/cross_rayon[CylBig][NxExt]);
-      // }
-
-   for (int nro=0 ; nro<DIM3 ; nro++)
-       center[nro] = (pnt1[nro] + pnt2[nro])/2;
-
-   int subid = grid_geom->addCircle (center, rayon, normal, base);
-
-   if (cyl_right != IS_HERE)
-      {
-      assoArc (CylBig, NxExt, S_SE, nzs, subid);
-      assoArc (CylBig, NxExt, S_E,  nzs, subid);
-      }
-
-   assoArc (CylBig, NxExt, S_NE, nzs, subid);
-   assoArc (CylBig, NxExt, S_N , nzs, subid);
-
-   if (cyl_left != IS_HERE)
-      {
-      assoArc (CylBig, NxExt, S_NW, nzs, subid);
-      assoArc (CylBig, NxExt, S_W , nzs, subid);
-      }
-
-   assoArc (CylBig, NxExt, S_SW, nzs, subid);
-   assoArc (CylBig, NxExt, S_S , nzs, subid);
-}
-// ====================================================== adjustLittleSlice
-void CrossElements::adjustLittleSlice (int ni, int nk, int nibig)
-{
-   Vertex* node = getVertexIJK (CylSmall, ni, S_N, nk);
-   if (node==NULL)
-      return;
-
-   double grayon2 = cross_rayon[CylBig][nibig] * cross_rayon[CylBig][nibig];
-   double prayon  = cross_rayon[CylSmall][ni];
-
-   for (int nj=0;  nj<S_MAXI ; nj++)
-       {
-       node  = getVertexIJK (CylSmall, ni, nj, nk);
-       double angle = getAngle (CylSmall, nj);
-       double py = prayon * cos (angle);
-       double pz = prayon * sin (angle);
-       double px = sqrt (grayon2-py*py);
-
-       double qx = node->getX();
-       if (qx>=0) node->setX ( px);
-       else       node->setX (-px);
-       node->setY (py);
-       node->setZ (pz);
-       }
-}
-// ===================================================== assoIntersection
-int CrossElements::assoIntersection (int nxs, int nzs, double* snorm,
-                                                       double* bnorm)
-{
-   Real3  center;
-   Real3  pse, psw, sorig, sbase;
-   Real3  pbe, pbw, borig, bbase;
-
-   cross_center->getPoint (center);
-   int nz = nzs < MiddleSlice1 ? 0 : NbrSlices1;
-
-   getVertexIJK (CylSmall, nxs, S_E , nz)->getPoint (pse);
-   getVertexIJK (CylSmall, nxs, S_W , nz)->getPoint (psw);
-   getVertexIJK (CylBig,   nxs, S_E , 0) ->getPoint (pbe);
-   getVertexIJK (CylBig,   nxs, S_W , 0) ->getPoint (pbw);
-
-   double srayon = calc_distance (pse, psw)/2;
-   double brayon = calc_distance (pbe, pbw)/2;
-
-   calc_milieu  (psw, pse, sorig);
-   calc_milieu  (pbw, pbe, borig);
-   calc_vecteur (psw, pse, sbase);
-   calc_vecteur (pbw, pbe, bbase);
-
-   double shaut = calc_distance (center, sorig);
-   double bhaut = calc_distance (center, borig)*2;
-   double* orig = nzs < MiddleSlice1 ? sorig : center;    // Pb orientation
-
-   BiCylinderShape bicyl_shape (el_root);
-   int ier = bicyl_shape.defineCyls (borig, bnorm, bbase, brayon, bhaut,
-                                      orig, snorm, sbase, srayon, shaut);
-   if (ier != HOK)
-      return ier;
-
-   for (int ny=S_E ; ny<=S_SE ; ny++)
-       {
-       Vertex* node = getVertexIJK (CylSmall, nxs, ny, nzs);
-       if (node!=NULL)
-           node->clearAssociation ();
-       }
-
-   for (int ny=S_E ; ny<=S_SE ; ny++)
-       {
-       Edge* edge = getEdgeJ (CylSmall, nxs, ny, nzs);
-       bicyl_shape.associate (edge);
-       }
-
-   return HOK;
-}
-// ===================================================== adjustAsso
-void CrossElements::adjustAsso (int nx, int ny, int nz, int sens)
-{
-   Edge*   edge   = getEdgeJ (CylBig, nx, ny, nz);
-   if (edge==NULL)
-       return;
-
-   Real3 point;
-   Vertex*   vertex = edge->getVertex (sens);
-   AssoEdge* asso   = edge->getAssociation (0);
-   if (asso==NULL)
-      return;
-
-   vertex->getPoint (point);
-
-   EdgeShape* line  = asso->getEdgeShape ();
-   double     param = line->getParam (point);
-
-   if (param<0)
-      return;
-   if (sens==V_AMONT)
-      asso->setStart (param);
-   else
-      asso->setEnd (param);
-}
-END_NAMESPACE_HEXA
diff --git a/src/HEXABLOCK/HexCylinder.cxx b/src/HEXABLOCK/HexCylinder.cxx
deleted file mode 100644 (file)
index 0211f7a..0000000
+++ /dev/null
@@ -1,289 +0,0 @@
-
-// C++ : Gestion des cylindres
-
-// Copyright (C) 2009-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
-//
-#include "HexCylinder.hxx"
-#include "HexVertex.hxx"
-#include "HexVector.hxx"
-#include "HexXmlWriter.hxx"
-#include "HexDocument.hxx"
-
-#include <cmath>
-
-BEGIN_NAMESPACE_HEXA
-
-bool is_out (double val, double orig, double lg);
-
-// ======================================================== Constructeur
-Cylinder::Cylinder(Vertex* b, Vector* v, double r, double h)
-        : EltBase (b->dad(), EL_CYLINDER)
-{
-    c_base   = b;
-    c_dir    = v;
-    c_radius = r;
-    c_height = h;
-
-    if (el_root->debug ())
-       {
-       Echo ("---------------------------------- AddCylinder");
-       HexDisplay (c_radius);
-       HexDisplay (c_height);
-       HexDump (c_base);
-       HexDump (c_dir);
-       cout << endl;
-       }
-
-    if (c_base==NULL || c_dir==NULL || el_root==NULL)
-       setError ();
-    else 
-       {
-       double tol   = el_root->getTolerance ();
-       double norme = c_dir  ->getNorm ();
-       if (c_radius <= tol || c_height <= tol || norme <= tol)
-           setError ();
-       }
-}
-// ======================================================== rdiffers
-bool rdiffers (double v1, double v2)
-{
-   double dd = v1-v2;
-   return dd*dd > 1e-12;
-}
-// ======================================================== norme
-double norme (double px, double py, double pz)
-{
-   double res = sqrt (px*px + py*py + pz*pz);
-   return res;
-}
-// ======================================================== interCylinder
-///  Intersection de 2 droites (c1,v1) et (c2,v2)
-///  Le point M(x,yz) est solutions de 2 equations :
-///            (c1,m) = k * v1 
-///            (c2,m) vectoriel v2 = 0
-///            
-///  x = xc1 + k * xv1                  (1)
-///  y = yc1 + k * yv1                  (2)
-///  z = zc1 + k * zv1                  (3)
-///  (x-xc2) * yv2 - (y-yc2) * xv2 = 0  (4)
-///  (z-zc2) * yv2 - (y-yc2) * zv2 = 0  (5)
-///  (x-xc2) * zv2 - (z-zc2) * xv2 = 0  (6)
-///             
-///  En substituant les (x,y,z)
-///             
-///  (k*xv1+xc1-xc2) * yv2 - (k*yv1+yc1-yc2) * xv2 = 0  (4)
-///  (k*zv1+zc1-zc2) * yv2 - (k*yv1+yc1-yc2) * zv2 = 0  (5)
-///  (k*xv1+xc1-xc2) * zv2 - (k*zv1+zc1-zc2) * xv2 = 0  (6)
-///             
-///  k * (xv1*yv2 - yv1*xv2) + (xc1-xc2) * yv2 - (yc1-yc2) * xv2 = 0 (4)
-///  k * dxy - nxy = 0      (4)
-///  k * dzy - nzy = 0      (5)
-///  k * dxz - nxz = 0      (6)
-///
-///  nxy = (xc2-xc1) * yv2 - (yc2-yc1) * xv2
-///  dxy =  xv1*yv2 - yv1*xv2
-///             
-// ======================================================== interCylinder
-Vertex* Cylinder::interCylinder(Cylinder* small, bool& left, bool& right)
-{
-   Real3 orig;
-   int ier = interCylinder (small, left, right, orig);
-   if (ier!=HOK)
-       return NULL;
-
-    Vertex* sol = new Vertex (c_base->dad(), orig[0],  orig[1],  orig[2]);
-    return sol;
-}
-///             
-// ======================================================== interCylinder
-int Cylinder::interCylinder (Cylinder* small, bool& left, bool& right, 
-                             double* orig)
-{
-    left = right = true;
-    if (el_root->debug ())
-       {
-       Echo ("---------------------------------- interCylinders");
-       PutData (this->c_radius);
-       PutData (small->c_radius);
-       PutData (this->c_height);
-       PutData (small->c_height);
-       HexDump (this->c_base);
-       HexDump (small->c_base);
-       HexDump (this->c_dir);
-       HexDump (small->c_dir);
-       }
-
-    double norm1 = c_dir->getNorm(); 
-    double norm2 = small->c_dir->getNorm(); 
-
-    double xc1 = c_base->getX(); 
-    double yc1 = c_base->getY(); 
-    double zc1 = c_base->getZ(); 
-
-    double xc2 = small->c_base->getX(); 
-    double yc2 = small->c_base->getY(); 
-    double zc2 = small->c_base->getZ(); 
-
-    double xv1 = c_dir->getDx()/norm1; 
-    double yv1 = c_dir->getDy()/norm1; 
-    double zv1 = c_dir->getDz()/norm1; 
-
-    double xv2 = small->c_dir->getDx()/norm2; 
-    double yv2 = small->c_dir->getDy()/norm2; 
-    double zv2 = small->c_dir->getDz()/norm2; 
-
-    double nxyz [DIM3] = { (xc2-xc1) * yv2 - (yc2-yc1) * xv2,
-                           (zc2-zc1) * yv2 - (yc2-yc1) * zv2,
-                           (xc2-xc1) * zv2 - (zc2-zc1) * xv2 };
-
-    double dxyz [DIM3] = { xv1*yv2 - yv1*xv2, 
-                           zv1*yv2 - yv1*zv2,
-                           xv1*zv2 - zv1*xv2 };
-    double lambda = 0;
-    bool   prems  = true;
-    for (int dd=0 ; dd<DIM3 ; dd++)
-        {
-                                      // dxyz!=0 : calcul de lambda
-        if (rdiffers (dxyz [dd], ZEROR)) 
-           {
-           double kk = nxyz [dd] / dxyz[dd];
-                                      // 1er lambda trouve 
-           if (prems)
-              {
-              prems  = false;
-              lambda = kk;
-              }
-                                      // Solutions incompatibles 
-          else if (rdiffers (kk, lambda))
-              {
-              cout << "*** InterCylinders : Solutions incompatibles " << endl;
-              return HERR;
-              }
-                                      // equation O*lamda = 0 : ignoree
-       // else ....
-           }
-                                      // dxyz=0 et nxyz!=0 : Pas de solution
-       else if (rdiffers (nxyz [dd], ZEROR)) 
-           {
-           cout << "*** InterCylinders : intersection vide " << endl;
-           return HERR;
-           }
-        }
-
-                                      // Aucune solution trouvee
-    if (prems)
-       {
-       HexDisplay (prems);
-       cout << "*** InterCylinders : intersection non trouvee " << endl;
-       return HERR;
-       }
-                                    // Intersection des droites
-    orig [dir_x] = xc1 + lambda*xv1;
-    orig [dir_y] = yc1 + lambda*yv1;
-    orig [dir_z] = zc1 + lambda*zv1;
-
-    Real3 base1, dir1, extr1;
-    Real3 base2, dir2, extr2;
-
-    this ->c_base->getPoint (base1);
-    small->c_base->getPoint (base2);
-
-    this ->c_dir->getCoord (dir1);
-    small->c_dir->getCoord (dir2);
-
-    for (int dd=dir_x ; dd<=dir_z ; dd++)
-        {
-        extr1 [dd] = base1[dd] + dir1[dd]*this ->c_height/norm1;
-        extr2 [dd] = base2[dd] + dir2[dd]*small->c_height/norm2;
-        }
-
-    double dbase1 = calc_distance (orig, base1);
-    double dbase2 = calc_distance (orig, base2);
-    double dextr1 = calc_distance (orig, extr1);
-    double dextr2 = calc_distance (orig, extr2);
-
-    double dmin2  = std::min (dbase2, dextr2);
-    double dmax2  = std::max (dbase2, dextr2);
-    double dmax1  = std::max (dbase1, dextr1);
-    double coeff  = 1.1;
-                                    // Appartenance axe petit cylindre
-    if (dmax2 > small->c_height + c_radius)
-       {
-       cout << "*** InterCylinders : Petit cylindre trop court" << endl;
-       cout << "*** Intersection = (" << orig[0] << ", "  << orig[1] 
-                             << ", "  << orig[2] << " )" << endl;
-       cout << "*** distance = "  << dmin2 
-            << " > gros rayon + longueur " 
-            << small->c_height + c_radius << endl;
-       cout << endl;
-       PutCoord (base2);
-       PutCoord (extr2);
-       PutData(dbase2);
-       PutData(dextr2);
-       PutData(dextr2);
-       return HERR;
-       }
-
-    left  = dbase2 > c_radius*coeff;
-    right = dextr2 > c_radius*coeff;
-                                    // Le gros cylindre doit depasser le petit
-    if (dmax1 > c_height-coeff*small->c_radius)
-       {
-       cout << "*** InterCylinders : Gros cylindre trop court" << endl;
-       cout << "*** Intersection = (" << orig[0] << ", "  << orig[1] 
-                             << ", "  << orig[2] << " )" << endl;
-       cout << "*** distance maximale = " << dmax1 << endl;
-       cout << endl;
-       return HERR;
-       }
-
-    if (el_root->debug ())
-       {
-       PutCoord   (orig);
-       HexDisplay (left);
-       HexDisplay (right);
-       }
-    return  HOK;
-}
-// ======================================================== is_out
-bool is_out (double val, double v1, double v2)
-{
-   if (v1 < v2)
-      return (val < v1-Epsil || val > v2+Epsil) ;
-
-   else if (v1 > v2) 
-      return (val < v2-Epsil || val > v1+Epsil) ;
-
-   else 
-      return fabs (val - v1)>Epsil;
-}
-// ========================================================= saveXml 
-void Cylinder::saveXml  (XmlWriter* xml)
-{
-   char buffer[12];
-
-   xml->openMark     ("Cylinder");
-   xml->addAttribute ("c_base", c_base->getName (buffer));
-   xml->addAttribute ("c_dir",  c_dir->getName  (buffer));
-   xml->addAttribute ("c_radius", c_radius);
-   xml->addAttribute ("c_height", c_height);
-   xml->closeMark ();
-}
-END_NAMESPACE_HEXA
-
index 991de22b6629733e54c7f6021bb7ae358c35212b..dacddc6eede2a4e3488879bbbdc8bae98591f41c 100755 (executable)
 #ifndef __DOCUMENT_H_
 #define __DOCUMENT_H_
 
-#include "Hex_defines.hxx"
 #include "HexEltBase.hxx"
 
-#ifdef WIN32
- #ifdef max
-  #undef max
-#endif
-#endif
-
 
 BEGIN_NAMESPACE_HEXA
 
-class NewShape;
+class HexaExport NewShape;
 
-class HEXABLOCKENGINE_EXPORT Document : public EltBase
+class Document : public EltBase
 {
                                    // Fonctions utilisateur
 public :
index 39cfb4b322a9f6c838a37804ce4da2cbfd3088ab..8238bd4d3d057037601351404529a77b347531f8 100755 (executable)
@@ -20,7 +20,7 @@
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 #include "HexDocument.hxx"
-#include <Basics_DirUtils.hxx>   
+// #include <Basics_DirUtils.hxx>   
 #include <cstdlib>               // Pour atoi et atof
 
 #include "Hex.hxx"
@@ -121,7 +121,8 @@ int Document::loadXml (cpchar ficname)
 {
    XmlTree xml("");
    string filename = ficname;
-   el_name         = Kernel_Utils::GetBaseName ((pchar)ficname);
+   //el_name         = Kernel_Utils::GetBaseName ((pchar)ficname);
+   make_basename (ficname, el_name);
 
    static const int NbExt = 3;
    static cpchar t_ext [NbExt] = { ".xml", ".XML", ".Xml" };
diff --git a/src/HEXABLOCK/HexDocument_del.cxx b/src/HEXABLOCK/HexDocument_del.cxx
deleted file mode 100644 (file)
index 9e17c93..0000000
+++ /dev/null
@@ -1,378 +0,0 @@
-
-// C++ : Fonctions perimees de HexDocument
-
-//  Copyright (C) 2009-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
-
-#include "HexDocument.hxx"
-
-#include "HexEltBase.hxx"
-#include "HexVertex.hxx"
-#include "HexEdge.hxx"
-#include "HexQuad.hxx"
-#include "HexHexa.hxx"
-
-#include "HexElements.hxx"
-#include "HexCrossElements.hxx"
-
-#include "HexVector.hxx"
-#include "HexCylinder.hxx"
-#include "HexPipe.hxx"
-#include "HexMatrix.hxx"
-#include "HexCloner.hxx"
-#include "HexPropagation.hxx"
-#include "HexLaw.hxx"
-
-#include "HexXmlWriter.hxx"
-#include "HexXmlTree.hxx"
-#include "HexGlobale.hxx"
-#include "HexGroup.hxx"
-#include "Hex.hxx"
-#include "HexNewShape.hxx"
-
-BEGIN_NAMESPACE_HEXA
-
-
-// ======================================================== makeCartesian
-Elements* Document::makeCartesian (Vertex* v, Vector* dir,
-                            int px, int py, int pz, int mx, int my, int mz)
-{
-   DumpStart ("makeCartesianDiag", v << dir << px << py << pz << mx << my << mz);
-
-   Vector* v1 = new Vector (this, dir->getDx(), 0, 0);
-   Vector* v2 = new Vector (this, 0, dir->getDy(), 0);
-   Vector* v3 = new Vector (this, 0,0,  dir->getDz());
-   Elements*  grille = new Elements (this);
-   grille->makeCartesianGrid (v, v1, v2, v3, px, py, pz, mx, my, mz);
-
-   DumpReturn (grille);
-   return grille;
-}
-// ======================================================== makeCartesian
-Elements* Document::makeCartesian (Vertex* v, Vector* v1, Vector* v2,
-                                   Vector* v3, int px, int py, int pz)
-{
-   DumpStart ("makeCartesian", v << v1 << v2 << v3 << px << py << pz);
-
-   Elements* grille = new Elements (this);
-   grille->makeCartesianGrid (v, v1, v2, v3, px, py, pz);
-
-   DumpReturn (grille);
-   return grille;
-}
-// ======================================================== makeCartesian1
-Elements* Document::makeCartesian1 (Vertex* v, Vector* v1, Vector* v2,
-                    Vector* v3, int px, int py, int pz, int mx, int my, int mz)
-{
-   DumpStart ("makeCartesian1", v << v1 << v2 << v3 << px << py << pz
-                              << mx << my << mz);
-
-   Elements* grille = new Elements (this);
-   grille->makeCartesianGrid (v, v1, v2, v3, px, py, pz, mx, my, mz);
-
-   DumpReturn (grille);
-   return grille;
-}
-// ======================================================== makeSpherical
-Elements* Document::makeSpherical (Vertex* c, double rayon, int nb, double k)
-{
-   DumpStart ("makeSpherical", c << rayon << nb << k );
-
-   Elements* grille = new Elements (this);
-   grille->makeSphericalGrid (c, rayon, nb, k);
-
-   DumpReturn (grille);
-   return grille;
-}
-// ======================================================== makeCylindrical
-Elements* Document::makeCylindrical (Vertex* c, Vector* b, Vector* h,
-        double dr, double da, double dl, int nr, int na, int nl, bool fill)
-{
-   DumpStart ("makeCylindrical", c << b << h << dr << da << dl << nr << na
-                                   << nl << fill);
-
-   Elements* grille = new Elements (this);
-   grille->makeCylindricalGrid (c, b, h, dr, da, dl, nr, na, nl, fill);
-
-   DumpReturn (grille);
-   return grille;
-}
-// ======================================================== makeSphere
-Elements* Document::makeSphere (Vertex* center, Vector* vx, Vector* vz,
-                                double radius, double radhole, Vertex* plorig,
-                                int nrad, int nang, int nhaut)
-{
-   DumpStart ("makeSphere", center << vx << vz << radius << radhole << plorig
-                  << nrad << nang << nhaut);
-
-   Elements* grille = new Elements (this);
-   double radint = (radhole + radius)*DEMI;
-   grille->makeRind (GR_HEMISPHERIC, center, vx, vz, radius, radint, radhole,
-                     plorig, 360.0, nrad, nang, nhaut);
-
-   DumpReturn (grille);
-   return grille;
-}
-// ======================================================== makePartSphere
-Elements* Document::makePartSphere (Vertex* center, Vector* vx, Vector* vz,
-                                 double  radius, double radhole,
-                                 Vertex* plorig, double angle,
-                                 int nrad, int nang, int nhaut)
-{
-   DumpStart ("makePartSphere", center << vx << vz
-                  << radius << radhole
-                  << plorig << angle
-                  << nrad   << nang << nhaut);
-
-   Elements* grille = new Elements (this);
-   double radint = (radhole + radius)*DEMI;
-   grille->makeRind (GR_PART_SPHERIC, center, vx, vz, radius, radint, radhole,
-                     plorig, angle, nrad, nang, nhaut);
-
-   DumpReturn (grille);
-   return grille;
-}
-// ======================================================== makeRind
-Elements* Document::makeRind (Vertex* center, Vector* vx, Vector* vz,
-                              double  radext, double radint, double radhole,
-                              Vertex* plorig, int nrad, int nang, int nhaut)
-{
-   DumpStart ("makeRind", center << vx << vz
-                  << radext << radint << radhole
-                  << plorig << nrad   << nang << nhaut);
-
-   Elements* grille = new Elements (this);
-   grille->makeRind (GR_RIND, center, vx, vz, radext, radint, radhole,
-                     plorig, 360.0, nrad, nang, nhaut);
-
-   DumpReturn (grille);
-   return grille;
-}
-// ======================================================== makePartRind
-Elements* Document::makePartRind (Vertex* center, Vector* vx, Vector* vz,
-                           double  radext, double radint, double radhole,
-                           Vertex* plorig, double angle,
-                               int nrad, int nang, int nhaut)
-{
-   DumpStart ("makePartRind", center << vx << vz
-                  << radext << radint << radhole
-                  << plorig << angle  << nrad  << nang << nhaut);
-
-   Elements* grille = new Elements (this);
-   grille->makeRind (GR_PART_RIND, center, vx, vz, radext, radint, radhole,
-                     plorig, angle, nrad, nang, nhaut);
-
-   DumpReturn (grille);
-   return grille;
-}
-// ======================================================== prismQuad
-Elements* Document::prismQuad  (Quad* qstart, Vector* dir, int nb)
-{
-   DumpStart ("prismQuad", qstart << dir << nb);
-
-   Quads  tstart;
-   tstart.push_back (qstart);
-
-   update ();
-   Elements* prisme = prismQuads (tstart, dir, nb);
-
-   DumpReturn (prisme);
-   return      prisme;
-}
-// ======================================================== prismQuads
-Elements* Document::prismQuads (Quads tstart, Vector* dir, int nb)
-{
-   DumpStart ("prismQuads", tstart << dir << nb);
-
-   Elements*  prisme = new Elements (this);
-
-   prisme->prismQuads (tstart, dir, nb);
-
-   DumpReturn (prisme);
-   return prisme;
-}
-// ======================================================== prismQuadsVec
-Elements* Document::prismQuadsVec (Quads tstart, Vector* dir, RealVector tlen,
-                                   int crit)
-{
-   DumpStart ("prismQuadVec", tstart << dir << tlen << crit);
-   Elements*  prisme = new Elements (this);
-   if (tlen.size()<=0) return prisme;
-
-   prisme->prismQuadsVec (tstart, dir, tlen, crit);
-
-   DumpReturn (prisme);
-   return prisme;
-}
-// ======================================================== joinQuads
-Elements* Document::joinQuads (Quads tstart, Quad* dest, Vertex* v1,
-                               Vertex* v2, Vertex* v3, Vertex* v4, int nb)
-{
-   DumpStart ("joinQuads", tstart << dest << v1 << v2 << v3 << v4 << nb);
-   update ();
-   Elements*  joint = new Elements (this);
-   if (nb<=0)      return joint;
-
-   int ier = joint->joinQuads (tstart, nb, v1, v2, v3, v4, dest);
-   if (ier !=HOK)
-      printf ("\n ****\n **** Error in joinQuad(s)\n ****\n");
-
-   DumpReturn (joint);
-   return joint;
-}
-// ======================================================== joinQuad
-Elements* Document::joinQuad (Quad* qstart, Quad* dest, Vertex* v1,
-                              Vertex* v2,  Vertex* v3, Vertex* v4, int nb)
-{
-   DumpStart ("joinQuad", qstart << dest << v1 << v2 << v3 << v4 << nb);
-
-   Quads  tstart;
-   tstart.push_back (qstart);
-
-   Elements* joint = joinQuads (tstart, dest, v1, v2, v3, v4, nb);
-
-   DumpReturn (joint);
-   return    joint;
-}
-// ======================================================== cut
-Elements* Document::cut (Edge* edge, int nbcuts)
-{
-   Elements* t_hexas = new Elements (this);
-
-   if (edge==NULL || nbcuts<=0)
-      return t_hexas;
-
-   Propagation* prop    = findPropagation (edge);
-   const Edges& t_edges = prop->getEdges ();
-
-   t_hexas->cutHexas (t_edges, nbcuts);
-
-   majPropagation ();
-   return t_hexas;
-}
-// ======================================================== makeCylinder
-Elements* Document::makeCylinder (Cylinder* cyl, Vector* base, int nr, int na,
-                                                                       int nl)
-{
-   DumpStart ("makeCylinder", cyl << base << nr << na << nl);
-
-   Elements* grille = new Elements (this);
-   grille->makeCylinder (cyl, base, nr, na, nl);
-
-   DumpReturn (grille);
-   return grille;
-}
-// ======================================================== makeCylinders
-CrossElements* Document::makeCylinders (Cylinder* cyl1, Cylinder* cyl2)
-{
-   DumpStart ("makeCylinders", cyl1 << cyl2 );
-
-   CrossElements* grille = new CrossElements (this, GR_BICYL);
-   grille->crossCylinders (cyl1, cyl2, true);
-
-   DumpReturn (grille);
-   return grille;
-}
-
-// ======================================================== makePipe
-Elements* Document::makePipe (Pipe* pipe, Vector* bx, int nr, int na, int nl)
-{
-   DumpStart ("makePipe",
-        pipe << bx << nr << na << nl);
-
-   Elements* grille = new Elements (this);
-   grille->makePipe (pipe, bx, nr, na, nr);
-
-   DumpReturn (grille);
-   return grille;
-}
-// ======================================================== makePipes
-CrossElements* Document::makePipes (Pipe* pipe1, Pipe* pipe2)
-{
-   DumpStart ("makePipes",
-        pipe1 << pipe2);
-
-   CrossElements* grille = new CrossElements (this, GR_BIPIPE);
-   grille->crossCylinders (pipe1, pipe2, false);
-
-   DumpReturn (grille);
-   return grille;
-}
-// ======================================================== getCylinder
-Cylinder* Document::getCylinder (int nro)
-{
-   int size = doc_cylinder.size();
-   if (nro>=0 && nro<size)
-      return doc_cylinder [nro];
-   else
-      return NULL;
-}
-// ======================================================== getPipe
-Pipe* Document::getPipe (int nro)
-{
-   int size = doc_pipe.size();
-   if (nro>=0 && nro<size)
-      return doc_pipe [nro];
-   else
-      return NULL;
-}
-// ======================================================== addCylinder
-Cylinder* Document::addCylinder (Vertex* b, Vector* d, double r,  double h)
-{
-   DumpStart ("addCylinder", b << d << r << h);
-
-   Cylinder* cyl = new  Cylinder (b, d, r, h);
-   doc_cylinder.push_back (cyl);
-
-   DumpReturn (cyl);
-   return    cyl;
-}
-// ======================================================== addPipe
-Pipe* Document::addPipe (Vertex* b, Vector* d, double ri, double re, double h)
-{
-   DumpStart ("addPipe", b << d << ri << re << h);
-
-   Pipe*  tuyau = new  Pipe (b, d, ri, re, h);
-   doc_pipe.push_back (tuyau);
-
-   DumpReturn (tuyau);
-   return tuyau;
-}
-// ======================================================== revolutionQuads
-Elements* Document::revolutionQuadsVec (Quads start, Vertex* orig, Vector* axis,
-                                        RealVector angles)
-{
-   if (orig==NULL)       return NULL;
-   if (axis==NULL)       return NULL;
-   if (angles.size()==0) return NULL;
-   if (start .size()==0) return NULL;
-
-   Elements*  prisme = new Elements (this);
-   prisme->revolutionQuads (start, orig, axis, angles);
-   return prisme;
-}
-// ======================================================== makeCylindricals
-Elements* Document::makeCylindricals (Vertex* c, Vector* b, Vector* h, 
-                 RealVector tdr, RealVector tda, RealVector tdl, bool fill)
-{
-   Elements* grille = new Elements (this);
-   grille->makeCylindricalGrid (c, b, h, tdr, tda, tdl, fill);
-   return grille;
-}
-END_NAMESPACE_HEXA
index 21445b6ac1eb6d570427438c6a3a7755b5cdea82..d13effe04b5f7c9d01e252b7b5f63bb624d4d3b4 100755 (executable)
@@ -90,7 +90,7 @@ bool DumpStudy::start (cpchar obj, cpchar method, bool raz)
 // =================================================== operator << (int)
 DumpStudy& DumpStudy::operator << (int val)
 {
-   if (! is_open)
+   if (NOT is_open)
       return *this; 
 
    char     valeur [20];
@@ -102,7 +102,7 @@ DumpStudy& DumpStudy::operator << (int val)
 // =================================================== operator << (double)
 DumpStudy& DumpStudy::operator << (double val)
 {
-   if (! is_open)
+   if (NOT is_open)
       return *this; 
 
    char valeur [20];
@@ -114,7 +114,7 @@ DumpStudy& DumpStudy::operator << (double val)
 // =================================================== operator << (cpchar)
 DumpStudy& DumpStudy::operator << (cpchar val)
 {
-   if (! is_open)
+   if (NOT is_open)
       return *this; 
 
    string valeur ("'");
@@ -127,7 +127,7 @@ DumpStudy& DumpStudy::operator << (cpchar val)
 // =================================================== operator << (elt)
 DumpStudy& DumpStudy::operator << (EltBase* elt)
 {
-   if (! is_open)
+   if (NOT is_open)
       return *this; 
 
    cpchar name = findName (elt);
@@ -137,7 +137,7 @@ DumpStudy& DumpStudy::operator << (EltBase* elt)
 // =================================================== operator << (Quads)
 DumpStudy& DumpStudy::operator << (Quads& tab)
 {
-   if (! is_open)
+   if (NOT is_open)
       return *this; 
 
    TabElts&  tabelt = (TabElts&) tab;
@@ -147,7 +147,7 @@ DumpStudy& DumpStudy::operator << (Quads& tab)
 // =================================================== operator << (Edges)
 DumpStudy& DumpStudy::operator << (Edges& tab)
 {
-   if (! is_open)
+   if (NOT is_open)
       return *this; 
 
    TabElts&  tabelt = (TabElts&) tab;
@@ -157,7 +157,7 @@ DumpStudy& DumpStudy::operator << (Edges& tab)
 // =================================================== operator << (Hexas)
 DumpStudy& DumpStudy::operator << (Hexas& tab)
 {
-   if (!is_open)
+   if (NOT is_open)
       return *this; 
 
    TabElts&  tabelt = (TabElts&) tab;
@@ -167,7 +167,7 @@ DumpStudy& DumpStudy::operator << (Hexas& tab)
 // =================================================== operator << (Reals)
 DumpStudy& DumpStudy::operator << (RealVector& tab)
 {
-   if (! is_open)
+   if (NOT is_open)
       return *this; 
 
    char name [20], valeur [30];
index f0e6a547a53a0869561217e0e92f9092a1c34fd3..0d089bba3358eb4b92c87152ff13a9224c172111 100755 (executable)
@@ -23,7 +23,6 @@
 #ifndef __DUMP_STUDY_H_
 #define __DUMP_STUDY_H_
 
-#include "Hex_defines.hxx"
 #include "hexa_base.hxx"
 #include <map>
 
 #pragma warning ( disable: 4251 )
 #endif
 
-
 BEGIN_NAMESPACE_HEXA
 
-
 #define DumpStart0(p) bool actif=el_root->glob->dump.start(this, p)
 #define DumpStart(p,args) bool actif=el_root->glob->dump.start(this, p); if (actif)  el_root->glob->dump << args
 #define DumpEnd       el_root->glob->dump.close (actif)
@@ -44,7 +41,7 @@ BEGIN_NAMESPACE_HEXA
 #define DumpRestore            el_root->glob->dump.restore (actif)
 
 class Witness;
-class HEXABLOCKENGINE_EXPORT DumpStudy
+class HexaExport DumpStudy
 {
 public :
     DumpStudy ();
index 3e41f9d08c1f2567cc8a4816ad4ca7d33ae19278..0e05e80e8103687fa3757bd97266bba456d0b552 100755 (executable)
 #ifndef __EDGE_H
 #define __EDGE_H
 
-#include "Hex_defines.hxx"
 #include "HexVertex.hxx"
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT Edge : public EltBase
+class HexaExport Edge : public EltBase
 {
 public:
     virtual Vertex* getVertex (int  nro);
index 12b33eef24920773898845363601f50dec344205..212a7288fa091745aea5ab4847c9e74192064773 100644 (file)
@@ -4,12 +4,11 @@
 #ifndef __LIBE_SHAPE_H_
 #define __LIBE_SHAPE_H_
 
-#include "Hex_defines.hxx"
 #include "HexSubShape.hxx"
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT EdgeShape : public SubShape
+class HexaExport EdgeShape : public SubShape
 {
 public :
     EdgeShape (NewShape* dad, int id);
index 0f3aa21907ccb12fa31a6f06ca1fe45910c8764a..1373c2884fb596329219541870f3d4cd5e984282 100755 (executable)
@@ -23,7 +23,6 @@
 #ifndef __ELEMENTS_H
 #define __ELEMENTS_H
 
-#include "Hex_defines.hxx"
 #include "HexEltBase.hxx"
 #include "HexMatrix.hxx"
 
@@ -31,7 +30,7 @@
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT Elements : public EltBase
+class HexaExport Elements : public EltBase
 {
 public:
    virtual Hexa*   getHexa   (int nro);
diff --git a/src/HEXABLOCK/HexElements_del.cxx b/src/HEXABLOCK/HexElements_del.cxx
deleted file mode 100644 (file)
index 71845a7..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-
-// C++ : Grilles
-
-// Copyright (C) 2009-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
-//
-
-#include "HexElements.hxx"
-#include "HexDocument.hxx"
-#include "HexVector.hxx"
-#include "HexVertex.hxx"
-#include "HexHexa.hxx"
-#include "HexEdge.hxx"
-#include "HexGlobale.hxx"
-#include "HexCylinder.hxx"
-
-#include <cmath>
-
-BEGIN_NAMESPACE_HEXA
-
-// ====================================================== makeCartesianGrid
-int Elements::makeCartesianGrid (Vertex* orig, Vector* v1, Vector* v2,
-                   Vector* v3, int px, int py, int pz, int mx, int my, int mz)
-{
-   return HERR;
-}
-// ====================================================== makeCartesianNodes
-int Elements::makeCartesianNodes (Vertex* orig, Vector* v1, Vector* v2,
-                   Vector* v3, int px, int py, int pz, int mx, int my, int mz)
-{
-   return HERR;
-}
-// ====================================================== makeBasicCylinder
-int Elements::makeBasicCylinder (double dr, double da, double dl, int nr, 
-                                 int na, int nl, bool fill)
-{
-   return HERR;
-}
-// ====================================================== transfoVertices
-void Elements::transfoVertices (Vertex* orig, Vector* base, Vector* haut)
-{
-}
-// ====================================================== transfoVertices
-void Elements::transfoVertices (Vertex* orig, Vector* iprim, Vector* jprim,
-                                Vector* kprim)
-{
-}
-// ====================================================== makeSphericalGrid
-int Elements::makeSphericalGrid (Vertex* c, double rayon, int nb, double  k)
-{
-   return HERR;
-}
-// ====================================================== makeSphericalGrid
-// ==== Deja perimee en Hexa5
-int Elements::makeSphericalGrid (Vertex* c, Vector* dv, int nb, double  k)
-{
-   return HERR;
-}
-// ====================================================== addStrate
-int Elements::addStrate (Quad* i_quad[], Edge* i_edge[], Vertex* i_node[],
-                        Vertex* center,  double lambda)
-{
-   return HERR;
-}
-// ====================================================== makeCylinder
-int Elements::makeCylinder (Cylinder* cyl, Vector* vx, int nr, int na, int nl)
-{
-   return HERR;
-}
-// ====================================================== makePipe
-int Elements::makePipe (Cylinder* cyl, Vector* vx, int nr, int na, int nl)
-{
-   return HERR;
-}
-//
-// ---------------------------------------- prism Quads
-//
-// ====================================================== prismQuads
-int Elements::prismQuads (Quads& tstart, Vector* dir, int nbiter)
-{
-   return HERR;
-}
-// ====================================================== prismQuadsVec
-int Elements::prismQuadsVec (Quads& tstart, Vector* dir, RealVector& tlen,
-                             int mode)
-{
-   return HERR;
-}
-// ======================================================== revolutionQuads
-int Elements::revolutionQuads (Quads& start, Vertex* center, Vector* axis,
-                               RealVector &angles)
-{
-   return HERR;
-}
-// ====================================================== joinQuads
-int Elements::joinQuads (Quads& orig, int nb, Vertex* v1, Vertex* v2,
-                  Vertex* v3, Vertex* v4, Quad* cible)
-{
-   return HERR;
-}
-// ====================================================== makeCylindricalGrid
-// ==== Version avec vecteurs   --> TODO DELETE ????
-int Elements::makeCylindricalGrid (Vertex* orig, Vector* base, Vector* haut, 
-                            RealVector& tdr, RealVector& tda, RealVector& tdh, 
-                            bool fill)
-{
-   return HOK;
-}
-// ====================================================== makeCylindricalGrid
-int Elements::makeCylindricalGrid (Vertex* c, Vector* b, Vector* h,
-         double dr, double da, double dl, int nr, int na, int nl, bool fill)
-{
-   return HOK;
-}
-
-END_NAMESPACE_HEXA
index 81658d431d8a2b933b24457e7a73c65cfc97f966..4d5bf8e8b6a18c0f8e9389dd9ea80e4efa68e723 100755 (executable)
@@ -23,7 +23,6 @@
 #ifndef __ELT_BASE_H
 #define __ELT_BASE_H
 
-#include "Hex_defines.hxx"
 #include "hexa_base.hxx"
 #include <vector>
 
@@ -41,7 +40,7 @@
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT EltBase
+class HexaExport EltBase
 {
 public :
    virtual int     countHexa   ()  { return 0; }
index ca9c17cfa5049bb91201715417b1a7249c7e5a7c..c149510b3696f8c2092646add702a796b394808c 100644 (file)
@@ -4,12 +4,11 @@
 #ifndef __FACE_SHAPE_H_
 #define __FACE_SHAPE_H_
 
-#include "Hex_defines.hxx"
 #include "HexSubShape.hxx"
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT FaceShape : public SubShape
+class HexaExport FaceShape : public SubShape
 {
 public :
     FaceShape (NewShape* dad, int id);
index 1a3016c44bfa359831e991d5b2198da38ff5ebff..7c7558033cdc15c9cb3b8c4293a883ce321c7e4e 100755 (executable)
@@ -24,7 +24,6 @@
 #ifndef _HEX_GLOBALE_H
 #define _HEX_GLOBALE_H
 
-#include "Hex_defines.hxx"
 #include "hexa_base.hxx"
 #include "HexDumpStudy.hxx"
 #include "HexWitness.hxx"
@@ -52,7 +51,7 @@
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT Globale
+class HexaExport Globale
 {
 public :
    static Globale* getInstance ();
index 5f7b7566dd91399faaa2b6df5f041b39812d8299..abb7e8f51812c1028c713f0f2a033261c791026e 100755 (executable)
 #ifndef __GROUP_H
 #define __GROUP_H
 
-#include "Hex_defines.hxx"
 #include "HexEltBase.hxx"
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT Group : public EltBase 
+class HexaExport Group : public EltBase 
 {
 public :
    int       addElement    (EltBase* elt);
index 0d7a0a0b1c2c24e9de79662d63ba3ddc8b1c41c5..a00569a63702d5174e96a52aef32c6d866b6016a 100755 (executable)
@@ -42,7 +42,6 @@
 #ifndef __HEX_HEXA_H_
 #define __HEX_HEXA_H_
 
-#include "Hex_defines.hxx"
 #include "HexEltBase.hxx"
 
 #include "HexQuad.hxx"
@@ -51,7 +50,7 @@
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT Hexa : public EltBase
+class HexaExport Hexa : public EltBase
 {
 public:
     virtual Quad*   getQuad   (int  nro);
index def53f09aacdb17ae152b46e2b22ead60e13893a..84f57ecdbec00757dfd9ada2f98001f36cc76f3e 100755 (executable)
 
 class gp_Pnt;
 
-#include "Hex_defines.hxx"
 #include "HexGlobale.hxx"
 
 BEGIN_NAMESPACE_HEXA
 
-int HEXABLOCKENGINE_EXPORT geom_create_cylcyl (double* borig, double* bnorm, double* bbase,
-                                               double  bray,  double  bhaut,
-                                               double* sorig, double* snorm, double* sbase,
-                                               double  sray,  double  shaut);
-int HEXABLOCKENGINE_EXPORT geom_asso_cylcyl (Edge* edge);
+int HexaExport geom_create_cylcyl (double* borig, double* bnorm, double* bbase,
+                        double  bray,  double  bhaut,
+                        double* sorig, double* snorm, double* sbase,
+                        double  sray,  double  shaut);
+int HexaExport geom_asso_cylcyl (Edge* edge);
 
-bool HEXABLOCKENGINE_EXPORT same_coords (gp_Pnt& pa, gp_Pnt& pb, double epsil2=1e-6);
-void HEXABLOCKENGINE_EXPORT save_brep   (cpchar nom, string brep, int& nro);
-void HEXABLOCKENGINE_EXPORT clean_brep  (string& brep);
+bool HexaExport same_coords (gp_Pnt& pa, gp_Pnt& pb, double epsil2=1e-6);
+void HexaExport save_brep   (cpchar nom, string brep, int& nro);
+void HexaExport clean_brep  (string& brep);
 
-void HEXABLOCKENGINE_EXPORT geom_make_brep  (TopoDS_Shape& shape, string& brep);
-int  HEXABLOCKENGINE_EXPORT geom_brep2point (rcstring brep, double& px, double& py, double& pz);
-int  HEXABLOCKENGINE_EXPORT geom_brep2shape (rcstring brep, TopoDS_Shape& shape);
+void HexaExport geom_make_brep  (TopoDS_Shape& shape, string& brep);
+int  HexaExport geom_brep2point (rcstring brep, double& px, double& py, double& pz);
+int  HexaExport geom_brep2shape (rcstring brep, TopoDS_Shape& shape);
 
-TopoDS_Shape HEXABLOCKENGINE_EXPORT geom_brep2shape (rcstring brep);
+TopoDS_Shape HexaExport geom_brep2shape (rcstring brep);
 
 END_NAMESPACE_HEXA
 #endif
index 86a9ed4d669b5c7f803e8a9c88361c9d0194a0b2..0138e22445d79ae5f1f983127e815a41e9270290 100755 (executable)
 #ifndef __LAW_H_
 #define __LAW_H_
 
-#include "Hex_defines.hxx"
 #include "HexEltBase.hxx"
 #include "HexXmlWriter.hxx"
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT Law : public EltBase  
+class HexaExport Law : public EltBase  
 {
 public:
    const char* getName ()          { return law_name.c_str() ; }
index 5832873331a1d7531193825afe292a0c1f479e90..fd8ef38801065ae3bb5d8a7dd1a8ec616936a3fa 100755 (executable)
@@ -23,7 +23,6 @@
 #ifndef __MATRIX_H
 #define __MATRIX_H
 
-#include "Hex_defines.hxx"
 #include "HexVertex.hxx"
 #include "HexVector.hxx"
 
@@ -31,7 +30,7 @@
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT Matrix
+class HexaExport Matrix
 {
 public:
     Matrix ();
index 3c1a17e293bbc2505a72706b6aef9e3f44a9d40b..eb5765959b8c2c79812f8dfe3748e5074c3f9a54 100644 (file)
@@ -4,7 +4,6 @@
 #ifndef __NEW_SHAPE_H_
 #define __NEW_SHAPE_H_
 
-#include "Hex_defines.hxx"
 #include "HexEltBase.hxx"
 
 #ifndef SWIG
@@ -16,7 +15,7 @@
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT NewShape : public EltBase
+class HexaExport NewShape : public EltBase
 {
 public :         // for TUI
    virtual int countVertex ()   { return tab_vertex.size ();  }
diff --git a/src/HEXABLOCK/HexPipe.cxx b/src/HEXABLOCK/HexPipe.cxx
deleted file mode 100755 (executable)
index 51fdfa8..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-
-// C++ : Gestion des tuyaux
-
-// Copyright (C) 2009-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
-//
-#include "HexPipe.hxx"
-
-#include "HexDocument.hxx"
-#include "HexVertex.hxx"
-#include "HexVector.hxx"
-#include "HexXmlWriter.hxx"
-
-BEGIN_NAMESPACE_HEXA
-
-// ======================================================== Constructeur
-Pipe::Pipe (Vertex* b, Vector* v, double ri, double re, double h)
-    : Cylinder (b, v, re, h)
-{
-    c_int_radius = ri;
-    if (isBad () || c_int_radius <= el_root->getTolerance () 
-                 || c_int_radius >= c_radius)
-        setError ();
-}
-// ========================================================= saveXml 
-void Pipe::saveXml  (XmlWriter* xml)
-{
-   char buffer[12];
-
-   xml->openMark     ("Pipe");
-   xml->addAttribute ("c_base", c_base->getName (buffer));
-   xml->addAttribute ("c_dir",  c_dir->getName  (buffer));
-   xml->addAttribute ("c_radius",     c_radius);
-   xml->addAttribute ("c_int_radius", c_int_radius);
-   xml->addAttribute ("c_height",     c_height);
-   xml->closeMark ();
-}
-END_NAMESPACE_HEXA
index 2b8838f27604cf3eb30ee3da68e98b30a027743e..ed1c435c4c1ff9eb595530d6eff98aaf9d0ffe69 100755 (executable)
@@ -22,7 +22,6 @@
 #ifndef __PROPAGATION_H
 #define __PROPAGATION_H
 
-#include "Hex_defines.hxx"
 #include "HexEltBase.hxx"
 
 #include "HexDocument.hxx"
@@ -33,7 +32,7 @@
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT Propagation : public EltBase 
+class HexaExport Propagation : public EltBase 
 {
 public:
    const Edges& getEdges ()        { return prop_edges; }
index 6ebc4262cbe237d051cb145e164e6b52498f03fa..47e9848e2b5ffd46fec53c58215141b95d555b8c 100755 (executable)
 #ifndef __QUAD_H
 #define __QUAD_H
 
-#include "Hex_defines.hxx"
 #include "HexEdge.hxx"
 
 BEGIN_NAMESPACE_HEXA
 
 #ifndef SWIG
-struct HEXABLOCKENGINE_EXPORT StrOrient
+struct StrOrient
 {
    Vertex* v11;     // 1er sommet 1er quad
    Vertex* v12;     // 2eme
@@ -45,7 +44,7 @@ StrOrient ( StrOrient* s)
 };
 #endif
 
-class HEXABLOCKENGINE_EXPORT Quad : public EltBase
+class HexaExport Quad : public EltBase
 {
 public:
     virtual Edge*   getEdge   (int  nro);
index 94d3070d6a238e3bb301a1ecc0220c773f1d6237..bb7076577004aaa0c47d329614816d0152346cf5 100755 (executable)
 #ifndef __SHAPE_H_
 #define __SHAPE_H_
 
-#include "Hex_defines.hxx"
 #include "hexa_base.hxx"
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT Shape 
+class HexaExport Shape 
 {
 public :
     Shape (string brep);
index b978fb10cff54269e68bf1e4997fff653fcf58b3..5195eb9404b00d2f590642ef974789dd851189ca 100755 (executable)
@@ -41,7 +41,6 @@ SubShape::SubShape (NewShape* dad, int id, int dim)
    sub_ident  = id;
    sub_dim    = dim;
    maj_brep   = maj_shape = true;
-   kind_of    = KS_None;
 }
 // ====================================================== getShape
 const TopoDS_Shape& SubShape::getShape ()
index a65fa8343602e90bffa105ec889d3666dc38fd99..1feea5460864cf2e5e548152d5ce1eeec0063add 100644 (file)
@@ -4,21 +4,20 @@
 #ifndef __SUB_SHAPE_H_
 #define __SUB_SHAPE_H_
 
-#include "Hex_defines.hxx"
 #include "HexEltBase.hxx"
 
 #include <TopoDS_Shape.hxx>
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT SubShape : public EltBase
+class HexaExport SubShape : public EltBase
 {
 public :
     SubShape (NewShape* dad, int id, int dim);
-    NewShape*       getParentShape() const  { return ss_parent; }
-    cpchar          getParentName () const;
-    int             getIdent ()             { return sub_ident ; }
-    int             getDim   ()             { return sub_dim ; }
+    NewShape*   getParentShape() const  { return ss_parent; }
+    cpchar      getParentName () const;
+    int         getIdent ()             { return sub_ident ; }
+    int         getDim   ()             { return sub_dim ; }
     EnumKindOfShape kindOf   ()             { return kind_of ; }
 
     const string&       getBrep  ();
index 7f12dfe28319d9bf989cbaf84157ede1f6387cea..322f7f4ef6cc688965f06dca521e6bdf453c72d2 100755 (executable)
 #ifndef __VECTOR_H
 #define __VECTOR_H
 
-#include "Hex_defines.hxx"
 #include "HexEltBase.hxx"
 
 #include <cmath>
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT Vector : public EltBase
+class HexaExport Vector : public EltBase
 {
 public:
     double getDx ()    { return v_dx ; }
index 4cfc41bd982868651dfb3d0bee123b6561964c0c..a57efbd4d2932045ee2eb51406a8f48efa946d66 100755 (executable)
 #ifndef __VERTEX_H_
 #define __VERTEX_H_
 
-#include "Hex_defines.hxx"
 #include "HexEltBase.hxx"
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT Vertex : public EltBase
+class HexaExport Vertex : public EltBase
 {
 public :
    double getX()   { return v_x; }
index a2bd45bcd7b5e424ee57e24c36fb1fdd725be153..a04a843d87079b8fffddeb515307f51f19a6e43f 100644 (file)
@@ -4,12 +4,11 @@
 #ifndef __NODE_SHAPE_H_
 #define __NODE_SHAPE_H_
 
-#include "Hex_defines.hxx"
 #include "HexSubShape.hxx"
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT VertexShape : public SubShape
+class HexaExport VertexShape : public SubShape
 {
 public :
     VertexShape (NewShape* dad, int id);
index 087a4bca3d1c69ea308e057422dfa93aabd47c82..e8d74be6936805574303f7d6d38df473836231d8 100644 (file)
@@ -23,8 +23,6 @@
 #ifndef __WITNESS_H_
 #define __WITNESS_H_
 
-#include "Hex_defines.hxx"
-
 #define  Mess   el_root->glob->mess << Begin
 #define  Follow el_root->glob->mess
 
@@ -39,7 +37,7 @@ BEGIN_NAMESPACE_HEXA
 const std::string Begin (" **** ");
 
 class DumpStudy;
-class HEXABLOCKENGINE_EXPORT Witness
+class HexaExport Witness
 {
 public :
    Witness ();
index ad919df31124fa7207b18f0ed4497b0b94a2eb9b..2bff3f7dba356307f1b7082b2a58abdec1a4c7fd 100755 (executable)
@@ -22,7 +22,6 @@
 #ifndef __XML_TREE_H_
 #define __XML_TREE_H_
 
-#include "Hex_defines.hxx"
 #include "hexa_base.hxx"
 
 #include <vector>
@@ -33,7 +32,7 @@ BEGIN_NAMESPACE_HEXA
                    M_IDENT, M_EQUALS, M_STRING,
                    M_COMMENT, M_END_COMMENT, M_PROLOG, M_END_PROLOG,
                    M_ERROR};
-class HEXABLOCKENGINE_EXPORT XmlTree
+class HexaExport XmlTree
 {
 public :
    XmlTree (const string& name, XmlTree* dad=NULL);
index a83ce06dce4834fe18b82aa17bda88013116e628..82dc9adac6a84c6918aba05a062ef2ccc2134824 100755 (executable)
 #ifndef __XML_WRITER_H
 #define __XML_WRITER_H
 
-#include "Hex_defines.hxx"
 #include "hexa_base.hxx"
 #include <stack>
 #include <vector>
 
 BEGIN_NAMESPACE_HEXA
 
-class HEXABLOCKENGINE_EXPORT XmlWriter 
+class HexaExport XmlWriter 
 {
 public :
    XmlWriter ();
index 89652e060e803322bfec0841909debe9a5116d3f..90126b3879854d7786abc863e731157cc5d97a28 100755 (executable)
@@ -29,5 +29,6 @@
 #else
    #define HEXABLOCKENGINE_EXPORT
 #endif
+#define HexaExport HEXABLOCKENGINE_EXPORT
 
-#endif //_HEX_DEFINES_HXX_
\ No newline at end of file
+#endif //_HEX_DEFINES_HXX_
index e79dd9ed6787dc5f7707b16a3e572fd7dcf23347..684ec49357bac89128b9c9867c9ccf6495d10026 100755 (executable)
@@ -240,49 +240,58 @@ typedef std::vector <std::string> TabText;
 typedef double Real;
 typedef double Real3 [DIM3];
 
+                                  // a cause de Swig
+#ifndef HEXABLOCKENGINE_EXPORT 
+#define HEXABLOCKENGINE_EXPORT 
+#endif 
+
+#ifndef HexaExport 
+#define HexaExport 
+#endif 
+
                         // Quelques fonctions :
 
-HEXABLOCKENGINE_EXPORT pchar   get_temp_name (cpchar format, pchar nomfic);
-HEXABLOCKENGINE_EXPORT void    fatal_error   (cpchar format, cpchar info1=NULL, cpchar info2=NULL);
+HexaExport pchar   get_temp_name (cpchar format, pchar nomfic);
+HexaExport void    fatal_error   (cpchar format, cpchar info1=NULL, cpchar info2=NULL);
 
-HEXABLOCKENGINE_EXPORT double   prod_scalaire  (double v1[], double v2[]);
-HEXABLOCKENGINE_EXPORT double* prod_vectoriel (double v1[], double v2[], double v3[]);
-HEXABLOCKENGINE_EXPORT double  prod_mixte     (double vi[], double vj[], double vk[]);
+HexaExport double   prod_scalaire  (double v1[], double v2[]);
+HexaExport double* prod_vectoriel (double v1[], double v2[], double v3[]);
+HexaExport double  prod_mixte     (double vi[], double vj[], double vk[]);
 
-HEXABLOCKENGINE_EXPORT inline  double deg2radians (double angle) {  return (angle*M_PI/180.0); }
-HEXABLOCKENGINE_EXPORT inline  double rad2degres  (double angle) {  return (angle*180.0/M_PI); }
+HexaExport inline  double deg2radians (double angle) {  return (angle*M_PI/180.0); }
+HexaExport inline  double rad2degres  (double angle) {  return (angle*180.0/M_PI); }
 
-HEXABLOCKENGINE_EXPORT double  calc_norme     (double v1[]);
-HEXABLOCKENGINE_EXPORT double  calc_distance  (double v1[], double v2[]);
-HEXABLOCKENGINE_EXPORT void    calc_vecteur   (double pta[], double ptb[], double vab[]);
-HEXABLOCKENGINE_EXPORT void    copy_vecteur   (double va [], double vb []);
-HEXABLOCKENGINE_EXPORT void    calc_milieu    (double pta[], double ptb[], double milieu[]);
-HEXABLOCKENGINE_EXPORT int     normer_vecteur (double v1[]);
+HexaExport double  calc_norme     (double v1[]);
+HexaExport double  calc_distance  (double v1[], double v2[]);
+HexaExport void    calc_vecteur   (double pta[], double ptb[], double vab[]);
+HexaExport void    copy_vecteur   (double va [], double vb []);
+HexaExport void    calc_milieu    (double pta[], double ptb[], double milieu[]);
+HexaExport int     normer_vecteur (double v1[]);
 
-HEXABLOCKENGINE_EXPORT double  carre       (double val);
-HEXABLOCKENGINE_EXPORT bool    same_coords (double* pa, double* pb, double epsilon=1e-6);
+HexaExport double  carre       (double val);
+HexaExport bool    same_coords (double* pa, double* pb, double epsilon=1e-6);
 
-HEXABLOCKENGINE_EXPORT bool requals (const double  v1, const double  v2);
-HEXABLOCKENGINE_EXPORT bool requals (const double* v1, const double* v2);
+HexaExport bool requals (const double  v1, const double  v2);
+HexaExport bool requals (const double* v1, const double* v2);
 
-HEXABLOCKENGINE_EXPORT bool    on_debug();     // == getenv ("HEXA_DB") > 0
-HEXABLOCKENGINE_EXPORT bool   in_test ();     // == getenv ("HEXA_TEST") > 0
-HEXABLOCKENGINE_EXPORT int    niv_debug();    // Implemente prochainement
+HexaExport bool    on_debug();     // == getenv ("HEXA_DB") > 0
+HexaExport bool   in_test ();     // == getenv ("HEXA_TEST") > 0
+HexaExport int    niv_debug();    // Implemente prochainement
 
-HEXABLOCKENGINE_EXPORT void   set_minus (string& chaine);
+HexaExport void   set_minus (string& chaine);
 
-HEXABLOCKENGINE_EXPORT bool   special_option ();
-HEXABLOCKENGINE_EXPORT void   set_special_option (bool opt);
+HexaExport bool   special_option ();
+HexaExport void   set_special_option (bool opt);
 
-HEXABLOCKENGINE_EXPORT int    sizeof_file (cpchar filename);
-HEXABLOCKENGINE_EXPORT char*  read_file   (cpchar filename, int& size);
-HEXABLOCKENGINE_EXPORT cpchar get_time   (string& buffer);
+HexaExport int    sizeof_file (cpchar filename);
+HexaExport char*  read_file   (cpchar filename, int& size);
+HexaExport cpchar get_time   (string& buffer);
+HexaExport int make_basename (cpchar filename, string& base);
 
 const double Epsil   = 1e-6;
 const double UnEpsil = 0.999999;
 const double Epsil2  = 1e-12;
 
-
 END_NAMESPACE_HEXA
 
 #endif
index 76a039ebaad20ca237c5fa918b1fae96404fbf93..7188589ae555e6114988584f018d9e077ca0d430 100755 (executable)
@@ -269,4 +269,40 @@ bool requals (const double* lun, const double* lautre)
    return    lun!=NULL && lautre!=NULL     && requals (lun [0], lautre [0])
           && requals (lun [1], lautre [1]) && requals (lun [2], lautre [2]) ;
 }
+// ======================================================== make_basename
+int make_basename (cpchar filename, string& base)
+{
+   const char slash = '/';
+   const char antis = '\\';
+   int  lg   = strlen (filename);
+   int  ifin = -1;
+   int  ideb = 0;
+   bool more = true;
+
+   for (int nc = lg-1 ; more && nc>=0 ; --nc)
+       {
+       char car = filename[nc];
+       if (car==slash || car==antis)
+          {
+          if (ifin >0) 
+             {
+             ideb = nc + 1;
+             more = false;
+             }
+          }
+       else if (ifin<0)
+          ifin = nc;
+       } 
+
+   if (ifin  <0)
+      {
+      base = "undefined";
+      return HERR;
+      }
+
+   base = "";
+   for (int nc=ideb ; nc <= ifin ; ++nc)
+       base += filename[nc];
+   return HOK;
+}
 END_NAMESPACE_HEXA
index a5f322969b85abfaf841f643efc57081dd5ff200..1e98f73d9436a548fe7ead0e5bed545029bd10d9 100644 (file)
@@ -7,15 +7,21 @@
     <x>0</x>
     <y>0</y>
     <width>242</width>
-    <height>72</height>
+    <height>129</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>5</width>
+    <height>0</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Dialog</string>
   </property>
        </widget>
       </item>
       <item row="1" column="1">
-       <widget class="QLineEdit" name="shape_le"/>
+       <widget class="QLineEdit" name="shape_le">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0">
+       <spacer name="verticalSpacer">
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>20</width>
+          <height>16777215</height>
+         </size>
+        </property>
+       </spacer>
       </item>
      </layout>
     </widget>
index c70bc2948fa7c6fc15dc3b147710a370242bf3eb..c5380f5080d98ca20eaad9e761a4bb5126e57cbb 100644 (file)
@@ -6,7 +6,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>289</width>
+    <width>270</width>
     <height>326</height>
    </rect>
   </property>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>5</width>
+    <height>0</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Cut Edge Operation</string>
   </property>
      <layout class="QHBoxLayout" name="horizontalLayout">
       <item>
        <widget class="QRadioButton" name="cutUni_rb">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <property name="text">
          <string>Uniform</string>
         </property>
       </item>
       <item>
        <widget class="QRadioButton" name="cut_rb">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <property name="text">
          <string>Custom</string>
         </property>
@@ -49,7 +67,7 @@
    <item>
     <widget class="QWidget" name="widget" native="true">
      <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
@@ -65,7 +83,7 @@
       <item row="0" column="1">
        <widget class="QLineEdit" name="e_le">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
       <item row="0" column="1">
        <widget class="QSpinBox" name="nb_cut_spb">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
index 0a58bd02f8a1bed0294e97e4417e965792e1399d..bccf87b1da3523fc91df2017e323520f23487427 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>338</width>
-    <height>598</height>
+    <width>320</width>
+    <height>632</height>
    </rect>
   </property>
   <property name="sizePolicy">
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>5</width>
+    <height>0</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Disconnect Operation</string>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout_5">
    <item>
     <widget class="QScrollArea" name="scrollArea">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
      <property name="widgetResizable">
       <bool>true</bool>
      </property>
@@ -30,8 +42,8 @@
        <rect>
         <x>0</x>
         <y>0</y>
-        <width>318</width>
-        <height>578</height>
+        <width>300</width>
+        <height>612</height>
        </rect>
       </property>
       <layout class="QVBoxLayout" name="verticalLayout_6">
@@ -41,7 +53,7 @@
           <bool>true</bool>
          </property>
          <property name="sizePolicy">
-          <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+          <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
            <horstretch>0</horstretch>
            <verstretch>0</verstretch>
           </sizepolicy>
@@ -55,7 +67,7 @@
          <property name="maximumSize">
           <size>
            <width>16777215</width>
-           <height>50</height>
+           <height>16777215</height>
           </size>
          </property>
          <property name="title">
@@ -68,7 +80,7 @@
           <item>
            <widget class="QRadioButton" name="rb0">
             <property name="sizePolicy">
-             <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
@@ -84,7 +96,7 @@
           <item>
            <widget class="QRadioButton" name="rb1">
             <property name="sizePolicy">
-             <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
           <item>
            <widget class="QRadioButton" name="rb3">
             <property name="sizePolicy">
-             <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
           </item>
           <item>
            <widget class="QRadioButton" name="rb2">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
             <property name="text">
              <string>Quad</string>
             </property>
        <item>
         <widget class="QGroupBox" name="groupBox_2">
          <property name="sizePolicy">
-          <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
            <horstretch>0</horstretch>
            <verstretch>0</verstretch>
           </sizepolicy>
              <item row="0" column="1">
               <widget class="QLineEdit" name="v_le_rb0">
                <property name="sizePolicy">
-                <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                  <horstretch>0</horstretch>
                  <verstretch>0</verstretch>
                 </sizepolicy>
              <item row="1" column="1">
               <widget class="QLineEdit" name="h_le_rb0">
                <property name="sizePolicy">
-                <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                  <horstretch>0</horstretch>
                  <verstretch>0</verstretch>
                 </sizepolicy>
           <item>
            <widget class="QWidget" name="widget_2" native="true">
             <property name="sizePolicy">
-             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
              <item row="0" column="1">
               <widget class="QLineEdit" name="e_le_rb1">
                <property name="sizePolicy">
-                <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                  <horstretch>0</horstretch>
                  <verstretch>0</verstretch>
                 </sizepolicy>
              <item row="1" column="1">
               <widget class="QLineEdit" name="h_le_rb1">
                <property name="sizePolicy">
-                <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                  <horstretch>0</horstretch>
                  <verstretch>0</verstretch>
                 </sizepolicy>
           <item>
            <widget class="QWidget" name="widget_3" native="true">
             <property name="sizePolicy">
-             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
              <item row="0" column="1">
               <widget class="QLineEdit" name="q_le_rb2">
                <property name="sizePolicy">
-                <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                  <horstretch>0</horstretch>
                  <verstretch>0</verstretch>
                 </sizepolicy>
              <item row="1" column="1">
               <widget class="QLineEdit" name="h_le_rb2">
                <property name="sizePolicy">
-                <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                  <horstretch>0</horstretch>
                  <verstretch>0</verstretch>
                 </sizepolicy>
             </layout>
            </widget>
           </item>
+          <item>
+           <spacer name="verticalSpacer">
+            <property name="orientation">
+             <enum>Qt::Vertical</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>16777215</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
          </layout>
         </widget>
        </item>
-       <item>
-        <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>
      </widget>
     </widget>
index b193aa3c38ade2e80c4c1eafc71e1f4d4df80a64..b7fbf7ed0ffc0e4ccfd34831464672c914b03088 100644 (file)
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
   <property name="minimumSize">
    <size>
-    <width>260</width>
+    <width>5</width>
     <height>0</height>
    </size>
   </property>
      <layout class="QHBoxLayout" name="horizontalLayout_2">
       <item>
        <widget class="QRadioButton" name="single_rb">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <property name="text">
          <string>One edge</string>
         </property>
       </item>
       <item>
        <widget class="QRadioButton" name="multiple_rb">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <property name="text">
          <string>Line</string>
         </property>
@@ -70,7 +82,7 @@
    <item>
     <widget class="QScrollArea" name="scrollArea">
      <property name="sizePolicy">
-      <sizepolicy hsizetype="Minimum" vsizetype="Expanding">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
            </widget>
           </item>
           <item row="0" column="1">
-           <widget class="QLineEdit" name="first_vex_le"/>
+           <widget class="QLineEdit" name="first_vex_le">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+           </widget>
           </item>
          </layout>
         </widget>
           <item row="0" column="0" colspan="2">
            <widget class="QLineEdit" name="single_edge_le">
             <property name="sizePolicy">
-             <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
             <item row="0" column="1">
              <widget class="QLineEdit" name="single_line_le">
               <property name="sizePolicy">
-               <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+               <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                 <horstretch>0</horstretch>
                 <verstretch>0</verstretch>
                </sizepolicy>
             </item>
             <item row="0" column="1">
              <widget class="QDoubleSpinBox" name="pstart_spb">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
               <property name="decimals">
                <number>6</number>
               </property>
             </item>
             <item row="1" column="1">
              <widget class="QDoubleSpinBox" name="pend_spb">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
               <property name="decimals">
                <number>6</number>
               </property>
index 4ad095f294dd838127438f25f95421c1d1b673d0..bab80219b8a1c7039d5db6c33578c83b93e30b89 100644 (file)
@@ -9,16 +9,28 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>244</width>
-    <height>323</height>
+    <width>226</width>
+    <height>369</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>5</width>
+    <height>0</height>
+   </size>
+  </property>
+  <property name="maximumSize">
+   <size>
+    <width>16777215</width>
+    <height>16777215</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Edge Construction</string>
   </property>
@@ -29,7 +41,7 @@
    <item>
     <widget class="QGroupBox" name="groupBox">
      <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
@@ -37,7 +49,7 @@
      <property name="maximumSize">
       <size>
        <width>16777215</width>
-       <height>50</height>
+       <height>16777215</height>
       </size>
      </property>
      <property name="title">
@@ -50,7 +62,7 @@
       <item>
        <widget class="QRadioButton" name="rb0">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
@@ -66,7 +78,7 @@
       <item>
        <widget class="QRadioButton" name="rb1">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
    <item>
     <widget class="QGroupBox" name="groupBox_2">
      <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
+     <property name="minimumSize">
+      <size>
+       <width>0</width>
+       <height>0</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16777215</width>
+       <height>16777215</height>
+      </size>
+     </property>
      <property name="title">
       <string/>
      </property>
       <item>
        <widget class="QWidget" name="widget_3" native="true">
         <layout class="QFormLayout" name="formLayout_4">
-         <item row="0" column="0">
-          <widget class="QLabel" name="label_6">
-           <property name="text">
-            <string> Name </string>
-           </property>
-          </widget>
-         </item>
          <item row="0" column="1">
           <widget class="QLineEdit" name="name_le">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
           </widget>
          </item>
+         <item row="0" column="0">
+          <widget class="QLabel" name="label_6">
+           <property name="text">
+            <string> Name </string>
+           </property>
+          </widget>
+         </item>
         </layout>
        </widget>
       </item>
       <item>
        <widget class="QWidget" name="widget" native="true">
         <layout class="QFormLayout" name="formLayout">
-         <item row="0" column="0">
-          <widget class="QLabel" name="label_5">
-           <property name="text">
-            <string>Point</string>
-           </property>
-          </widget>
-         </item>
+         <property name="fieldGrowthPolicy">
+          <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+         </property>
          <item row="0" column="1">
           <widget class="QLineEdit" name="vex_le_rb1">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
           </widget>
          </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="label_4">
-           <property name="text">
-            <string>Vector</string>
-           </property>
-          </widget>
-         </item>
          <item row="1" column="1">
           <widget class="QLineEdit" name="vec_le_rb1">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
           </widget>
          </item>
+         <item row="1" column="0">
+          <widget class="QLabel" name="label_4">
+           <property name="text">
+            <string>Vector</string>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="0">
+          <widget class="QLabel" name="label_5">
+           <property name="text">
+            <string>Point</string>
+           </property>
+          </widget>
+         </item>
         </layout>
        </widget>
       </item>
       <item>
        <widget class="QWidget" name="widget_2" native="true">
         <layout class="QFormLayout" name="formLayout_2">
-         <item row="0" column="0">
-          <widget class="QLabel" name="label">
-           <property name="text">
-            <string>Point 1</string>
-           </property>
-          </widget>
-         </item>
+         <property name="fieldGrowthPolicy">
+          <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+         </property>
          <item row="0" column="1">
           <widget class="QLineEdit" name="v0_le_rb0">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
           </widget>
          </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="label_2">
-           <property name="text">
-            <string>Point 2</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
+         <item row="2" column="1">
           <widget class="QLineEdit" name="v1_le_rb0">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
            </property>
           </widget>
          </item>
+         <item row="2" column="0">
+          <widget class="QLabel" name="label_2">
+           <property name="text">
+            <string>Point 2</string>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="0">
+          <widget class="QLabel" name="label">
+           <property name="text">
+            <string>Point 1</string>
+           </property>
+          </widget>
+         </item>
         </layout>
        </widget>
       </item>
+      <item>
+       <spacer name="verticalSpacer">
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>20</width>
+          <height>16777215</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
      </layout>
     </widget>
    </item>
  </tabstops>
  <resources/>
  <connections>
-  <connection>
-   <sender>rb0</sender>
-   <signal>clicked()</signal>
-   <receiver>widget_2</receiver>
-   <slot>show()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>77</x>
-     <y>47</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>73</x>
-     <y>218</y>
-    </hint>
-   </hints>
-  </connection>
   <connection>
    <sender>rb0</sender>
    <signal>clicked()</signal>
     </hint>
    </hints>
   </connection>
+  <connection>
+   <sender>rb0</sender>
+   <signal>clicked()</signal>
+   <receiver>widget_2</receiver>
+   <slot>show()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>77</x>
+     <y>47</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>73</x>
+     <y>218</y>
+    </hint>
+   </hints>
+  </connection>
   <connection>
    <sender>rb1</sender>
    <signal>clicked()</signal>
index 621f8f92cb325102731e4da0df036b03dd6ffd7c..1b536702aa859f1302d1103858f1d7fa270b57fb 100644 (file)
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>194</width>
-    <height>206</height>
+    <height>222</height>
    </rect>
   </property>
   <property name="sizePolicy">
@@ -36,7 +36,7 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout">
       <item>
-       <widget class="QWidget" name="" native="true">
+       <widget class="QWidget" name="widget" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
@@ -54,7 +54,7 @@
          <item row="0" column="1">
           <widget class="QLineEdit" name="name_le">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
index 62a4ae8d6d7c775bc358822838fe534d85cf7255..1cf55c6eaf30ff941f656e8e879667692006d9b7 100755 (executable)
@@ -92,7 +92,7 @@
 
 #include "HEXABLOCKGUI_DocumentModel.hxx"
 #include "HEXABLOCKGUI_DocumentSelectionModel.hxx"
-#include "HEXABLOCKGUI_DocumentDelegate.hxx"
+//#include "HEXABLOCKGUI_DocumentDelegate.hxx"
 #include "HEXABLOCKGUI_DocumentPanel.hxx"
 #include "HEXABLOCKGUI_VtkDocumentGraphicView.hxx"
 #include "HEXABLOCKGUI_OccGraphicView.hxx"
 
 
 #include <Visual3d_ViewManager.hxx>
+#include <Graphic3d_Structure.hxx>
+#include <Graphic3d_Group.hxx>
 #include <V3d_PerspectiveView.hxx>
 #include <V3d_AmbientLight.hxx>
+#include <Graphic3d_GraphicDevice.hxx>
+#include <Graphic3d_Array1OfVertex.hxx>
 #include <V3d_DirectionalLight.hxx>
 #include <Xw_Window.hxx>
 #include <V3d_TypeOfShadingModel.hxx>
@@ -138,6 +142,7 @@ SalomeApp_Application*  HEXABLOCKGUI::myApplication = NULL;
 
 HEXABLOCKGUI::HEXABLOCKGUI() :
           SalomeApp_Module( "HEXABLOCK" ),
+//          LightApp_Module( "HEXABLOCK" ),
           _menuId(190),
           _dwPattern(0),
           _dwAssociation(0),
@@ -146,11 +151,11 @@ HEXABLOCKGUI::HEXABLOCKGUI() :
           _dwObjectBrowser(0),
           _dwInputPanel(0),
           _patternDataTreeView(0),
-          _patternBuilderTreeView(0),
+//          _patternBuilderTreeView(0),
           _patternGeomTreeView(0),
           _groupsTreeView(0),
           _meshTreeView(0),
-          _treeViewDelegate(0),
+//          _treeViewDelegate(0),
           _isSaved( false ),
           moduleActivatedOnce(false),
           _vertexDiag(0),
@@ -187,6 +192,14 @@ HEXABLOCKGUI::HEXABLOCKGUI() :
           _makeHemiSphereDiag(0),
           _modelInfoDiag(NULL),
           _addShapeDiag(NULL),
+          _vertexInfoDialog(NULL),
+          _edgeInfoDialog(NULL),
+          _quadInfoDialog(NULL),
+          _hexaInfoDialog(NULL),
+          _vectorInfoDialog(NULL),
+          _groupInfoDialog(NULL),
+          _lawInfoDialog(NULL),
+          _propagationInfoDialog(NULL),
           currentDialog(NULL),
           lastOccPrs(NULL),
           lastVtkDocGView(NULL)
@@ -646,7 +659,7 @@ void HEXABLOCKGUI::onWindowClosed( SUIT_ViewWindow* svw)
         { //HexaBlock Vtk Window has been closed
 
             if (currentDialog != NULL) currentDialog->close();
-            if (_treeViewDelegate != NULL) _treeViewDelegate->closeDialog();
+//            if (_treeViewDelegate != NULL) _treeViewDelegate->closeDialog();
             if (currentDocGView != NULL)
                 currentDocGView->setViewWindow(NULL);
 
@@ -685,7 +698,7 @@ void HEXABLOCKGUI::onWindowClosed( SUIT_ViewWindow* svw)
         if (_edgeAssocDiag != NULL) _edgeAssocDiag->clear();
         if (_quadAssocDiag != NULL) _quadAssocDiag->clear();
         if (currentDialog != NULL) currentDialog->close();
-        if (_treeViewDelegate != NULL) _treeViewDelegate->closeDialog();
+//        if (_treeViewDelegate != NULL) _treeViewDelegate->closeDialog();
 
         currentOccGView->getViewWindow()->removeEventFilter(this);
 
@@ -744,7 +757,7 @@ void HEXABLOCKGUI::onViewManagerRemoved( SUIT_ViewManager* vm)
             {
                 //close opened dialog
                 if (currentDialog != NULL) currentDialog->close();
-                if (_treeViewDelegate != NULL) _treeViewDelegate->closeDialog();
+//                if (_treeViewDelegate != NULL) _treeViewDelegate->closeDialog();
 
                 initialMenus();
             }
@@ -788,9 +801,11 @@ void HEXABLOCKGUI::onSelectionChanged( const QItemSelection & selected, const QI
     QTreeView* theTree = NULL;
     if ( sender() == currentGraphicView->getPatternDataSelectionModel() ){
         theTree = _patternDataTreeView;
-    } else if ( sender() == currentGraphicView->getPatternBuilderSelectionModel() ){
+    }
+    /*else if ( sender() == currentGraphicView->getPatternBuilderSelectionModel() ){
         theTree = _patternBuilderTreeView;
-    } else if ( sender() == currentGraphicView->getPatternGeomSelectionModel() ) {
+    }*/
+    else if ( sender() == currentGraphicView->getPatternGeomSelectionModel() ) {
         theTree =  _patternGeomTreeView;
     }
     else if ( sender() == currentGraphicView->getGroupsSelectionModel() ){
@@ -929,9 +944,9 @@ void HEXABLOCKGUI::createAndFillDockWidget()
     _dwInputPanel = new QDockWidget(aParent);
     _dwInputPanel->setVisible(false);
     _dwInputPanel->setWindowTitle("Input Panel");
-    _dwInputPanel->setMinimumWidth(DWINPUT_MINIMUM_WIDTH); // --- force a minimum until display
+//    _dwInputPanel->setMinimumWidth(DWINPUT_MINIMUM_WIDTH); // --- force a minimum until display
 
-    _treeViewDelegate = new DocumentDelegate(_dwInputPanel);
+//    _treeViewDelegate = new DocumentDelegate(_dwInputPanel);
 
     //2) ************* document data ( Pattern, Association, Mesh ) in treeview representation
     //      Pattern
@@ -946,20 +961,20 @@ void HEXABLOCKGUI::createAndFillDockWidget()
     patternLayout->setSizeConstraint(QLayout::SetMaximumSize);
     QSplitter *splitter = new QSplitter(Qt::Vertical,patternFrame);
     _patternDataTreeView    = new QTreeView(patternFrame);//_dwPattern);
-    _patternBuilderTreeView = new QTreeView(patternFrame);
+//    _patternBuilderTreeView = new QTreeView(patternFrame);                  // ---> TO REMOVE
     _patternGeomTreeView    = new QTreeView(patternFrame);
     splitter->addWidget(_patternDataTreeView);
-    splitter->addWidget(_patternBuilderTreeView);
+//    splitter->addWidget(_patternBuilderTreeView);                           // ---> TO REMOVE
     splitter->addWidget(_patternGeomTreeView);
     patternLayout->addWidget(splitter);
 
-    _patternDataTreeView->setEditTriggers(QAbstractItemView::AllEditTriggers/*QAbstractItemView::DoubleClicked*/);
+    _patternDataTreeView->setEditTriggers(QAbstractItemView::NoEditTriggers/*QAbstractItemView::DoubleClicked*/);
     _patternDataTreeView->setSelectionMode(QAbstractItemView::SingleSelection/*QAbstractItemView::MultiSelection*/);
-    _patternDataTreeView->setItemDelegate(_treeViewDelegate);
+//    _patternDataTreeView->setItemDelegate(_treeViewDelegate);
 
 
-    _patternBuilderTreeView->setEditTriggers(QAbstractItemView::AllEditTriggers);
-    _patternBuilderTreeView->setItemDelegate(_treeViewDelegate);
+//    _patternBuilderTreeView->setEditTriggers(QAbstractItemView::AllEditTriggers);
+//    _patternBuilderTreeView->setItemDelegate(_treeViewDelegate);
 
     _patternGeomTreeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
     _patternGeomTreeView->setSelectionMode(QAbstractItemView::SingleSelection/*QAbstractItemView::MultiSelection*/);
@@ -974,8 +989,8 @@ void HEXABLOCKGUI::createAndFillDockWidget()
     _dwGroups->setWindowTitle("Groups");
     _dwGroups->setMinimumWidth(DW_MINIMUM_WIDTH); // --- force a minimum until display
     _groupsTreeView = new QTreeView(_dwGroups);
-    _groupsTreeView->setEditTriggers(QAbstractItemView::AllEditTriggers);
-    _groupsTreeView->setItemDelegate(_treeViewDelegate);
+    _groupsTreeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
+//    _groupsTreeView->setItemDelegate(_treeViewDelegate);
     _dwGroups->setWidget(_groupsTreeView);
     _groupsTreeView->show();
 
@@ -985,9 +1000,9 @@ void HEXABLOCKGUI::createAndFillDockWidget()
     _dwMesh->setWindowTitle("Mesh");
     _dwMesh->setMinimumWidth(DW_MINIMUM_WIDTH); // --- force a minimum until display
     _meshTreeView = new QTreeView(_dwMesh);
-    _meshTreeView->setEditTriggers(QAbstractItemView::AllEditTriggers);
+    _meshTreeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
     _meshTreeView->setSelectionMode(QAbstractItemView::SingleSelection);
-    _meshTreeView->setItemDelegate(_treeViewDelegate);
+//    _meshTreeView->setItemDelegate(_treeViewDelegate);
     _dwMesh->setWidget(_meshTreeView);
     _meshTreeView->show();
 
@@ -1003,7 +1018,8 @@ void HEXABLOCKGUI::createAndFillDockWidget()
 
     // dock widget position
     aParent->addDockWidget( Qt::LeftDockWidgetArea, _dwObjectBrowser );
-    aParent->addDockWidget( Qt::LeftDockWidgetArea, _dwInputPanel );
+//    aParent->addDockWidget( Qt::LeftDockWidgetArea, _dwInputPanel );
+    aParent->addDockWidget( Qt::RightDockWidgetArea, _dwInputPanel );
 
     aParent->tabifyDockWidget( _dwObjectBrowser, _dwPattern );
     aParent->tabifyDockWidget( _dwPattern, _dwGroups );
@@ -1843,8 +1859,8 @@ void HEXABLOCKGUI::switchOnGraphicView(VtkDocumentGraphicView* dgview)
          dgview->getPatternDataSelectionModel(), SLOT( salomeSelectionChanged() ), Qt::UniqueConnection );
    connect( dgview->getPatternDataSelectionModel(), SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection &) ),
          this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ), Qt::UniqueConnection );
-   connect( dgview->getPatternBuilderSelectionModel(), SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection &) ),
-         this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ), Qt::UniqueConnection );
+//   connect( dgview->getPatternBuilderSelectionModel(), SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection &) ),
+//         this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ), Qt::UniqueConnection );
    connect( dgview->getPatternGeomSelectionModel(), SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection &) ),
             this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ), Qt::UniqueConnection );
    connect( dgview->getGroupsSelectionModel(), SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection &) ),
@@ -1864,8 +1880,8 @@ void HEXABLOCKGUI::switchOffGraphicView(VtkDocumentGraphicView* dgview, bool sav
          dgview->getPatternDataSelectionModel(), SLOT( salomeSelectionChanged() ) );
    disconnect( dgview->getPatternDataSelectionModel(), SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection &) ),
          this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ) );
-   disconnect( dgview->getPatternBuilderSelectionModel(), SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection &) ),
-         this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ) );
+//   disconnect( dgview->getPatternBuilderSelectionModel(), SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection &) ),
+//         this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ) );
    disconnect( dgview->getPatternGeomSelectionModel(), SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection &) ),
             this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ) );
    disconnect( dgview->getGroupsSelectionModel(), SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection &) ),
@@ -1878,7 +1894,7 @@ void HEXABLOCKGUI::switchOffGraphicView(VtkDocumentGraphicView* dgview, bool sav
 
    //close opened dialog
    if (currentDialog != NULL) currentDialog->close();
-   if (_treeViewDelegate != NULL) _treeViewDelegate->closeDialog();
+//   if (_treeViewDelegate != NULL) _treeViewDelegate->closeDialog();
 
    initialMenus();
 
@@ -1906,25 +1922,25 @@ void HEXABLOCKGUI::switchModel(VtkDocumentGraphicView* dgview)
     if (currentDocGView != dgview) clearDialogs();
 
     _patternDataTreeView->setModel(dgview->getPatternDataModel());
-    _patternBuilderTreeView->setModel(dgview->getPatternBuilderModel());
+//    _patternBuilderTreeView->setModel(dgview->getPatternBuilderModel());
     _patternGeomTreeView->setModel(dgview->getPatternGeomModel());
     _groupsTreeView->setModel(dgview->getGroupsModel());
     _meshTreeView->setModel(dgview->getMeshModel());
 
     _patternDataTreeView->setSelectionModel(dgview->getPatternDataSelectionModel());
-    _patternDataTreeView->setEditTriggers(QAbstractItemView::AllEditTriggers);
+    _patternDataTreeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
 
-    _patternBuilderTreeView->setSelectionModel(dgview->getPatternBuilderSelectionModel());
-    _patternBuilderTreeView->setEditTriggers(QAbstractItemView::AllEditTriggers);
+//    _patternBuilderTreeView->setSelectionModel(dgview->getPatternBuilderSelectionModel());
+//    _patternBuilderTreeView->setEditTriggers(QAbstractItemView::AllEditTriggers);
 
     _patternGeomTreeView->setSelectionModel(dgview->getPatternGeomSelectionModel());
     _patternGeomTreeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
 
     _groupsTreeView->setSelectionModel(dgview->getGroupsSelectionModel());
-    _groupsTreeView->setEditTriggers(QAbstractItemView::AllEditTriggers);
+    _groupsTreeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
 
     _meshTreeView->setSelectionModel(dgview->getMeshSelectionModel());
-    _meshTreeView->setEditTriggers(QAbstractItemView::AllEditTriggers);
+    _meshTreeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
 
 
     // = * init occ view * =
@@ -2207,11 +2223,11 @@ void HEXABLOCKGUI::_showDialogBox( HexaBaseDialog* diag )
     currentModelDialogs.insert(diag);
 
     //close the current dialog box info
-    if (_treeViewDelegate != NULL)
-        _treeViewDelegate->closeDialog();
+//    if (_treeViewDelegate != NULL)
+//        _treeViewDelegate->closeDialog();
 
-    if (_dwInputPanel->widget())
-        _dwInputPanel->widget()->close();
+//    if (_dwInputPanel->widget())
+//        _dwInputPanel->widget()->close();
 
     //Temporary for debugging EdgeAssoc Faked InfoDialog
     if (diag == _edgeAssocDiag)
@@ -2233,6 +2249,113 @@ void HEXABLOCKGUI::_showDialogBox( HexaBaseDialog* diag )
 
     currentDialog = diag;
     diag->setFocus();
+
+    if (currentDocGView != NULL)
+        currentDocGView->getPatternDataSelectionModel()->setInfoMode(false);
+}
+
+void HEXABLOCKGUI::showVertexInfoDialog(HEXA_NS::Vertex* vertex)
+{
+    if (vertex == NULL || _dwInputPanel == NULL)
+        return;
+
+    if (_vertexInfoDialog == NULL)
+        _vertexInfoDialog = new VertexDialog(_dwInputPanel, HexaBaseDialog::INFO_MODE);
+
+    _vertexInfoDialog->setValue(vertex);
+    _vertexInfoDialog->resetSizeAndShow(_dwInputPanel);
+    currentDialog = _vertexInfoDialog;
+}
+
+void HEXABLOCKGUI::showEdgeInfoDialog(HEXA_NS::Edge* edge)
+{
+    if (edge == NULL || _dwInputPanel == NULL)
+        return;
+
+    if (_edgeInfoDialog == NULL)
+        _edgeInfoDialog = new EdgeDialog(_dwInputPanel, HexaBaseDialog::INFO_MODE);
+
+    _edgeInfoDialog->setValue(edge);
+    _edgeInfoDialog->resetSizeAndShow(_dwInputPanel);
+    currentDialog = _edgeInfoDialog;
+}
+
+void HEXABLOCKGUI::showQuadInfoDialog(HEXA_NS::Quad* quad)
+{
+    if (quad == NULL || _dwInputPanel == NULL)
+        return;
+
+    if (_quadInfoDialog == NULL)
+        _quadInfoDialog = new QuadDialog(_dwInputPanel, HexaBaseDialog::INFO_MODE);
+
+    _quadInfoDialog->setValue(quad);
+    _quadInfoDialog->resetSizeAndShow(_dwInputPanel);
+    currentDialog = _quadInfoDialog;
+}
+
+void HEXABLOCKGUI::showHexaInfoDialog(HEXA_NS::Hexa* hexa)
+{
+    if (hexa == NULL || _dwInputPanel == NULL)
+        return;
+
+    if (_hexaInfoDialog == NULL)
+        _hexaInfoDialog = new HexaDialog(_dwInputPanel, HexaBaseDialog::INFO_MODE);
+
+    _hexaInfoDialog->setValue(hexa);
+    _hexaInfoDialog->resetSizeAndShow(_dwInputPanel);
+    currentDialog = _hexaInfoDialog;
+}
+
+void HEXABLOCKGUI::showVectorInfoDialog(HEXA_NS::Vector* vector)
+{
+    if (vector == NULL || _dwInputPanel == NULL)
+        return;
+
+    if (_vectorInfoDialog == NULL)
+        _vectorInfoDialog = new VectorDialog(_dwInputPanel, HexaBaseDialog::INFO_MODE);
+
+    _vectorInfoDialog->setValue(vector);
+    _vectorInfoDialog->resetSizeAndShow(_dwInputPanel);
+    currentDialog = _vectorInfoDialog;
+}
+
+void HEXABLOCKGUI::showGroupInfoDialog(HEXA_NS::Group* group)
+{
+    if (group == NULL || _dwInputPanel == NULL)
+        return;
+
+    if (_groupInfoDialog == NULL)
+        _groupInfoDialog = new GroupDialog(_dwInputPanel, HexaBaseDialog::INFO_MODE);
+
+    _groupInfoDialog->setValue(group);
+    _groupInfoDialog->resetSizeAndShow(_dwInputPanel);
+    currentDialog = _groupInfoDialog;
+}
+
+void HEXABLOCKGUI::showLawInfoDialog(HEXA_NS::Law* law)
+{
+    if (law == NULL || _dwInputPanel == NULL)
+        return;
+
+    if (_lawInfoDialog == NULL)
+        _lawInfoDialog = new LawDialog(_dwInputPanel, HexaBaseDialog::INFO_MODE);
+
+    _lawInfoDialog->setValue(law);
+    _lawInfoDialog->resetSizeAndShow(_dwInputPanel);
+    currentDialog = _lawInfoDialog;
+}
+
+void HEXABLOCKGUI::showPropagationInfoDialog(HEXA_NS::Propagation* propagation)
+{
+    if (propagation == NULL || _dwInputPanel == NULL)
+        return;
+
+    if (_propagationInfoDialog == NULL)
+        _propagationInfoDialog = new PropagationDialog(_dwInputPanel, HexaBaseDialog::INFO_MODE);
+
+    _propagationInfoDialog->setValue(propagation);
+    _propagationInfoDialog->resetSizeAndShow(_dwInputPanel);
+    currentDialog = _propagationInfoDialog;
 }
 
 void HEXABLOCKGUI::addVertex()
@@ -2301,32 +2424,32 @@ void HEXABLOCKGUI::addVector()
         _vectorDiag->name_le->setText(doc->getNextName(HEXA_NS::EL_VECTOR).c_str());
 }
 
-void HEXABLOCKGUI::addCylinder()
-{
-    if ( !_cylinderDiag ){
-        _cylinderDiag = new CylinderDialog(_dwInputPanel, HexaBaseDialog::NEW_MODE);
-    }
-    _showDialogBox( _cylinderDiag );
-
-    //set default name
-    HEXA_NS::Document* doc = getCurrentModel() ? getCurrentModel()->getHexaDocument() : NULL;
-    if (_cylinderDiag != NULL && doc != NULL)
-        _cylinderDiag->name_le->setText(doc->getNextName(HEXA_NS::EL_CYLINDER).c_str());
-}
-
+//void HEXABLOCKGUI::addCylinder()
+//{
+//    if ( !_cylinderDiag ){
+//        _cylinderDiag = new CylinderDialog(_dwInputPanel, HexaBaseDialog::NEW_MODE);
+//    }
+//    _showDialogBox( _cylinderDiag );
+//
+//    //set default name
+//    HEXA_NS::Document* doc = getCurrentModel() ? getCurrentModel()->getHexaDocument() : NULL;
+//    if (_cylinderDiag != NULL && doc != NULL)
+//        _cylinderDiag->name_le->setText(doc->getNextName(HEXA_NS::EL_CYLINDER).c_str());
+//}
 
-void HEXABLOCKGUI::addPipe()
-{
-    if ( !_pipeDiag){
-        _pipeDiag = new PipeDialog(_dwInputPanel, HexaBaseDialog::NEW_MODE);
-    }
-    _showDialogBox( _pipeDiag );
 
-    //set default name
-    HEXA_NS::Document* doc = getCurrentModel() ? getCurrentModel()->getHexaDocument() : NULL;
-    if (_pipeDiag != NULL && doc != NULL)
-        _pipeDiag->name_le->setText(doc->getNextName(HEXA_NS::EL_CYLINDER).c_str());
-}
+//void HEXABLOCKGUI::addPipe()
+//{
+//    if ( !_pipeDiag){
+//        _pipeDiag = new PipeDialog(_dwInputPanel, HexaBaseDialog::NEW_MODE);
+//    }
+//    _showDialogBox( _pipeDiag );
+//
+//    //set default name
+//    HEXA_NS::Document* doc = getCurrentModel() ? getCurrentModel()->getHexaDocument() : NULL;
+//    if (_pipeDiag != NULL && doc != NULL)
+//        _pipeDiag->name_le->setText(doc->getNextName(HEXA_NS::EL_CYLINDER).c_str());
+//}
 
 
 void HEXABLOCKGUI::makeGrid()
@@ -2630,9 +2753,9 @@ void HEXABLOCKGUI::removeLaw()
 
 void HEXABLOCKGUI::setPropagation()
 {
-    if ( !_propagationDiag ){
+    if ( !_propagationDiag )
         _propagationDiag = new PropagationDialog(_dwInputPanel, HexaBaseDialog::NEW_MODE);
-    }
+
     _showDialogBox( _propagationDiag );
 }
 
@@ -2640,10 +2763,9 @@ void HEXABLOCKGUI::setPropagation()
 // --------------------------------------------
 void HEXABLOCKGUI::computeMesh()
 {
-    if ( !_computeMeshDiag ){
+    if ( !_computeMeshDiag )
         _computeMeshDiag = new ComputeMeshDialog(_dwInputPanel, HexaBaseDialog::NEW_MODE);
-    }
-    _computeMeshDiag->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+
     _showDialogBox( _computeMeshDiag );
 }
 
@@ -2804,12 +2926,12 @@ QStringList HEXABLOCKGUI::getQuickDirList()
 
 extern "C"
 {
-    HEXABLOCK_EXPORT CAM_Module* createModule()
+    HexaExport CAM_Module* createModule()
     {
         return new HEXABLOCKGUI();
     }
 
-    HEXABLOCK_EXPORT char* getModuleVersion()
+    HexaExport char* getModuleVersion()
     {
         return (char*)HEXABLOCK_VERSION_STR;
     }
index fbc8652aa25e91491fa37d741b07726e70ca5fd2..b0451661df67ae94f586be9503c84d3cb2fd19ed 100755 (executable)
@@ -20,8 +20,6 @@
 #ifndef _HEXABLOCKGUI_HXX_
 #define _HEXABLOCKGUI_HXX_
 
-#include "HEXABLOCKGUI_Export.hxx"
-
 #include <iostream>
 #include <map>
 #include <set>
@@ -56,15 +54,15 @@ namespace HEXABLOCK
     class VtkDocumentGraphicView;
     class OccGraphicView;
     class GraphicViewsHandler;
-    class DocumentDelegate;
+//    class DocumentDelegate;
     class DocumentModel;
     class PatternDataModel;
-    class PatternBuilderModel;
+//    class PatternBuilderModel;
     class AssociationsModel;
     class GroupsModel;
     class MeshModel;
     class PatternDataSelectionModel;
-    class PatternBuilderSelectionModel;
+//    class PatternBuilderSelectionModel;
     class GroupsSelectionModel;
     class MeshSelectionModel;
 
@@ -115,7 +113,7 @@ class OCCViewer_ViewWindow;
 class LightApp_VTKSelector;
 
 
-class HEXABLOCK_EXPORT HEXABLOCKGUI : public SalomeApp_Module
+class HexaExport HEXABLOCKGUI : public SalomeApp_Module
 {
   Q_OBJECT
 
@@ -192,6 +190,15 @@ public:
   QTreeView* getPatternDataTreeView() const { return _patternDataTreeView; }
   QTreeView* getPatternGeomTreeView() const { return _patternGeomTreeView; }
 
+  void showVertexInfoDialog(HEXA_NS::Vertex* vertex);
+  void showEdgeInfoDialog(HEXA_NS::Edge* edge);
+  void showQuadInfoDialog(HEXA_NS::Quad* quad);
+  void showHexaInfoDialog(HEXA_NS::Hexa* hexa);
+  void showVectorInfoDialog(HEXA_NS::Vector* vector);
+  void showGroupInfoDialog(HEXA_NS::Group* group);
+  void showLawInfoDialog(HEXA_NS::Law* law);
+  void showPropagationInfoDialog(HEXA_NS::Propagation* propagation);
+
 public slots:
   bool deactivateModule( SUIT_Study* theStudy);
   bool activateModule( SUIT_Study* theStudy);
@@ -248,8 +255,8 @@ private slots:
   void addHexa();
 
   void addVector();
-  void addCylinder();
-  void addPipe();
+//  void addCylinder();
+//  void addPipe();
   void makeGrid();
   void makeCylinder();
   void makePipe();
@@ -327,6 +334,8 @@ private:
   QDockWidget *_dwInputPanel;    // user Input
 
 
+  // ** Elements creation and modification Dialogs **
+
   // Dialog Box ( to keep persistent values )
   HEXABLOCK::GUI::VertexDialog*                 _vertexDiag;
   HEXABLOCK::GUI::EdgeDialog*                   _edgeDiag;
@@ -363,6 +372,16 @@ private:
   HEXABLOCK::GUI::ModelInfoDialog*              _modelInfoDiag;
   HEXABLOCK::GUI::AddShapeDialog*               _addShapeDiag;
 
+  // ** Elements information dialogs **
+  HEXABLOCK::GUI::VertexDialog*                 _vertexInfoDialog;
+  HEXABLOCK::GUI::EdgeDialog*                   _edgeInfoDialog;
+  HEXABLOCK::GUI::QuadDialog*                   _quadInfoDialog;
+  HEXABLOCK::GUI::HexaDialog*                   _hexaInfoDialog;
+  HEXABLOCK::GUI::VectorDialog*                 _vectorInfoDialog;
+  HEXABLOCK::GUI::GroupDialog*                  _groupInfoDialog;
+  HEXABLOCK::GUI::LawDialog*                    _lawInfoDialog;
+  HEXABLOCK::GUI::PropagationDialog*            _propagationInfoDialog;
+
 
   std::set<HEXABLOCK::GUI::HexaBaseDialog*> currentModelDialogs;
   // Actions
@@ -381,8 +400,8 @@ private:
 
   // Pattern Builder
   QAction *_addVector;
-  QAction *_addCylinder;
-  QAction *_addPipe;
+//  QAction *_addCylinder;
+//  QAction *_addPipe;
   QAction *_makeGrid; //Cartesian, Cylindrical, Spherical
   QAction *_makeCylinder;
   QAction *_makePipe;
@@ -425,9 +444,7 @@ private:
 
   // Meshing
   QAction *_computeMesh;
-
   QAction* _showModelInfoAct;
-
   QAction* _addShapeAct;
 
 
@@ -444,14 +461,14 @@ private:
 
   //      VIEW      VIEW      VIEW      VIEW      VIEW      VIEW      VIEW      VIEW      VIEW      VIEW
   QTreeView* _patternDataTreeView;    //  document's pattern : 1 ( only one view )
-  QTreeView* _patternBuilderTreeView; //  document's pattern : 1 ( only one view )
+//  QTreeView* _patternBuilderTreeView; //  document's pattern : 1 ( only one view )
   QTreeView* _patternGeomTreeView; // the geometries' tree view
   QTreeView* _associationTreeView;    //  document's association : 1 ( only one view )
   QTreeView* _groupsTreeView; //  document's groups
   QTreeView* _meshTreeView;   //  document's mesh property: 1 ( only one view )
 
   //      DELEGATE      DELEGATE      DELEGATE      DELEGATE      DELEGATE      DELEGATE      DELEGATE
-  HEXABLOCK::GUI::DocumentDelegate    *_treeViewDelegate;  // specific editor for each item of the tree
+//  HEXABLOCK::GUI::DocumentDelegate    *_treeViewDelegate;  // specific editor for each item of the tree
 
   HEXABLOCK::GUI::GraphicViewsHandler*  graphicViewsHandler; //vtk views hanlder (create, close, ...)
 
index 36c274b0969f49333eac9bcce7cd1a0d9b42c43e..4d4a27dd2f9a6dc90f0c84d4cf0ca144f6df3d6e 100755 (executable)
@@ -60,7 +60,8 @@ QWidget *DocumentDelegate::createEditor( QWidget                    *parent,
   if (_dw->widget()) _dw->widget()->close();
   if ( !_dw->isVisible() ) _dw->setVisible(true);
 
-  switch ( index.data(HEXA_TREE_ROLE).toInt() ){
+  switch ( index.data(HEXA_TREE_ROLE).toInt() )
+  {
     case VERTEX_TREE :   editor = new VertexDialog(_dw, HexaBaseDialog::INFO_MODE);   break;
     case EDGE_TREE :     editor = new EdgeDialog(_dw, HexaBaseDialog::INFO_MODE);     break;
     case QUAD_TREE :     editor = new QuadDialog(_dw, HexaBaseDialog::INFO_MODE);     break;
@@ -78,7 +79,9 @@ QWidget *DocumentDelegate::createEditor( QWidget                    *parent,
     case LAW_TREE         : editor = new LawDialog(_dw, HexaBaseDialog::INFO_MODE); break;
     case PROPAGATION_TREE : editor = new PropagationDialog(_dw, HexaBaseDialog::INFO_MODE); break;
   }
-  if ( editor != NULL ){
+
+  if ( editor != NULL )
+  {
     HEXABLOCKGUI::assocInProgress = false;
 
     //show the editor in the dockwidget
@@ -88,6 +91,7 @@ QWidget *DocumentDelegate::createEditor( QWidget                    *parent,
          _dw->close();
 
   _currentEditor = editor;
+
   return editor;
 }
 
@@ -97,7 +101,7 @@ void DocumentDelegate::closeDialog()
        if (_currentEditor!=NULL)
        {
                _currentEditor->close();
-               emit closeEditor(_currentEditor, NoHint);
+               emit closeEditor(_currentEditor, NoHint); //Problem
                delete _currentEditor;
                _currentEditor = NULL;
        }
@@ -186,7 +190,6 @@ void DocumentDelegate::setEditorData( QWidget *editor,
     }
     break;
   }
-
 }
 
 
index 0022196b22b82d23e8414883a66625d76d6070a2..59ecf19601932bf2271ee3e4e808c0bfc8bc1828 100755 (executable)
@@ -19,7 +19,7 @@
 #ifndef __HEXABLOCKGUI_DOCUMENTDELEGATE_HXX_
 #define __HEXABLOCKGUI_DOCUMENTDELEGATE_HXX_
 
-#include "HEXABLOCKGUI_Export.hxx"
+
 // QEvent * event, QAbstractItemModel 
 
 #include <QEvent>
 #include "HEXABLOCKGUI_DocumentItem.hxx"
 #include "HEXABLOCKGUI_DocumentPanel.hxx"
 
+#include "hexa_base.hxx"
+
 namespace HEXABLOCK
 {
   namespace GUI
   {
-      class HEXABLOCK_EXPORT DocumentDelegate : public QItemDelegate
+      class HexaExport DocumentDelegate : public QItemDelegate
       {
           Q_OBJECT
       
@@ -79,7 +81,7 @@ namespace HEXABLOCK
           QDockWidget* _dw; // creator's container
 
       private slots:
-          //void commitEditor();
+          void commitEditor();
 
       };
   }
index 04a0bc51ea84f887f6f622ca64de66fb06580deb..7e3e2b77e22b069f3f89b8107b16bb960e22d723 100755 (executable)
@@ -122,7 +122,7 @@ QVariant ElementItem::data( int role ) const
 //        case CYLINDERITEM: return QVariant::fromValue( (HEXA_NS::Cylinder*)m_DocElt );
 //        case PIPEITEM: return QVariant::fromValue( (HEXA_NS::Pipe*)m_DocElt );
         case ELEMENTSITEM: return QVariant::fromValue( (HEXA_NS::Elements*)m_DocElt );
-        case CROSSELEMENTSITEM: return QVariant::fromValue( (HEXA_NS::CrossElements*)m_DocElt );
+//      case CROSSELEMENTSITEM: return QVariant::fromValue( (HEXA_NS::CrossElements*)m_DocElt );
         case GEOMSHAPEITEM: return QVariant::fromValue( (HEXA_NS::NewShape*) m_DocElt );
         case GEOMPOINTITEM: return QVariant::fromValue( (HEXA_NS::VertexShape*) m_DocElt );
         case GEOMEDGEITEM:  return QVariant::fromValue( (HEXA_NS::EdgeShape*) m_DocElt );
index dc1a3c36b481bf5e7306fa454c030d09e82864d5..4bab98bf3ce1b6050bd9efdd2521dbb58965d95f 100755 (executable)
 #ifndef _HEXABLOCKGUI_DOCUMENTITEM_HXX_
 #define _HEXABLOCKGUI_DOCUMENTITEM_HXX_
 
-#include "HEXABLOCKGUI_Export.hxx"
 
 #include <QStandardItem>
 
-#include <HexVertex.hxx>
-#include <HexEdge.hxx>
-#include <HexQuad.hxx>
-#include <HexHexa.hxx>
+#include "HexVertex.hxx"
+#include "HexEdge.hxx"
+#include "HexQuad.hxx"
+#include "HexHexa.hxx"
 
 
-#include <HexVector.hxx>
-#include <HexCylinder.hxx>
-#include <HexPipe.hxx>
-#include <HexElements.hxx>
-#include <HexCrossElements.hxx>
-#include <HexNewShape.hxx>
-#include <HexVertexShape.hxx>
-#include <HexEdgeShape.hxx>
-#include <HexFaceShape.hxx>
+#include "HexVector.hxx"
+#include "HexElements.hxx"
+#include "HexNewShape.hxx"
+#include "HexVertexShape.hxx"
+#include "HexEdgeShape.hxx"
+#include "HexFaceShape.hxx"
 
-
-
-#include <HexGroup.hxx>
-#include <HexLaw.hxx>
-#include <HexPropagation.hxx>
+#include "HexGroup.hxx"
+#include "HexLaw.hxx"
+#include "HexPropagation.hxx"
 
 #include "vtkActor.h"
 
@@ -56,10 +50,10 @@ Q_DECLARE_METATYPE( HEXA_NS::Quad* );
 Q_DECLARE_METATYPE( HEXA_NS::Hexa* );
 
 Q_DECLARE_METATYPE( HEXA_NS::Vector* );
-Q_DECLARE_METATYPE( HEXA_NS::Cylinder* );
-Q_DECLARE_METATYPE( HEXA_NS::Pipe* );
+// Q_DECLARE_METATYPE( HEXA_NS::Cylinder* );
+// Q_DECLARE_METATYPE( HEXA_NS::Pipe* );
 Q_DECLARE_METATYPE( HEXA_NS::Elements* );
-Q_DECLARE_METATYPE( HEXA_NS::CrossElements* );
+// Q_DECLARE_METATYPE( HEXA_NS::CrossElements* );
 Q_DECLARE_METATYPE( HEXA_NS::NewShape* );
 Q_DECLARE_METATYPE( HEXA_NS::SubShape* );
 Q_DECLARE_METATYPE( HEXA_NS::VertexShape* );
@@ -99,7 +93,7 @@ namespace HEXABLOCK
       PROPAGATIONITEM,
     };
 
-    enum HexaTreeRole { 
+    enum HexaTreeRole {
       VERTEX_TREE = 10,
       EDGE_TREE,
       QUAD_TREE,
@@ -157,7 +151,7 @@ namespace HEXABLOCK
 // QVariant::UserType
 
     //===================================================================================
-    class HEXABLOCK_EXPORT ElementItem : public QStandardItem
+    class HexaExport ElementItem : public QStandardItem
     {
       public:
        ElementItem( HEXA_NS::EltBase* docElement, QString entry, HexaType ttype, HexaTreeRole treeRole);
@@ -175,7 +169,7 @@ namespace HEXABLOCK
     };
     //===================================================================================
 
-    class HEXABLOCK_EXPORT GraphicElementItem : public ElementItem
+    class HexaExport GraphicElementItem : public ElementItem
     {
       public:
        GraphicElementItem( HEXA_NS::EltBase* docElement, QString entry, HexaType ttype, HexaTreeRole treeRole):
@@ -188,7 +182,7 @@ namespace HEXABLOCK
         int       IDinActor;
     };
 
-    class HEXABLOCK_EXPORT StandardElementItem : public ElementItem
+    class HexaExport StandardElementItem : public ElementItem
     {
        public:
        StandardElementItem( HEXA_NS::EltBase* docElement, QString entry, HexaType ttype, HexaTreeRole treeRole):
@@ -197,40 +191,40 @@ namespace HEXABLOCK
        }
     };
 
-    class HEXABLOCK_EXPORT VertexItem : public GraphicElementItem
+    class HexaExport VertexItem : public GraphicElementItem
     {
       public:
         VertexItem( HEXA_NS::Vertex* hexaVertex, QString entry = "");
     };
 
-    class HEXABLOCK_EXPORT EdgeItem : public GraphicElementItem
+    class HexaExport EdgeItem : public GraphicElementItem
     {
       public:
         EdgeItem( HEXA_NS::Edge* hexaEdge, QString entry = "");
     };
     //-----------------------------------------
-    class HEXABLOCK_EXPORT QuadItem : public GraphicElementItem
+    class HexaExport QuadItem : public GraphicElementItem
     {
       public:
         QuadItem( HEXA_NS::Quad* hexaQuad, QString entry = "");
     };
     //-----------------------------------------
 
-    class HEXABLOCK_EXPORT HexaItem : public GraphicElementItem
+    class HexaExport HexaItem : public GraphicElementItem
     {
       public:
         HexaItem( HEXA_NS::Hexa* hexaHexa, QString entry = "");
     };
     //-----------------------------------------
 
-    class HEXABLOCK_EXPORT VectorItem : public StandardElementItem
+    class HexaExport VectorItem : public StandardElementItem
     {
       public:
         VectorItem( HEXA_NS::Vector* hexaVector, QString entry = "");
     };
     //-----------------------------------------
 
-//    class HEXABLOCK_EXPORT CylinderItem : public StandardElementItem
+//    class HexaExport CylinderItem : public StandardElementItem
 //    {
 //      public:
 //        CylinderItem( HEXA_NS::Cylinder* hexaCyl, QString entry = "");
@@ -244,7 +238,7 @@ namespace HEXABLOCK
 //    };
     //-----------------------------------------
 
-    class HEXABLOCK_EXPORT ElementsItem : public StandardElementItem
+    class HexaExport ElementsItem : public StandardElementItem
     {
       public:
         ElementsItem( HEXA_NS::Elements* hexaElements, QString entry = "" );
@@ -257,7 +251,7 @@ namespace HEXABLOCK
 //    };
 
     //------------------------------------------------
-    class HEXABLOCK_EXPORT GeomItem: public StandardElementItem
+    class HexaExport GeomItem: public StandardElementItem
     {
     public:
         GeomItem( HEXA_NS::EltBase* geomShape, QString entry, HexaType ttype, HexaTreeRole treeRole, HEXA_NS::EltBase* assoc = NULL );
@@ -269,35 +263,35 @@ namespace HEXABLOCK
     };
 
     //------------------------------------------------
-    class HEXABLOCK_EXPORT GeomShapeItem: public GeomItem
+    class HexaExport GeomShapeItem: public GeomItem
     {
     public:
         GeomShapeItem( HEXA_NS::NewShape* shape, HEXA_NS::EltBase* assoc = NULL);
     };
 
     //------------------------------------------------
-    class HEXABLOCK_EXPORT GeomPointItem: public GeomItem
+    class HexaExport GeomPointItem: public GeomItem
     {
     public:
         GeomPointItem( HEXA_NS::VertexShape* geomPoint, HEXA_NS::Vertex* associatedVertex = NULL);
     };
 
     //------------------------------------------------
-    class HEXABLOCK_EXPORT GeomEdgeItem: public GeomItem
+    class HexaExport GeomEdgeItem: public GeomItem
     {
     public:
         GeomEdgeItem( HEXA_NS::EdgeShape* geomEdge, HEXA_NS::Edge* associatedEdge = NULL);
     };
 
     //------------------------------------------------
-    class HEXABLOCK_EXPORT GeomFaceItem: public GeomItem
+    class HexaExport GeomFaceItem: public GeomItem
     {
     public:
         GeomFaceItem( HEXA_NS::FaceShape* geomFace, HEXA_NS::Quad* associatedQuad = NULL);
     };
 
     //-----------------------------------------
-    class HEXABLOCK_EXPORT GroupItem : public QStandardItem
+    class HexaExport GroupItem : public QStandardItem
     {
     public:
        GroupItem( HEXA_NS::Group* hexaGroup );
@@ -309,7 +303,7 @@ namespace HEXABLOCK
     };
 
 
-    class HEXABLOCK_EXPORT LawItem : public QStandardItem
+    class HexaExport LawItem : public QStandardItem
     {
     public:
        LawItem( HEXA_NS::Law* hexaLaw );
@@ -321,7 +315,7 @@ namespace HEXABLOCK
     };
 
 
-    class HEXABLOCK_EXPORT PropagationItem : public QStandardItem
+    class HexaExport PropagationItem : public QStandardItem
     {
     public:
        PropagationItem( HEXA_NS::Propagation* hexaPropagation );
index 317dd5a6a7872290f48d07935a09fb99cbddb528..dfb011bd073f87a27c83f22cdb14bd85becb3f94 100755 (executable)
@@ -168,7 +168,7 @@ HEXA_NS::EltBase* DocumentModel::getHexaPtr(const QModelIndex& iElt)
     case HEXA_TREE : elt = getHexaPtr<HEXA_NS::Hexa*>(iElt); break;
     case VECTOR_TREE : elt = getHexaPtr<HEXA_NS::Vector*>(iElt); break;
     case ELEMENTS_TREE : elt = getHexaPtr<HEXA_NS::Elements*>(iElt); break;
-    case CROSSELEMENTS_TREE : elt = getHexaPtr<HEXA_NS::CrossElements*>(iElt); break;
+//  case CROSSELEMENTS_TREE : elt = getHexaPtr<HEXA_NS::CrossElements*>(iElt); break;
     case GEOMSHAPE_TREE: elt = getHexaPtr<HEXA_NS::NewShape*>(iElt); break;
     case GEOMPOINT_TREE: elt = getHexaPtr<HEXA_NS::VertexShape*>(iElt); break;
     case GEOMEDGE_TREE:  elt = getHexaPtr<HEXA_NS::EdgeShape*>(iElt); break;
@@ -255,7 +255,7 @@ void DocumentModel::load( const QString& xmlFileName ) // Fill Data
     clearAll();
 
     fillData();
-    fillBuilder();
+//    fillBuilder();
     fillGeometry();
     fillAssociation();
     fillGroups();
@@ -313,7 +313,7 @@ void DocumentModel::refresh()
     clearAll();
 
     fillData();
-    fillBuilder();
+//    fillBuilder();
     fillGeometry();
     fillAssociation();
     fillGroups();
@@ -325,7 +325,7 @@ void DocumentModel::refresh()
 void DocumentModel::clearAll()
 {
     clearData();
-    clearBuilder();
+//    clearBuilder();
     clearGeometry();
     clearAssociation();
     clearGroups();
@@ -338,16 +338,20 @@ void DocumentModel::clearData()
     _edgeDirItem->removeRows(0, _edgeDirItem->rowCount() );
     _quadDirItem->removeRows(0, _quadDirItem->rowCount() );
     _hexaDirItem->removeRows(0, _hexaDirItem->rowCount() );
-}
-
 
-void DocumentModel::clearBuilder()
-{
     _vectorDirItem->removeRows(0, _vectorDirItem->rowCount() );
     _elementsDirItem->removeRows(0, _elementsDirItem->rowCount() );
     _crossElementsDirItem->removeRows(0, _crossElementsDirItem->rowCount() );
 }
 
+
+//void DocumentModel::clearBuilder()
+//{
+//    _vectorDirItem->removeRows(0, _vectorDirItem->rowCount() );
+//    _elementsDirItem->removeRows(0, _elementsDirItem->rowCount() );
+//    _crossElementsDirItem->removeRows(0, _crossElementsDirItem->rowCount() );
+//}
+
 void DocumentModel::clearGeometry()
 {
     _explicitShapesDirItem->removeRows(0, _explicitShapesDirItem->rowCount() );
@@ -415,53 +419,96 @@ void DocumentModel::fillData()
         hItem = new HexaItem(h, _entry);
         _hexaDirItem->appendRow(hItem);
     }
-}
 
+    // +++++ Builder ++++++++++++++++++++++++++++++
 
-void DocumentModel::fillBuilder()
-{
-    HEXA_NS::Vector *v     = NULL;
-    VectorItem      *vItem = NULL;
+    HEXA_NS::Vector *vec     = NULL;
+    VectorItem      *vecItem = NULL;
     int nbVector = _hexaDocument->countVector();
     for ( int i=0; i<nbVector; ++i ){
-        v = _hexaDocument->getVector(i);
-        vItem = new VectorItem(v);
-        _vectorDirItem->appendRow(vItem);
+        vec = _hexaDocument->getVector(i);
+        vecItem = new VectorItem(vec);
+        _vectorDirItem->appendRow(vecItem);
     }
 
     //******* A VOIR AVEC ALAIN POUR LE REMPLISSAGE DE L'ARBRE ELEMENTS ET CROSSELEMENTS (ByCylinder) *******/
     //******* OU SONT STOCKES LES ELEMENTS ET LES CROSSELEMENTS DANS LE DOCUMENT?                     ******/
 
     //   _cylinderDirItem
-//    HEXA_NS::Cylinder *c     = NULL;
-//    HEXA_NS::Elements* c = NULL;
-//    CylinderItem      *cItem = NULL;
-//    ElementsItem* cItem = NULL;
-//    int nbCylinder = _hexaDocument->countCylinder();
-//    for ( int i=0; i<nbCylinder; ++i ){
-//        c = _hexaDocument->getCylinder(i);
-//        cItem = new CylinderItem(c, _entry);
-//        cItem = new ElementsItem(c, _entry);
-//        _cylinderDirItem->appendRow(cItem);
-//        _elementsDirItem->appendRow(cItem);
-//    }
+    //    HEXA_NS::Cylinder *c     = NULL;
+    //    HEXA_NS::Elements* c = NULL;
+    //    CylinderItem      *cItem = NULL;
+    //    ElementsItem* cItem = NULL;
+    //    int nbCylinder = _hexaDocument->countCylinder();
+    //    for ( int i=0; i<nbCylinder; ++i ){
+    //        c = _hexaDocument->getCylinder(i);
+    //        cItem = new CylinderItem(c, _entry);
+    //        cItem = new ElementsItem(c, _entry);
+    //        _cylinderDirItem->appendRow(cItem);
+    //        _elementsDirItem->appendRow(cItem);
+    //    }
 
     //   _pipeDirItem
-//    HEXA_NS::Pipe *p     = NULL;
-//    HEXA_NS::Elements* p = NULL;
-//    PipeItem      *pItem = NULL;
-//    ElementsItem* pItem = NULL;
-//    int nbPipe = _hexaDocument->countPipe();
-//    for ( int i=0; i<nbPipe; ++i ){
-//        p = _hexaDocument->getPipe(i);
-//        pItem = new PipeItem(p);
-//        pItem = new ElementsItem(p, _entry);
-//        _pipeDirItem->appendRow(pItem);
-//        _elementsDirItem->appendRow(pItem);
-//    }
+    //    HEXA_NS::Pipe *p     = NULL;
+    //    HEXA_NS::Elements* p = NULL;
+    //    PipeItem      *pItem = NULL;
+    //    ElementsItem* pItem = NULL;
+    //    int nbPipe = _hexaDocument->countPipe();
+    //    for ( int i=0; i<nbPipe; ++i ){
+    //        p = _hexaDocument->getPipe(i);
+    //        pItem = new PipeItem(p);
+    //        pItem = new ElementsItem(p, _entry);
+    //        _pipeDirItem->appendRow(pItem);
+    //        _elementsDirItem->appendRow(pItem);
+    //    }
     //********************************************************************************************************
 }
 
+
+//void DocumentModel::fillBuilder()
+//{
+//    HEXA_NS::Vector *v     = NULL;
+//    VectorItem      *vItem = NULL;
+//    int nbVector = _hexaDocument->countVector();
+//    for ( int i=0; i<nbVector; ++i ){
+//        v = _hexaDocument->getVector(i);
+//        vItem = new VectorItem(v);
+//        _vectorDirItem->appendRow(vItem);
+//    }
+//
+//    //******* A VOIR AVEC ALAIN POUR LE REMPLISSAGE DE L'ARBRE ELEMENTS ET CROSSELEMENTS (ByCylinder) *******/
+//    //******* OU SONT STOCKES LES ELEMENTS ET LES CROSSELEMENTS DANS LE DOCUMENT?                     ******/
+//
+//    //   _cylinderDirItem
+////    HEXA_NS::Cylinder *c     = NULL;
+////    HEXA_NS::Elements* c = NULL;
+////    CylinderItem      *cItem = NULL;
+////    ElementsItem* cItem = NULL;
+////    int nbCylinder = _hexaDocument->countCylinder();
+////    for ( int i=0; i<nbCylinder; ++i ){
+////        c = _hexaDocument->getCylinder(i);
+////        cItem = new CylinderItem(c, _entry);
+////        cItem = new ElementsItem(c, _entry);
+////        _cylinderDirItem->appendRow(cItem);
+////        _elementsDirItem->appendRow(cItem);
+////    }
+//
+//    //   _pipeDirItem
+////    HEXA_NS::Pipe *p     = NULL;
+////    HEXA_NS::Elements* p = NULL;
+////    PipeItem      *pItem = NULL;
+////    ElementsItem* pItem = NULL;
+////    int nbPipe = _hexaDocument->countPipe();
+////    for ( int i=0; i<nbPipe; ++i ){
+////        p = _hexaDocument->getPipe(i);
+////        pItem = new PipeItem(p);
+////        pItem = new ElementsItem(p, _entry);
+////        _pipeDirItem->appendRow(pItem);
+////        _elementsDirItem->appendRow(pItem);
+////    }
+//    //********************************************************************************************************
+//}
+
 void DocumentModel::fillGeometry()
 {
     PatternGeomSelectionModel* pgsm = HEXABLOCKGUI::currentDocGView->getPatternGeomSelectionModel();
@@ -828,6 +875,7 @@ void DocumentModel::allowElementsSelectionOnly()
     _propagationItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled );
 }
 
+/**********************************************************
 void DocumentModel::allowCrossElementsSelectionOnly()
 {
     _vertexItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled );
@@ -843,6 +891,7 @@ void DocumentModel::allowCrossElementsSelectionOnly()
     _lawItemFlags   = Qt::ItemFlags( ~Qt::ItemIsEnabled );
     _propagationItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled );
 }
+ ********************************************************** */
 
 void DocumentModel::allowLawSelectionOnly()
 {
@@ -987,19 +1036,30 @@ QModelIndex DocumentModel::addEdgeVertices (const QModelIndex &i_v0, const QMode
     return edgeIndex;
 }
 
-QModelIndex DocumentModel::addEdgeVector ( const QModelIndex &i_v, const QModelIndex &i_vec )
+QModelIndex DocumentModel::addEdgeVector( const QModelIndex &i_v, const QModelIndex &i_vec )
 {
     QModelIndex edgeIndex;
 
-    HEXA_NS::Vertex* hv0 = getHexaPtr<HEXA_NS::Vertex*>(i_v);
+    HEXA_NS::Vertex* hv   = getHexaPtr<HEXA_NS::Vertex*>(i_v);
     HEXA_NS::Vector* hvec = getHexaPtr<HEXA_NS::Vector*>(i_vec);
 
-    HEXA_NS::Edge* he = _hexaDocument->addEdgeVector( hv0, hvec );
+    if (hv == NULL || hvec == NULL) return edgeIndex;
+
+    HEXA_NS::Edge* he = _hexaDocument->addEdgeVector( hv, hvec );
     if ( BadElement(he) ) return edgeIndex;
 
+    HEXA_NS::Vertex* hv2 = he->getAval(); //the new vertex resulting from the creation of the edge
+    if (hv2 == NULL) return edgeIndex;
+
+    //ADD the edge in the treeview
     EdgeItem* e = new EdgeItem(he, _entry);
-    _vectorDirItem->appendRow(e);
+    _edgeDirItem->appendRow(e);
     edgeIndex = e->index();
+
+    //The resulting Vertex
+    VertexItem* v = new VertexItem(hv2, _entry);
+    _vertexDirItem->appendRow(v);
+
     emit patternDataChanged();
 
     return edgeIndex;
@@ -1015,7 +1075,7 @@ QModelIndex DocumentModel::addQuadVertices( const QModelIndex &i_v0, const QMode
     HEXA_NS::Vertex* hv2 = getHexaPtr<HEXA_NS::Vertex*>(i_v2);
     HEXA_NS::Vertex* hv3 = getHexaPtr<HEXA_NS::Vertex*>(i_v3);
 
-    if ( hv0 && hv1 && hv2 && hv3 ){
+    if ( hv0 and hv1 and hv2 and hv3 ){
         HEXA_NS::Quad* hq = _hexaDocument->addQuadVertices( hv0, hv1, hv2, hv3 );
         if ( BadElement(hq) ) return quadIndex;
 
@@ -1038,7 +1098,7 @@ QModelIndex DocumentModel::addQuadEdges( const QModelIndex &e0, const QModelInde
     HEXA_NS::Edge* he2 = getHexaPtr<HEXA_NS::Edge*>(e2);
     HEXA_NS::Edge* he3 = getHexaPtr<HEXA_NS::Edge*>(e3);
 
-    if ( he0 && he1 && he2 && he3 ){
+    if ( he0 and he1 and he2 and he3 ){
 
         HEXA_NS::Quad* hq = _hexaDocument->addQuad( he0, he1, he2, he3 );
         if ( BadElement(hq) ) return quadIndex;
@@ -2125,9 +2185,10 @@ QString DocumentModel::documentEntry()
 PatternDataModel::PatternDataModel( QObject * parent ) :
                               QSortFilterProxyModel( parent )
 {
-    QString dataRegExp = QString("(%1|%2|%3|%4|%5|%6|%7|%8)").
-            arg(VERTEX_TREE).arg(EDGE_TREE).arg(QUAD_TREE).arg(HEXA_TREE).
-            arg(VERTEX_DIR_TREE).arg(EDGE_DIR_TREE).arg(QUAD_DIR_TREE).arg(HEXA_DIR_TREE);
+    QString dataRegExp = QString("(%1|%2|%3|%4|%5|%6|%7|%8|%9|%10|%11|%12)").
+            arg(VERTEX_TREE).arg(EDGE_TREE).arg(QUAD_TREE).arg(HEXA_TREE).arg(VECTOR_TREE).arg(ELEMENTS_TREE).
+            arg(VERTEX_DIR_TREE).arg(EDGE_DIR_TREE).arg(QUAD_DIR_TREE).arg(HEXA_DIR_TREE).arg(VECTOR_DIR_TREE).
+            arg(ELEMENTS_DIR_TREE);
 
     setFilterRole(HEXA_TREE_ROLE);
     setFilterRegExp ( QRegExp(dataRegExp) );
@@ -2188,7 +2249,7 @@ Qt::ItemFlags PatternDataModel::flags(const QModelIndex &index) const
 
 QVariant PatternDataModel::headerData ( int section, Qt::Orientation orientation, int role ) const
 {
-    if ( section == 0 && orientation == Qt::Horizontal && role == Qt::DisplayRole ){
+    if ( section == 0 and orientation == Qt::Horizontal and role == Qt::DisplayRole ){
         return QVariant( "Data" );
     } else {
         return QSortFilterProxyModel::headerData ( section, orientation, role );
@@ -2206,50 +2267,50 @@ QStandardItem* PatternDataModel::itemFromIndex ( const QModelIndex & index ) con
     return item;
 }
 
-PatternBuilderModel::PatternBuilderModel( QObject * parent ) :
-                              QSortFilterProxyModel( parent )
-{
-    QString builderRegExp =QString("(%1|%2|%3|%4|%5|%6)").
-            arg(VECTOR_TREE).arg(ELEMENTS_TREE).
-            arg(CROSSELEMENTS_TREE).arg(VECTOR_DIR_TREE).arg(ELEMENTS_DIR_TREE).arg(CROSSELEMENTS_DIR_TREE);
-
-    setFilterRole( HEXA_TREE_ROLE );
-    setFilterRegExp ( QRegExp( builderRegExp ) );
-}
-
-PatternBuilderModel::~PatternBuilderModel()
-{
-}
+//PatternBuilderModel::PatternBuilderModel( QObject * parent ) :
+//                              QSortFilterProxyModel( parent )
+//{
+//    QString builderRegExp =QString("(%1|%2|%3|%4|%5|%6)").
+//            arg(VECTOR_TREE).arg(ELEMENTS_TREE).
+//            arg(CROSSELEMENTS_TREE).arg(VECTOR_DIR_TREE).arg(ELEMENTS_DIR_TREE).arg(CROSSELEMENTS_DIR_TREE);
+//
+//    setFilterRole( HEXA_TREE_ROLE );
+//    setFilterRegExp ( QRegExp( builderRegExp ) );
+//}
 
-Qt::ItemFlags PatternBuilderModel::flags(const QModelIndex &index) const
-{
-    Qt::ItemFlags flags;
+//PatternBuilderModel::~PatternBuilderModel()
+//{
+//}
 
-    DocumentModel *m = dynamic_cast<DocumentModel *>( sourceModel() );
-    if ( m != NULL ){
-        flags = m->flags( mapToSource(index) );
-    }
-    return flags;
-}
+//Qt::ItemFlags PatternBuilderModel::flags(const QModelIndex &index) const
+//{
+//    Qt::ItemFlags flags;
+//
+//    DocumentModel *m = dynamic_cast<DocumentModel *>( sourceModel() );
+//    if ( m != NULL ){
+//        flags = m->flags( mapToSource(index) );
+//    }
+//    return flags;
+//}
 
-QVariant PatternBuilderModel::headerData ( int section, Qt::Orientation orientation, int role ) const
-{
-    if ( section == 0 && orientation == Qt::Horizontal && role == Qt::DisplayRole ){
-        return QVariant( "Builder" );
-    } else {
-        return QSortFilterProxyModel::headerData ( section, orientation, role );
-    }
-}
+//QVariant PatternBuilderModel::headerData ( int section, Qt::Orientation orientation, int role ) const
+//{
+//    if ( section == 0 and orientation == Qt::Horizontal and role == Qt::DisplayRole ){
+//        return QVariant( "Builder" );
+//    } else {
+//        return QSortFilterProxyModel::headerData ( section, orientation, role );
+//    }
+//}
 
-QStandardItem* PatternBuilderModel::itemFromIndex ( const QModelIndex & index ) const
-{
-    QStandardItem *item = NULL;
-    DocumentModel *m = dynamic_cast<DocumentModel *>( sourceModel() );
-    if ( m != NULL ){
-        item = m->itemFromIndex( mapToSource(index) );
-    }
-    return item;
-}
+//QStandardItem* PatternBuilderModel::itemFromIndex ( const QModelIndex & index ) const
+//{
+//    QStandardItem *item = NULL;
+//    DocumentModel *m = dynamic_cast<DocumentModel *>( sourceModel() );
+//    if ( m != NULL ){
+//        item = m->itemFromIndex( mapToSource(index) );
+//    }
+//    return item;
+//}
 
 //====================================================================
 //              PatternGeomModel
@@ -2284,7 +2345,7 @@ Qt::ItemFlags PatternGeomModel::flags(const QModelIndex &index) const
 
 QVariant PatternGeomModel::headerData ( int section, Qt::Orientation orientation, int role ) const
 {
-    if ( section == 0 && orientation == Qt::Horizontal && role == Qt::DisplayRole ){
+    if ( section == 0 and orientation == Qt::Horizontal and role == Qt::DisplayRole ){
         return QVariant( "Geometry" );
     } else {
         return QSortFilterProxyModel::headerData ( section, orientation, role );
@@ -2329,7 +2390,7 @@ Qt::ItemFlags AssociationsModel::flags(const QModelIndex &index) const
 
 QVariant AssociationsModel::headerData ( int section, Qt::Orientation orientation, int role ) const
 {
-    if ( section == 0 && orientation == Qt::Horizontal && role == Qt::DisplayRole ){
+    if ( section == 0 and orientation == Qt::Horizontal and role == Qt::DisplayRole ){
         return QVariant( "Associations" );
     } else {
         return QSortFilterProxyModel::headerData ( section, orientation, role );
@@ -2372,7 +2433,7 @@ Qt::ItemFlags GroupsModel::flags(const QModelIndex &index) const
 
 QVariant GroupsModel::headerData ( int section, Qt::Orientation orientation, int role ) const
 {
-    if ( section == 0 && orientation == Qt::Horizontal && role == Qt::DisplayRole ){
+    if ( section == 0 and orientation == Qt::Horizontal and role == Qt::DisplayRole ){
         return QVariant( "Groups" );
     } else {
         return QSortFilterProxyModel::headerData ( section, orientation, role );
@@ -2425,7 +2486,7 @@ Qt::ItemFlags MeshModel::flags(const QModelIndex &index) const
 
 QVariant MeshModel::headerData ( int section, Qt::Orientation orientation, int role ) const
 {
-    if ( section == 0 && orientation == Qt::Horizontal && role == Qt::DisplayRole ){
+    if ( section == 0 and orientation == Qt::Horizontal and role == Qt::DisplayRole ){
         return QVariant( "Mesh" );
     } else {
         return QSortFilterProxyModel::headerData ( section, orientation, role );
index 317f2010e9d8201a2dc458ba301b522b33ac8ebc..4c37cc9b7f663b85b1c4564ab8b139419a941ea7 100755 (executable)
@@ -21,8 +21,6 @@
 #define _HEXABLOCKGUI_DOCUMENTMODEL_HXX_
 
 
-#include "HEXABLOCKGUI_Export.hxx"
-
 #include <QTemporaryFile>
 #include <QStandardItemModel>
 #include <QSortFilterProxyModel>
@@ -37,7 +35,7 @@ namespace HEXABLOCK
 {
   namespace GUI
   {
-    class HEXABLOCK_EXPORT DocumentModel : public QStandardItemModel
+    class HexaExport DocumentModel : public QStandardItemModel
     {
       Q_OBJECT
     public:
@@ -77,14 +75,14 @@ namespace HEXABLOCK
 
       void clearAll();
       void clearData();
-      void clearBuilder();
+//      void clearBuilder();
       void clearGeometry();
       void clearAssociation();
       void clearGroups();
       void clearMesh();
 
       void fillData();
-      void fillBuilder();
+//      void fillBuilder();
       void fillGeometry();
       void fillAssociation();
       void fillGroups();
@@ -498,7 +496,7 @@ namespace HEXABLOCK
     };
 
 
-    class HEXABLOCK_EXPORT PatternDataModel : public QSortFilterProxyModel
+    class  PatternDataModel : public QSortFilterProxyModel
     {
     public:
       PatternDataModel( QObject * parent = 0 );
@@ -514,16 +512,16 @@ namespace HEXABLOCK
     };
 
 
-    class  PatternBuilderModel : public QSortFilterProxyModel
-    {
-    public:
-      PatternBuilderModel( QObject * parent = 0 );
-      virtual ~PatternBuilderModel();
-
-      virtual Qt::ItemFlags flags(const QModelIndex &index) const;
-      virtual QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const;
-      QStandardItem * itemFromIndex ( const QModelIndex & index ) const;
-    };
+//    class  PatternBuilderModel : public QSortFilterProxyModel
+//    {
+//    public:
+//      PatternBuilderModel( QObject * parent = 0 );
+//      virtual ~PatternBuilderModel();
+//
+//      virtual Qt::ItemFlags flags(const QModelIndex &index) const;
+//      virtual QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const;
+//      QStandardItem * itemFromIndex ( const QModelIndex & index ) const;
+//    };
 
     class PatternGeomModel : public QSortFilterProxyModel
     {
index 42106e06a47618b9ed8551931f8970e0c7a51fe4..126faf9ff12124993ce37b8df0c0bcd10407b581 100755 (executable)
@@ -176,37 +176,23 @@ QModelIndexList HexaBaseDialog::getIndexList(QListWidget* itemsList, bool mapToS
     return iItems;
 }
 
-// ============================================================= lockSizeToSizeHint
-void HexaBaseDialog::lockSizeToSizeHint()
-{
-    setMaximumHeight(sizeHint().height());
-    //   setMaximumWidth(sizeHint().width());
-    // setMinimumHeight(sizeHint().height());
-    // setMinimumWidth(sizeHint().width());
-}
-
-// ============================================================= unlockSizeModification
-void HexaBaseDialog::unlockSizeModification()
-{
-    setMaximumHeight(MAX_HEIGHT);
-    //   setMaximumWidth(MAX_WIDTH);
-    // setMinimumHeight(MIN_HEIGHT);
-    // setMinimumWidth(MIN_WIDTH);
-}
-
 // ============================================================= resetSizeAndShow
 void HexaBaseDialog::resetSizeAndShow(QDockWidget* parent)
 {
+    if (parent == NULL)
+        return;
+
     //force the dialog to fit its contain
-    lockSizeToSizeHint();
+//    setMinimumWidth(sizeHint().width());
 
     //set the dialog in the dockwidget
+    if (parent->widget())
+        parent->widget()->close();
     parent->setWidget(this);
     parent->setWindowTitle(windowTitle());
-    parent->setVisible(true);
-    show();
+    parent->show();
 
-    unlockSizeModification();
+//    setMinimumWidth(MIN_WIDTH);
 }
 
 QString HexaBaseDialog::getErrorMsg()
@@ -252,8 +238,8 @@ void HexaBaseDialog::connectDocumentGraphicView(VtkDocumentGraphicView* docGView
     //Connect the graphic view and its model to the dialog box
     connect( docGView->getPatternDataSelectionModel(), SIGNAL( selectionChanged ( const QItemSelection &, const QItemSelection &) ),
             this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ), Qt::UniqueConnection );
-    connect( docGView->getPatternBuilderSelectionModel(), SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection &) ),
-            this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ), Qt::UniqueConnection );
+//    connect( docGView->getPatternBuilderSelectionModel(), SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection &) ),
+//            this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ), Qt::UniqueConnection );
     connect( docGView->getPatternGeomSelectionModel(), SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection &) ),
             this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ), Qt::UniqueConnection );
     connect( docGView->getGroupsSelectionModel(), SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection &) ),
@@ -273,8 +259,8 @@ void HexaBaseDialog::disconnectDocumentGraphicView(VtkDocumentGraphicView* docGV
     disconnect(docGView->getPatternDataSelectionModel(), SIGNAL( selectionChanged ( const QItemSelection &, const QItemSelection &) ),
             this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ) );
 
-    disconnect(docGView->getPatternBuilderSelectionModel(), SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection &) ),
-            this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ) );
+//    disconnect(docGView->getPatternBuilderSelectionModel(), SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection &) ),
+//            this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ) );
 
     disconnect(docGView->getPatternGeomSelectionModel(), SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection &) ),
             this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ) );
@@ -380,7 +366,7 @@ void HexaBaseDialog::close()
 {
     //reset the data selection pattern (forget all selections of the current context)
     getPatternDataSelectionModel()->reset();
-    getPatternBuilderSelectionModel()->reset();
+//    getPatternBuilderSelectionModel()->reset();
     getPatternGeomSelectionModel()->reset();
 
     //Clear vtk selection
@@ -392,6 +378,8 @@ void HexaBaseDialog::close()
     //Close the dialog box
     if (parentWidget())
        parentWidget()->close();
+
+    getPatternDataSelectionModel()->setInfoMode(true);
 }
 
 // ============================================================== onHelpRequested
@@ -533,12 +521,12 @@ QItemSelectionModel* HexaBaseDialog::_getSelector( QObject* obj )
     case VERTEX_TREE:
     case EDGE_TREE:
     case QUAD_TREE:
-    case HEXA_TREE: selector = getPatternDataSelectionModel(); break;
-    case VECTOR_TREE:
+    case HEXA_TREE:
+    case VECTOR_TREE: selector = getPatternDataSelectionModel(); break;
 //    case CYLINDER_TREE:
 //    case PIPE_TREE:
-    case ELEMENTS_TREE:
-    case CROSSELEMENTS_TREE: selector = getPatternBuilderSelectionModel(); break;
+//    case ELEMENTS_TREE:
+//    case CROSSELEMENTS_TREE: selector = getPatternBuilderSelectionModel(); break;
     case GEOMPOINT_TREE:
     case GEOMEDGE_TREE:
     case GEOMFACE_TREE: selector = getPatternGeomSelectionModel(); break;
@@ -1209,8 +1197,8 @@ bool EdgeDialog::apply(QModelIndex& result)
 
     if ( !getDocumentModel() ) return false;
     const PatternDataModel*    patternDataModel = getPatternDataModel();
-    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
-    if ( !patternDataModel || !patternBuilderModel ) return false;
+//    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+    if ( !patternDataModel /*|| !patternBuilderModel*/ ) return false;
 
     QModelIndex iEdge;
 
@@ -1222,7 +1210,8 @@ bool EdgeDialog::apply(QModelIndex& result)
         }
     } else if ( rb1->isChecked() ){
         QModelIndex ivex = patternDataModel->mapToSource( _index[vex_le_rb1] );
-        QModelIndex ivec = patternBuilderModel->mapToSource( _index[vec_le_rb1] );
+        QModelIndex ivec = patternDataModel->mapToSource( _index[vec_le_rb1] );
+//        QModelIndex ivec = patternBuilderModel->mapToSource( _index[vec_le_rb1] );
         if ( ivex.isValid() && ivec.isValid() ){
             iEdge = getDocumentModel()->addEdgeVector( ivex, ivec );
         }
@@ -1499,6 +1488,8 @@ HexaDialog::HexaDialog( QWidget* parent, Mode editmode, Qt::WindowFlags f ):
 
     if  ( editmode == INFO_MODE ){
         setWindowTitle( tr("Hexahedron Information") );
+        quads_lw->viewport()->setAttribute( Qt::WA_TransparentForMouseEvents );
+        vertices_lw->viewport()->setAttribute( Qt::WA_TransparentForMouseEvents );
     }
 }
 
@@ -1521,7 +1512,6 @@ void HexaDialog::_initInputWidget( Mode editmode )
     vertices_lw->setProperty( "HexaWidgetType",  QVariant::fromValue(VERTEX_TREE) );
     vertices_lw->installEventFilter(this);
 
-
     if ( editmode != INFO_MODE ) {
         // delete item from listwidget
         QShortcut* delQuadShortcut   = new QShortcut( QKeySequence(Qt::Key_X), quads_lw );
@@ -1728,9 +1718,9 @@ bool HexaDialog::apply(QModelIndex& result)
     }
 
     nbItems = iElts.count();
-    if ( quads_rb->isChecked() && (nbItems>=2 && nbItems<=6) ){ // build from quads iElts.count() should be between [2,6]
+    if ( quads_rb->isChecked() and (nbItems>=2 and nbItems<=6) ){ // build from quads iElts.count() should be between [2,6]
         iHexa = getDocumentModel()->addHexaQuads( iElts );
-    } else if ( vertices_rb->isChecked() && nbItems== 8 ){ // build from vertices
+    } else if ( vertices_rb->isChecked() and nbItems== 8 ){ // build from vertices
         iHexa = getDocumentModel()->addHexaVertices( iElts[0], iElts[1], iElts[2], iElts[3],
                 iElts[4], iElts[5], iElts[6], iElts[7] );
     }
@@ -1851,8 +1841,8 @@ bool VectorDialog::apply(QModelIndex& result)
 
     if ( !getDocumentModel() ) return false;
     const PatternDataModel*    patternDataModel    = getPatternDataModel();
-    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
-    if ( !patternDataModel || !patternBuilderModel) return false;
+//    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+    if ( !patternDataModel /*|| !patternBuilderModel*/) return false;
 
     QModelIndex iVector;
 
@@ -1888,7 +1878,8 @@ bool VectorDialog::apply(QModelIndex& result)
         updateDefaultName(name_le, _value->getType());
 
     // to select/highlight result
-    result = patternBuilderModel->mapFromSource(iVector);
+    result = patternDataModel->mapFromSource(iVector);
+//    result = patternBuilderModel->mapFromSource(iVector);
 
     return true;
 }
@@ -2061,7 +2052,7 @@ bool MakeGridDialog::apply(QModelIndex& result)
 
     DocumentModel* docModel = getDocumentModel();
     PatternDataModel*    patternDataModel    = getPatternDataModel();
-    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+//    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
 
     QModelIndex iNewElts;
     if ( rb0->isChecked() )
@@ -2074,9 +2065,12 @@ bool MakeGridDialog::apply(QModelIndex& result)
     else if ( rb1->isChecked() )
     {
         QModelIndex icenter = patternDataModel->mapToSource( _index[center_le] );
-        QModelIndex iaxis   = patternBuilderModel->mapToSource( _index[axis_le] );
-        QModelIndex ibase   = patternBuilderModel->mapToSource( _index[base_le] );
-        QModelIndex ivec    = patternBuilderModel->mapToSource( _index[vec_le] );
+        QModelIndex iaxis   = patternDataModel->mapToSource( _index[axis_le] );
+        QModelIndex ibase   = patternDataModel->mapToSource( _index[base_le] );
+        QModelIndex ivec    = patternDataModel->mapToSource( _index[vec_le] );
+//        QModelIndex iaxis   = patternBuilderModel->mapToSource( _index[axis_le] );
+//        QModelIndex ibase   = patternBuilderModel->mapToSource( _index[base_le] );
+//        QModelIndex ivec    = patternBuilderModel->mapToSource( _index[vec_le] );
 
         if ( icenter.isValid() && iaxis.isValid() && ibase.isValid() && ivec.isValid() )
         {
@@ -2094,9 +2088,12 @@ bool MakeGridDialog::apply(QModelIndex& result)
     } else if ( rb2->isChecked() )
     {
         QModelIndex icenter = patternDataModel->mapToSource( _index[center_le] );
-        QModelIndex iaxis   = patternBuilderModel->mapToSource( _index[axis_le] );
-        QModelIndex ibase   = patternBuilderModel->mapToSource( _index[base_le] );
-        QModelIndex ivec    = patternBuilderModel->mapToSource( _index[vec_le] );
+        QModelIndex iaxis   = patternDataModel->mapToSource( _index[axis_le] );
+        QModelIndex ibase   = patternDataModel->mapToSource( _index[base_le] );
+        QModelIndex ivec    = patternDataModel->mapToSource( _index[vec_le] );
+//        QModelIndex iaxis   = patternBuilderModel->mapToSource( _index[axis_le] );
+//        QModelIndex ibase   = patternBuilderModel->mapToSource( _index[base_le] );
+//        QModelIndex ivec    = patternBuilderModel->mapToSource( _index[vec_le] );
 
         if ( icenter.isValid() && iaxis.isValid() && ibase.isValid() && ivec.isValid() )
         {
@@ -2146,7 +2143,8 @@ bool MakeGridDialog::apply(QModelIndex& result)
         return false;
     }
 
-    result = patternBuilderModel->mapFromSource( iNewElts );
+    result = patternDataModel->mapFromSource(iNewElts);
+//    result = patternBuilderModel->mapFromSource( iNewElts );
 
     return true;
 }
@@ -2303,11 +2301,13 @@ bool MakeCylinderDialog::apply(QModelIndex& result)
 
     DocumentModel* docModel = getDocumentModel();
     PatternDataModel* patternDataModel = getPatternDataModel();
-    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+//    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
 
     QModelIndex iorigin = patternDataModel->mapToSource( _index[origin_le] );
-    QModelIndex iaxis = patternBuilderModel->mapToSource( _index[axis_le] );
-    QModelIndex ibase = patternBuilderModel->mapToSource( _index[base_le] );
+    QModelIndex iaxis = patternDataModel->mapToSource( _index[axis_le] );
+    QModelIndex ibase = patternDataModel->mapToSource( _index[base_le] );
+//    QModelIndex iaxis = patternBuilderModel->mapToSource( _index[axis_le] );
+//    QModelIndex ibase = patternBuilderModel->mapToSource( _index[base_le] );
     double rext = ext_radius_spb->value();
     double rint = int_radius_spb->value();
     double angle = angle_spb->value();
@@ -2371,7 +2371,8 @@ bool MakeCylinderDialog::apply(QModelIndex& result)
         return false;
     }
 
-    result = patternBuilderModel->mapFromSource(iElts);
+    result = patternDataModel->mapFromSource(iElts);
+//    result = patternBuilderModel->mapFromSource(iElts);
 
     return true;
 }
@@ -2530,11 +2531,13 @@ bool MakePipeDialog::apply(QModelIndex& result)
 
     DocumentModel* docModel = getDocumentModel();
     PatternDataModel* patternDataModel = getPatternDataModel();
-    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+//    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
 
     QModelIndex iorigin = patternDataModel->mapToSource( _index[origin_le] );
-    QModelIndex iaxis  = patternBuilderModel->mapToSource( _index[axis_le] );
-    QModelIndex ibase = patternBuilderModel->mapToSource( _index[base_le] );
+    QModelIndex iaxis = patternDataModel->mapToSource( _index[axis_le] );
+    QModelIndex ibase = patternDataModel->mapToSource( _index[base_le] );
+//    QModelIndex iaxis  = patternBuilderModel->mapToSource( _index[axis_le] );
+//    QModelIndex ibase = patternBuilderModel->mapToSource( _index[base_le] );
     double rext = ext_radius_spb->value();
     double rint = int_radius_spb->value();
     double angle = angle_spb->value();
@@ -2598,7 +2601,8 @@ bool MakePipeDialog::apply(QModelIndex& result)
     }
 
     // to select/highlight result
-    result = patternBuilderModel->mapFromSource(iElts);
+    result = patternDataModel->mapFromSource(iElts);
+//    result = patternBuilderModel->mapFromSource(iElts);
 
     return true;
 }
@@ -2664,13 +2668,15 @@ bool MakeCylindersDialog::apply(QModelIndex& result)
 
     DocumentModel* docModel = getDocumentModel();
     PatternDataModel* patternDataModel = getPatternDataModel();
-    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+//    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
 
     QModelIndex iElts;
     QModelIndex icenter = patternDataModel->mapToSource( _index[center_le] );
     QModelIndex icenter2 = patternDataModel->mapToSource( _index[center2_le] );
-    QModelIndex idir = patternBuilderModel->mapToSource( _index[direction_le] );
-    QModelIndex idir2 = patternBuilderModel->mapToSource( _index[direction2_le] );
+    QModelIndex idir = patternDataModel->mapToSource( _index[direction_le] );
+    QModelIndex idir2 = patternDataModel->mapToSource( _index[direction2_le] );
+//    QModelIndex idir = patternBuilderModel->mapToSource( _index[direction_le] );
+//    QModelIndex idir2 = patternBuilderModel->mapToSource( _index[direction2_le] );
 
     if ( icenter.isValid() && icenter2.isValid() && idir.isValid() && idir2.isValid()){
         double r1 = radius_spb->value();
@@ -2685,7 +2691,8 @@ bool MakeCylindersDialog::apply(QModelIndex& result)
         return false;
     }
 
-    result = patternBuilderModel->mapFromSource(iElts);
+    result = patternDataModel->mapFromSource(iElts);
+//    result = patternBuilderModel->mapFromSource(iElts);
 
     return true;
 }
@@ -2752,12 +2759,14 @@ bool MakePipesDialog::apply(QModelIndex& result)
 
     DocumentModel* docModel = getDocumentModel();
     PatternDataModel* patternDataModel = getPatternDataModel();
-    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+//    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
 
     QModelIndex iorigin1 = patternDataModel->mapToSource( _index[origin_le] );
     QModelIndex iorigin2 = patternDataModel->mapToSource( _index[origin2_le] );
-    QModelIndex idir1 = patternBuilderModel->mapToSource( _index[dir_le] );
-    QModelIndex idir2 = patternBuilderModel->mapToSource( _index[dir2_le] );
+    QModelIndex idir1 = patternDataModel->mapToSource( _index[dir_le] );
+    QModelIndex idir2 = patternDataModel->mapToSource( _index[dir2_le] );
+//    QModelIndex idir1 = patternBuilderModel->mapToSource( _index[dir_le] );
+//    QModelIndex idir2 = patternBuilderModel->mapToSource( _index[dir2_le] );
     double rint1 = int_radius_spb->value();
     double rext1 = ext_radius_spb->value();
     double height1 = height_spb->value();
@@ -2776,7 +2785,8 @@ bool MakePipesDialog::apply(QModelIndex& result)
         return false;
     }
 
-    result = patternBuilderModel->mapFromSource(iElts);
+    result = patternDataModel->mapFromSource(iElts);
+//    result = patternBuilderModel->mapFromSource(iElts);
 
     return true;
 }
@@ -2980,10 +2990,12 @@ bool PrismQuadDialog::apply(QModelIndex& result)
     _currentObj = NULL;
 
     DocumentModel* docModel = getDocumentModel();
-    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+    PatternDataModel* patternDataModel = getPatternDataModel();
+//    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
 
     QModelIndexList iquads = getIndexList(quads_lw);
-    QModelIndex iaxis  = patternBuilderModel->mapToSource( _index[axis_le] );
+    QModelIndex iaxis = patternDataModel->mapToSource( _index[axis_le] );
+//    QModelIndex iaxis  = patternBuilderModel->mapToSource( _index[axis_le] );
     double length = length_spb->value();
     int nb = nb_spb->value();
 
@@ -3023,7 +3035,8 @@ bool PrismQuadDialog::apply(QModelIndex& result)
         return false;
     }
 
-    result = patternBuilderModel->mapFromSource(iElts);
+    result = patternDataModel->mapFromSource(iElts);
+//    result = patternBuilderModel->mapFromSource(iElts);
 
     return true;
 }
@@ -3185,7 +3198,7 @@ bool JoinQuadDialog::apply(QModelIndex& result)
 
     DocumentModel* docModel = getDocumentModel();
     PatternDataModel*    patternDataModel    = getPatternDataModel();
-    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+//    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
 
     QModelIndexList iquads;
     QModelIndex     iquad;
@@ -3233,7 +3246,8 @@ bool JoinQuadDialog::apply(QModelIndex& result)
         SUIT_MessageBox::critical( this, tr( "ERR_ERROR" ), tr( "CANNOT JOIN QUAD(S)" ) + "\n" + getErrorMsg() );
         return false;
     }
-    result = patternBuilderModel->mapFromSource(iElts);
+    result = patternDataModel->mapFromSource(iElts);
+//    result = patternBuilderModel->mapFromSource(iElts);
 
     return true;
 }
@@ -3643,8 +3657,8 @@ bool DisconnectDialog::apply(QModelIndex& result)
     _currentObj = NULL;
     if (getDocumentModel() == NULL) return false;
     const PatternDataModel*    patternDataModel    = getPatternDataModel();
-    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
-    if ( !patternDataModel || !patternBuilderModel)    return false;
+//    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+    if ( !patternDataModel /*|| !patternBuilderModel*/)    return false;
 
     QModelIndex iElts;
 
@@ -3704,7 +3718,8 @@ bool DisconnectDialog::apply(QModelIndex& result)
         return false;
     }
 
-    result = patternBuilderModel->mapFromSource(iElts);
+    result = patternDataModel->mapFromSource(iElts);
+//    result = patternBuilderModel->mapFromSource(iElts);
 
     return true;
 }
@@ -3795,7 +3810,7 @@ bool CutEdgeDialog::apply(QModelIndex& result)
 
     DocumentModel* docModel = getDocumentModel();
     PatternDataModel*    patternDataModel    = getPatternDataModel();
-    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+//    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
 
     QModelIndex iElts;
     QModelIndex iedge = patternDataModel->mapToSource( _index[e_le] );
@@ -3824,7 +3839,8 @@ bool CutEdgeDialog::apply(QModelIndex& result)
         return false;
     }
 
-    result = patternBuilderModel->mapFromSource(iElts);
+    result = patternDataModel->mapFromSource(iElts);
+//    result = patternBuilderModel->mapFromSource(iElts);
 
     //Update the line edit
     QVariant invalid;
@@ -3951,21 +3967,24 @@ bool MakeTransformationDialog::apply(QModelIndex& result)
 
     if (getDocumentModel() == NULL) return false;
     const PatternDataModel*    patternDataModel    = getPatternDataModel();
-    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
-    if ( !patternDataModel || !patternBuilderModel)    return false;
+//    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+    if ( !patternDataModel /*|| !patternBuilderModel*/)    return false;
 
     QModelIndex iNewElts;
 
     if ( rb0->isChecked() ){
-        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb0] );
-        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb0] );
+        QModelIndex ielts = patternDataModel->mapToSource( _index[elts_le_rb0] );
+        QModelIndex ivec = patternDataModel->mapToSource( _index[vec_le_rb0] );
+//        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb0] );
+//        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb0] );
 
         if ( ielts.isValid()
                 && ivec.isValid() )
             iNewElts = getDocumentModel()->makeTranslation( ielts, ivec );
 
     } else if ( rb1->isChecked() ){
-        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb1] );
+//        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb1] );
+        QModelIndex ielts = patternDataModel->mapToSource( _index[elts_le_rb1] );
         QModelIndex  ivex = patternDataModel->mapToSource( _index[vex_le_rb1] );
         double          k = k_spb->value();
 
@@ -3974,9 +3993,11 @@ bool MakeTransformationDialog::apply(QModelIndex& result)
             iNewElts = getDocumentModel()->makeScale( ielts, ivex, k );
 
     } else if ( rb2->isChecked() ){
-        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb2] );
+//        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb2] );
+        QModelIndex ielts = patternDataModel->mapToSource( _index[elts_le_rb2] );
         QModelIndex  ivex = patternDataModel->mapToSource( _index[vex_le_rb2] );
-        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb2] );
+//        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb2] );
+        QModelIndex ivec = patternDataModel->mapToSource( _index[vec_le_rb2] );
         double      angle = angle_spb->value();
 
         if ( ielts.isValid()
@@ -3990,7 +4011,8 @@ bool MakeTransformationDialog::apply(QModelIndex& result)
         return false;
     }
 
-    result = patternBuilderModel->mapFromSource(iNewElts);
+    result = patternDataModel->mapFromSource(iNewElts);
+//    result = patternBuilderModel->mapFromSource(iNewElts);
 
     return true;
 }
@@ -4110,13 +4132,14 @@ bool MakeSymmetryDialog::apply(QModelIndex& result)
     _currentObj = NULL;
     if (getDocumentModel() == NULL) return false;
     const PatternDataModel*    patternDataModel    = getPatternDataModel();
-    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
-    if ( !patternDataModel || !patternBuilderModel)    return false;
+//    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+    if ( !patternDataModel /*|| !patternBuilderModel*/)    return false;
 
     QModelIndex iNewElts;
 
     if ( rb0->isChecked() ){
-        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb0] );
+//        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb0] );
+        QModelIndex ielts = patternDataModel->mapToSource( _index[elts_le_rb0] );
         QModelIndex  ivex = patternDataModel->mapToSource( _index[vex_le_rb0] );
 
         if ( ielts.isValid()
@@ -4125,9 +4148,11 @@ bool MakeSymmetryDialog::apply(QModelIndex& result)
 
 
     } else if ( rb1->isChecked() ){
-        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb1] );
+//        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb1] );
+        QModelIndex ielts = patternDataModel->mapToSource( _index[elts_le_rb1] );
         QModelIndex  ivex = patternDataModel->mapToSource( _index[vex_le_rb1] );
-        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb1] );
+//        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb1] );
+        QModelIndex ivec = patternDataModel->mapToSource( _index[vec_le_rb1] );
 
         if ( ielts.isValid()
                 && ivex.isValid()
@@ -4135,9 +4160,11 @@ bool MakeSymmetryDialog::apply(QModelIndex& result)
             iNewElts = getDocumentModel()->makeSymmetryLine( ielts, ivex, ivec );
 
     } else if ( rb2->isChecked() ){
-        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb2] );
+//        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb2] );
+        QModelIndex ielts = patternDataModel->mapToSource(_index[elts_le_rb2]);
         QModelIndex  ivex = patternDataModel->mapToSource( _index[vex_le_rb2] );
-        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb2] );
+//        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb2] );
+        QModelIndex ivec = patternDataModel->mapToSource(_index[vec_le_rb2]);
 
         if ( ielts.isValid()
                 && ivex.isValid()
@@ -4150,7 +4177,8 @@ bool MakeSymmetryDialog::apply(QModelIndex& result)
         return false;
     }
 
-    result = patternBuilderModel->mapFromSource(iNewElts);
+//    result = patternBuilderModel->mapFromSource(iNewElts);
+    result = patternDataModel->mapFromSource(iNewElts);
 
     return true;
 }
@@ -4263,21 +4291,24 @@ bool PerformTransformationDialog::apply(QModelIndex& result)
 
     if (getDocumentModel() == NULL) return false;
     const PatternDataModel*    patternDataModel    = getPatternDataModel();
-    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
-    if ( !patternDataModel || !patternBuilderModel)    return false;
+//    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+    if ( !patternDataModel /*|| !patternBuilderModel*/)    return false;
 
     bool performed = false;
 
     if ( rb0->isChecked() ){
-        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb0] );
-        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb0] );
+//        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb0] );
+        QModelIndex ielts = patternDataModel->mapToSource(_index[elts_le_rb0]);
+//        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb0] );
+        QModelIndex ivec = patternDataModel->mapToSource(_index[vec_le_rb0]);
 
         if ( ielts.isValid()
                 && ivec.isValid() )
             performed = getDocumentModel()->performTranslation( ielts, ivec );
 
     } else if ( rb1->isChecked() ){
-        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb1] );
+//        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb1] );
+        QModelIndex ielts = patternDataModel->mapToSource(_index[elts_le_rb1]);
         QModelIndex  ivex = patternDataModel->mapToSource( _index[vex_le_rb1] );
         double          k = k_spb->value();
 
@@ -4286,9 +4317,11 @@ bool PerformTransformationDialog::apply(QModelIndex& result)
             performed = getDocumentModel()->performScale( ielts, ivex, k );
 
     } else if ( rb2->isChecked() ){
-        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb2] );
+//        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb2] );
+        QModelIndex ielts = patternDataModel->mapToSource(_index[elts_le_rb2]);
         QModelIndex  ivex = patternDataModel->mapToSource( _index[vex_le_rb2] );
-        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb2] );
+//        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb2] );
+        QModelIndex ivec = patternDataModel->mapToSource(_index[vec_le_rb2]);
         double      angle = angle_spb->value();
 
         if ( ielts.isValid()
@@ -4419,13 +4452,14 @@ bool PerformSymmetryDialog::apply(QModelIndex& result)
 
     if (getDocumentModel() == NULL) return false;
     const PatternDataModel*    patternDataModel    = getPatternDataModel();
-    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
-    if ( !patternDataModel || !patternBuilderModel)    return false;
+//    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+    if ( !patternDataModel /*|| !patternBuilderModel*/)    return false;
 
     bool performed = false;
 
     if ( rb0->isChecked() ){
-        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb0] );
+//        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb0] );
+        QModelIndex ielts = patternDataModel->mapToSource(_index[elts_le_rb0]);
         QModelIndex  ivex = patternDataModel->mapToSource( _index[vex_le_rb0] );
 
         if ( ielts.isValid()
@@ -4433,9 +4467,11 @@ bool PerformSymmetryDialog::apply(QModelIndex& result)
             performed = getDocumentModel()->performSymmetryPoint( ielts, ivex );
 
     } else if ( rb1->isChecked() ){
-        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb1] );
+//        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb1] );
+        QModelIndex ielts = patternDataModel->mapToSource(_index[elts_le_rb1]);
         QModelIndex  ivex = patternDataModel->mapToSource( _index[vex_le_rb1] );
-        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb1] );
+//        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb1] );
+        QModelIndex ivec = patternDataModel->mapToSource(_index[vec_le_rb1]);
 
         if ( ielts.isValid()
                 && ivex.isValid()
@@ -4443,9 +4479,11 @@ bool PerformSymmetryDialog::apply(QModelIndex& result)
             performed = getDocumentModel()->performSymmetryLine( ielts, ivex, ivec );
 
     } else if ( rb2->isChecked() ){
-        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb2] );
+//        QModelIndex ielts = patternBuilderModel->mapToSource( _index[elts_le_rb2] );
+        QModelIndex ielts = patternDataModel->mapToSource(_index[elts_le_rb2]);
         QModelIndex  ivex = patternDataModel->mapToSource( _index[vex_le_rb2] );
-        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb2] );
+//        QModelIndex  ivec = patternBuilderModel->mapToSource( _index[vec_le_rb2] );
+        QModelIndex ivec = patternDataModel->mapToSource(_index[vec_le_rb2]);
 
         if ( ielts.isValid()
                 && ivex.isValid()
@@ -5055,6 +5093,7 @@ void GroupDialog::_initInputWidget( Mode editmode )
     {
         name_le->setReadOnly(true);
         kind_cb->setEnabled(false);
+        eltBase_lw->viewport()->setAttribute( Qt::WA_TransparentForMouseEvents );
     }
 
     connect(eltBase_lw,    SIGNAL(itemSelectionChanged()), this, SLOT(selectElementOfModel()), Qt::UniqueConnection);
@@ -5544,36 +5583,7 @@ HexaBaseDialog(parent, editmode, f)
 {
     _helpFileName = "gui_mesh.html";
     setWindowTitle( tr("Compute mesh") );
-    QVBoxLayout* layout = new QVBoxLayout;
-    setLayout(layout);
-
-    QHBoxLayout* up   = new QHBoxLayout;
-    QHBoxLayout* down = new QHBoxLayout;
-
-    layout->addLayout(up);
-    layout->addLayout(down);
-
-    QVBoxLayout* vlg = new QVBoxLayout;
-    QVBoxLayout* vld = new QVBoxLayout;
-
-    up->addLayout(vlg);
-    up->addLayout(vld);
-
-    vlg->addWidget(new QLabel("Name"));
-    vlg->addWidget(new QLabel("Dimension"));
-    vlg->addWidget(new QLabel("Container"));
-
-    _name = new QLineEdit("Mesh");
-    _dim  = new QSpinBox();
-    _fact = new QLineEdit("FactoryServer");
-
-    vld->addWidget(_name);
-    vld->addWidget(_dim);
-    vld->addWidget(_fact);
-
-    _dim->setRange(1, 3);
-    _dim->setValue(3);
-
+    setupUi( this );
     _initWidget(editmode);
 }
 
@@ -5762,8 +5772,8 @@ bool ReplaceHexaDialog::apply(QModelIndex& result)
 
     if ( !getDocumentModel() ) return false;
     const PatternDataModel* patternDataModel = getPatternDataModel();
-    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
-    if ( !patternDataModel || !patternBuilderModel)    return false;
+//    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+    if ( !patternDataModel /*|| !patternBuilderModel*/)    return false;
 
     QModelIndex ielts; //result
 
@@ -5799,7 +5809,8 @@ bool ReplaceHexaDialog::apply(QModelIndex& result)
         return false;
     }
     _value  = ielts.model()->data(ielts, HEXA_DATA_ROLE).value<HEXA_NS::Elements*>();
-    result = patternBuilderModel->mapFromSource(ielts);
+//    result = patternBuilderModel->mapFromSource(ielts);
+    result = patternDataModel->mapFromSource(ielts);
 
     //update the list (indexes)
     for ( int r = 0; r < nbQuads; ++r ){
@@ -5946,7 +5957,7 @@ bool QuadRevolutionDialog::apply(QModelIndex& result)
 
     DocumentModel* docModel = getDocumentModel();
     PatternDataModel* patternDataModel = getPatternDataModel();
-    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+//    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
 
     QListWidgetItem* item = NULL;
 
@@ -5961,7 +5972,8 @@ bool QuadRevolutionDialog::apply(QModelIndex& result)
     }
 
     QModelIndex icenter = patternDataModel->mapToSource( _index[center_le] );
-    QModelIndex iaxis   = patternBuilderModel->mapToSource( _index[axis_le] );
+    QModelIndex iaxis = patternDataModel->mapToSource(_index[axis_le]);
+//    QModelIndex iaxis   = patternBuilderModel->mapToSource( _index[axis_le] );
     int angle = angle_spb->value();
     int nbre = nbre_spb->value();
 
@@ -5993,7 +6005,8 @@ bool QuadRevolutionDialog::apply(QModelIndex& result)
         return false;
     }
     _value  = iElts.model()->data(iElts, HEXA_DATA_ROLE).value<HEXA_NS::Elements*>();
-    result = patternBuilderModel->mapFromSource(iElts);
+    result = patternDataModel->mapFromSource(iElts);
+//    result = patternBuilderModel->mapFromSource(iElts);
 
     return true;
 }
@@ -6208,13 +6221,15 @@ bool MakeHemiSphereDialog::apply(QModelIndex& result)
 
     DocumentModel* docModel = getDocumentModel();
     PatternDataModel* patternDataModel = getPatternDataModel();
-    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
+//    PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
 
     QModelIndex iElts;
     QModelIndex icenter = patternDataModel->mapToSource( _index[center_le] );
     QModelIndex ivplan  = patternDataModel->mapToSource( _index[vplan_le] );
-    QModelIndex ivecx   = patternBuilderModel->mapToSource( _index[base_le] );
-    QModelIndex ivecz   = patternBuilderModel->mapToSource( _index[hole_axis_le] );
+    QModelIndex ivecx = patternDataModel->mapToSource(_index[base_le]);
+    QModelIndex ivecz = patternDataModel->mapToSource(_index[hole_axis_le]);
+//    QModelIndex ivecx   = patternBuilderModel->mapToSource( _index[base_le] );
+//    QModelIndex ivecz   = patternBuilderModel->mapToSource( _index[hole_axis_le] );
 
     double radhole  = hole_rad_spb->value();
     double radext   = sphere_radext_spb->value();
@@ -6334,7 +6349,8 @@ bool MakeHemiSphereDialog::apply(QModelIndex& result)
         return false;
     }
     _value  = iElts.model()->data(iElts, HEXA_DATA_ROLE).value<HEXA_NS::Elements*>();
-    result = patternBuilderModel->mapFromSource(iElts);
+    result = patternDataModel->mapFromSource(iElts);
+//    result = patternBuilderModel->mapFromSource(iElts);
 
     return true;
 }
@@ -6479,308 +6495,3 @@ bool AddShapeDialog::apply(QModelIndex& result)
 
     return true;
 }
-
-
-
-
-
-
-//*****************************  OBSOLETE: A SUPPRIMER !!!!  ************************************//
-
-// ============================================================== Constructeur
-CylinderDialog::CylinderDialog( QWidget* parent, Mode editmode, Qt::WindowFlags f )
-: HexaBaseDialog(parent, editmode, f),
-  _value(0)
-{
-    _helpFileName = "gui_cyl.html";
-    setupUi( this );
-    _initWidget(editmode);
-
-    if ( editmode == INFO_MODE ){
-        setWindowTitle( tr("Cylinder Information") );
-    }
-}
-
-// ============================================================== Destructeur
-CylinderDialog::~CylinderDialog()
-{
-}
-
-// ============================================================== _initInputWidget
-void CylinderDialog::_initInputWidget( Mode editmode )
-{
-    QRegExp rx("");
-    QValidator *validator = new QRegExpValidator(rx, this);
-
-    installEventFilter(this);
-    name_le->installEventFilter(this);
-
-    vex_le->setProperty( "HexaWidgetType",  QVariant::fromValue(VERTEX_TREE) );
-    vec_le->setProperty( "HexaWidgetType",  QVariant::fromValue(VECTOR_TREE) );
-
-    vex_le->setValidator( validator );
-    vec_le->setValidator( validator );
-
-    vex_le->installEventFilter(this);
-    vec_le->installEventFilter(this);
-
-    vex_le->setReadOnly(true);
-    vec_le->setReadOnly(true);
-
-    if (editmode == INFO_MODE)
-    {
-        name_le->setReadOnly(true);
-        r_spb->setReadOnly(true);
-        h_spb->setReadOnly(true);
-    }
-
-}
-
-// ============================================================== clear
-void CylinderDialog::clear()
-{
-    name_le->clear();
-
-    vex_le->clear();
-    modelUnregister(vex_le);
-
-    vec_le->clear();
-    modelUnregister(vec_le);
-
-    r_spb->clear();
-    h_spb->clear();
-
-    modelUnregister(this);
-
-}
-
-// ============================================================== setValue
-void CylinderDialog::setValue(HEXA_NS::Cylinder* c)
-{
-    HEXA_NS::Vertex* base      = c->getBase();
-    HEXA_NS::Vector* direction = c->getDirection();
-    double  r = c->getRadius();
-    double  h = c->getHeight();
-
-    name_le->setText( c->getName() );
-    vex_le->setText( base->getName() );
-    vec_le->setText( direction->getName() );
-    r_spb->setValue(r);
-    h_spb->setValue(h);
-
-    if ( getPatternDataSelectionModel() ){
-        QModelIndex iCyl       = getPatternDataSelectionModel()->indexBy( HEXA_DATA_ROLE, QVariant::fromValue(c) );
-        QModelIndex iBase      = getPatternDataSelectionModel()->indexBy( HEXA_DATA_ROLE, QVariant::fromValue(base) );
-        QModelIndex iDirection = getPatternDataSelectionModel()->indexBy( HEXA_DATA_ROLE, QVariant::fromValue(direction) );
-
-        name_le->setProperty( "QModelIndex",  QVariant::fromValue(iCyl) );
-        vex_le->setProperty( "QModelIndex",  QVariant::fromValue(iBase) );
-        vec_le->setProperty( "QModelIndex",  QVariant::fromValue(iDirection) );
-    }
-    _value = c;
-}
-
-// ============================================================== getValue
-HEXA_NS::Cylinder* CylinderDialog::getValue()
-{
-    return _value;
-}
-
-// ============================================================== apply
-bool CylinderDialog::apply(QModelIndex& result)
-{
-//    if (_currentObj != NULL) _highlightWidget(_currentObj, Qt::white);
-//    _currentObj = NULL;
-//
-//    if ( !getDocumentModel() ) return false;
-//    const PatternDataModel*    patternDataModel    = getPatternDataModel();
-//    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
-//    if ( !patternDataModel || !patternBuilderModel) return false;
-//
-//    QModelIndex iCyl;
-//    QModelIndex ivex = patternDataModel->mapToSource( _index[vex_le] );
-//    QModelIndex ivec = patternBuilderModel->mapToSource( _index[vec_le] );
-//    double r = r_spb->value();
-//    double h = h_spb->value();
-//
-//    if ( ivex.isValid()
-//            && ivec.isValid() ){
-//        iCyl = getDocumentModel()->addCylinder( ivex, ivec, r,  h );
-//    }
-//
-//    if ( !iCyl.isValid() ){
-//        SUIT_MessageBox::critical( this, tr( "ERR_ERROR" ), tr( "CANNOT ADD CYLINDER" ) );
-//        return false;
-//    }
-//
-//    _value  = iCyl.model()->data(iCyl, HEXA_DATA_ROLE).value<HEXA_NS::Cylinder *>();
-//
-//    QString newName = name_le->text();
-//    if (!newName.isEmpty()) /*{*/
-//        getDocumentModel()->setName( iCyl, newName );
-//
-//    //update the default name in the dialog box
-//    if (_value != NULL)
-//        updateDefaultName(name_le, _value->getType());
-//
-//    // to select/highlight result
-//    result = patternBuilderModel->mapFromSource(iCyl);
-
-    return true;
-}
-
-//------------------------------- PipeDialog -----------------------------------
-
-// ============================================================== Constructeur
-
-PipeDialog::PipeDialog( QWidget* parent, Mode editmode, Qt::WindowFlags f )
-: HexaBaseDialog(parent, editmode, f),
-  _value(0)
-{
-    _helpFileName = "gui_pipe.html";
-    setupUi( this );
-    _initWidget(editmode);
-    //   setFocusProxy( vex_le );
-
-    if ( editmode == INFO_MODE ){
-        setWindowTitle( tr("Pipe Information") );
-    }
-
-}
-
-// ============================================================== Destructeur
-PipeDialog::~PipeDialog()
-{
-}
-
-// ============================================================== _initInputWidget
-void PipeDialog::_initInputWidget( Mode editmode )
-{
-    QRegExp rx("");
-    QValidator *validator = new QRegExpValidator(rx, this);
-
-    installEventFilter(this);
-    name_le->installEventFilter(this);
-
-    //Vertex Field config
-    vex_le->setProperty( "HexaWidgetType",  QVariant::fromValue(VERTEX_TREE) );
-    vex_le->installEventFilter(this);
-    vex_le->setValidator( validator );
-
-    //Vector Field config
-    vec_le->setProperty( "HexaWidgetType",  QVariant::fromValue(VECTOR_TREE) );
-    vec_le->installEventFilter(this);
-    vec_le->setValidator( validator );
-
-
-    if ( editmode == INFO_MODE ){
-        name_le->setReadOnly(true);
-        ir_spb->setReadOnly(true);
-        er_spb->setReadOnly(true);
-        h_spb->setReadOnly(true);
-    }
-
-    vex_le->setReadOnly(true);
-    vec_le->setReadOnly(true);
-
-    //connect( name_le, SIGNAL(returnPressed()), this, SLOT(updateName()));
-}
-
-// ============================================================== clear
-void PipeDialog::clear()
-{
-    name_le->clear();
-
-    vex_le->clear();
-    modelUnregister(vex_le);
-
-    vec_le->clear();
-    modelUnregister(vec_le);
-
-    modelUnregister(this);
-}
-
-// ============================================================== setValue
-void PipeDialog::setValue(HEXA_NS::Pipe* p)
-{
-    HEXA_NS::Vertex* base      = p->getBase();
-    HEXA_NS::Vector* direction = p->getDirection();
-    double  ir = p->getInternalRadius();
-    double  er = p->getRadius();
-    double  h  = p->getHeight();
-
-    name_le->setText( p->getName() );
-    vex_le->setText( base->getName() );
-    vec_le->setText( direction->getName() );
-    ir_spb->setValue(ir);
-    er_spb->setValue(er);
-    h_spb->setValue(h);
-
-    if ( getPatternDataSelectionModel() ){
-        QModelIndex iPipe      = getPatternDataSelectionModel()->indexBy( HEXA_DATA_ROLE, QVariant::fromValue(p) );
-        QModelIndex iBase      = getPatternDataSelectionModel()->indexBy( HEXA_DATA_ROLE, QVariant::fromValue(base) );
-        QModelIndex iDirection = getPatternDataSelectionModel()->indexBy( HEXA_DATA_ROLE, QVariant::fromValue(direction) );
-
-        name_le->setProperty( "QModelIndex",  QVariant::fromValue(iPipe) );
-        vex_le->setProperty( "QModelIndex",  QVariant::fromValue(iBase) );
-        vec_le->setProperty( "QModelIndex",  QVariant::fromValue(iDirection) );
-    }
-    _value = p;
-}
-
-// ============================================================== getValue
-HEXA_NS::Pipe* PipeDialog::getValue()
-{
-    return _value;
-}
-
-// ============================================================== apply
-bool PipeDialog::apply(QModelIndex& result)
-{
-//    if (_currentObj != NULL) _highlightWidget(_currentObj, Qt::white);
-//    _currentObj = NULL;
-//
-//    if ( !getDocumentModel() ) return false;
-//    const PatternDataModel*    patternDataModel    = getPatternDataModel();
-//    const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel();
-//    if ( !patternDataModel || !patternBuilderModel)    return false;
-//
-//    QModelIndex iPipe;
-//    QModelIndex ivex = patternDataModel->mapToSource( _index[vex_le] );
-//    QModelIndex ivec = patternBuilderModel->mapToSource( _index[vec_le] );
-//    double ir = ir_spb->value();
-//    double er = er_spb->value();
-//    double h  = h_spb->value();
-//
-//    if (ir >= er) {
-//        SUIT_MessageBox::information( this, tr( "CANNOT ADD PIPE" ), tr( "External radius must be greather than Internal radius!" ) );
-//        return false;
-//    }
-//
-//
-//    if ( ivex.isValid()
-//            && ivec.isValid() ){
-//        iPipe = getDocumentModel()->addPipe( ivex, ivec, ir, er, h );
-//    }
-//
-//    if ( !iPipe.isValid() ){
-//        SUIT_MessageBox::critical( this, tr( "ERR_ERROR" ), tr( "CANNOT ADD PIPE" ) );
-//        return false;
-//    }
-//    _value  = iPipe.model()->data(iPipe, HEXA_DATA_ROLE).value<HEXA_NS::Pipe *>();
-//
-//    QString newName = name_le->text();
-//    if ( !newName.isEmpty() )/*{*/
-//        getDocumentModel()->setName( iPipe, newName );
-//
-//    //update the default name in the dialog box
-//    if (_value != NULL)
-//        updateDefaultName(name_le, _value->getType());
-//
-//    // to select/highlight result
-//    result = patternBuilderModel->mapFromSource(iPipe);
-
-    return true;
-}
-// ************************************** FIN A SUPPRIMER ******************************************//
-
index cc5ca6c04e1bdd27f3f868cdb382e3165054254c..f9ba91bf1c66619291fbb3cf952c642c71d89f8e 100755 (executable)
 #ifndef __HEXABLOCKGUI_DOCUMENTPANEL_HXX_
 #define __HEXABLOCKGUI_DOCUMENTPANEL_HXX_
 
-#include "HEXABLOCKGUI_Export.hxx"
-
 #define MAX_WIDTH 16777215
 #define MAX_HEIGHT 16777215
-#define MIN_WIDTH 0
+#define MIN_WIDTH 5
 #define MIN_HEIGHT 0
 
 #include <QShortcut>
@@ -64,6 +62,7 @@
 #include "ui_MakeHemiSphere_QTD.h"
 #include "ui_ModelInfo_QTD.h"
 #include "ui_AddShapeDialog_QTD.h"
+#include "ui_ComputeMesh_QTD.h"
 
 #include "HexVertex.hxx"
 #include "HexEdge.hxx"
@@ -84,7 +83,7 @@ namespace HEXABLOCK
 {
   namespace GUI
   {
-    class HEXABLOCK_EXPORT HexaBaseDialog : public QDialog
+    class HexaExport HexaBaseDialog : public QDialog
     {
       Q_OBJECT
 
@@ -133,9 +132,9 @@ namespace HEXABLOCK
           return HEXABLOCKGUI::currentDocGView->getPatternGeomModel();
       }
 
-      PatternBuilderModel* getPatternBuilderModel() const {
-          return HEXABLOCKGUI::currentDocGView->getPatternBuilderModel();
-      }
+//      PatternBuilderModel* getPatternBuilderModel() const {
+//          return HEXABLOCKGUI::currentDocGView->getPatternBuilderModel();
+//      }
 
       GroupsModel* getGroupsModel() const {
           return HEXABLOCKGUI::currentDocGView->getGroupsModel();
@@ -150,9 +149,9 @@ namespace HEXABLOCK
          return HEXABLOCKGUI::currentDocGView->getPatternDataSelectionModel();
       }
 
-      PatternBuilderSelectionModel* getPatternBuilderSelectionModel() const {
-         return HEXABLOCKGUI::currentDocGView->getPatternBuilderSelectionModel();
-      }
+//      PatternBuilderSelectionModel* getPatternBuilderSelectionModel() const {
+//         return HEXABLOCKGUI::currentDocGView->getPatternBuilderSelectionModel();
+//      }
 
       PatternGeomSelectionModel* getPatternGeomSelectionModel() const {
           return HEXABLOCKGUI::currentDocGView->getPatternGeomSelectionModel();
@@ -171,8 +170,6 @@ namespace HEXABLOCK
       HEXABLOCKGUI::ViewType getObjectViewType(QObject* obj);
       void modelUnregister(QWidget* widget); //unlink the widget from the model
       void resetSizeAndShow(QDockWidget* parent);
-      void lockSizeToSizeHint();
-      void unlockSizeModification();
       virtual QModelIndexList getAssocsVTK()
       {
         QModelIndexList assocs;
@@ -254,7 +251,7 @@ namespace HEXABLOCK
 
 
 
-    class HEXABLOCK_EXPORT VertexDialog : public HexaBaseDialog,
+    class HexaExport VertexDialog : public HexaBaseDialog,
     public Ui::VertexDialog
     {
       Q_OBJECT
@@ -282,7 +279,7 @@ namespace HEXABLOCK
     };
 
 
-    class HEXABLOCK_EXPORT EdgeDialog : public HexaBaseDialog,
+    class HexaExport EdgeDialog : public HexaBaseDialog,
     public Ui::EdgeDialog
     {
       Q_OBJECT
@@ -308,7 +305,7 @@ namespace HEXABLOCK
     };
 
 
-    class HEXABLOCK_EXPORT QuadDialog : public HexaBaseDialog,
+    class HexaExport QuadDialog : public HexaBaseDialog,
     public Ui::QuadDialog
     {
       Q_OBJECT
@@ -335,7 +332,7 @@ namespace HEXABLOCK
 
 
 
-    class HEXABLOCK_EXPORT HexaDialog : public HexaBaseDialog,
+    class HexaExport HexaDialog : public HexaBaseDialog,
     public Ui::HexaDialog
     {
       Q_OBJECT
@@ -370,7 +367,7 @@ namespace HEXABLOCK
     };
 
 
-    class HEXABLOCK_EXPORT VectorDialog : public HexaBaseDialog,
+    class HexaExport VectorDialog : public HexaBaseDialog,
     public Ui::VectorDialog
     {
       Q_OBJECT
@@ -395,7 +392,7 @@ namespace HEXABLOCK
     QModelIndex     _ivalue;
     };
 
-    class HEXABLOCK_EXPORT MakeGridDialog : public HexaBaseDialog,
+    class HexaExport MakeGridDialog : public HexaBaseDialog,
     public Ui::MakeGridDialog
     {
       Q_OBJECT
@@ -424,7 +421,7 @@ namespace HEXABLOCK
     };
 
 
-    class HEXABLOCK_EXPORT MakeCylinderDialog : public HexaBaseDialog,
+    class HexaExport MakeCylinderDialog : public HexaBaseDialog,
     public Ui::MakeCylinderDialog
     {
       Q_OBJECT
@@ -452,7 +449,7 @@ namespace HEXABLOCK
     };
 
 
-    class HEXABLOCK_EXPORT MakePipeDialog : public HexaBaseDialog,
+    class HexaExport MakePipeDialog : public HexaBaseDialog,
     public Ui::MakePipeDialog
     {
       Q_OBJECT
@@ -480,7 +477,7 @@ namespace HEXABLOCK
     };
 
 
-    class HEXABLOCK_EXPORT MakeCylindersDialog : public HexaBaseDialog,
+    class HexaExport MakeCylindersDialog : public HexaBaseDialog,
     public Ui::MakeCylindersDialog
     {
       Q_OBJECT
@@ -499,7 +496,7 @@ namespace HEXABLOCK
     };
 
 
-    class HEXABLOCK_EXPORT MakePipesDialog : public HexaBaseDialog,
+    class HexaExport MakePipesDialog : public HexaBaseDialog,
     public Ui::MakePipesDialog
     {
       Q_OBJECT
@@ -519,7 +516,7 @@ namespace HEXABLOCK
 
 
 
-    class HEXABLOCK_EXPORT RemoveHexaDialog : public HexaBaseDialog,
+    class HexaExport RemoveHexaDialog : public HexaBaseDialog,
     public Ui::RemoveHexaDialog
     {
       Q_OBJECT
@@ -538,7 +535,7 @@ namespace HEXABLOCK
     };
 
 
-    class HEXABLOCK_EXPORT PrismQuadDialog : public HexaBaseDialog,
+    class HexaExport PrismQuadDialog : public HexaBaseDialog,
     public Ui::PrismQuadDialog
     {
       Q_OBJECT
@@ -561,13 +558,13 @@ namespace HEXABLOCK
     void updateHelpFileName();
 
     private slots:
-    //void addQuad();
+    void addQuad();
     void removeQuad();
-    //void clearQuads();
+    void clearQuads();
 
     };
 
-    class HEXABLOCK_EXPORT JoinQuadDialog : public HexaBaseDialog,
+    class HexaExport JoinQuadDialog : public HexaBaseDialog,
     public Ui::JoinQuadDialog
     {
       Q_OBJECT
@@ -591,14 +588,14 @@ namespace HEXABLOCK
     void updateHelpFileName();
 
     private slots:
-    //void addQuad();
+    void addQuad();
     void removeQuad();
-    //void clearQuads();
+    void clearQuads();
 
     };
 
 
-    class HEXABLOCK_EXPORT MergeDialog : public HexaBaseDialog,
+    class HexaExport MergeDialog : public HexaBaseDialog,
     public Ui::MergeDialog
     {
       Q_OBJECT
@@ -622,7 +619,7 @@ namespace HEXABLOCK
     };
 
 
-    class HEXABLOCK_EXPORT DisconnectDialog : public HexaBaseDialog,
+    class HexaExport DisconnectDialog : public HexaBaseDialog,
     public Ui::DisconnectDialog
     {
       Q_OBJECT
@@ -648,7 +645,7 @@ namespace HEXABLOCK
 
 
 
-    class HEXABLOCK_EXPORT CutEdgeDialog : public HexaBaseDialog,
+    class HexaExport CutEdgeDialog : public HexaBaseDialog,
     public Ui::CutEdgeDialog
     {
       Q_OBJECT
@@ -672,7 +669,7 @@ namespace HEXABLOCK
     };
 
 
-    class HEXABLOCK_EXPORT MakeTransformationDialog : public HexaBaseDialog,
+    class HexaExport MakeTransformationDialog : public HexaBaseDialog,
     public Ui::TransformationDialog
     {
       Q_OBJECT
@@ -694,7 +691,7 @@ namespace HEXABLOCK
     };
 
 
-    class HEXABLOCK_EXPORT MakeSymmetryDialog : public HexaBaseDialog,
+    class HexaExport MakeSymmetryDialog : public HexaBaseDialog,
     public Ui::SymmetryDialog
     {
       Q_OBJECT
@@ -718,7 +715,7 @@ namespace HEXABLOCK
 
 
 
-    class HEXABLOCK_EXPORT PerformTransformationDialog : public HexaBaseDialog,
+    class HexaExport PerformTransformationDialog : public HexaBaseDialog,
     public Ui::TransformationDialog
     {
       Q_OBJECT
@@ -740,7 +737,7 @@ namespace HEXABLOCK
     };
 
 
-    class HEXABLOCK_EXPORT PerformSymmetryDialog : public HexaBaseDialog,
+    class HexaExport PerformSymmetryDialog : public HexaBaseDialog,
     public Ui::SymmetryDialog
     {
       Q_OBJECT
@@ -761,7 +758,7 @@ namespace HEXABLOCK
     void updateHelpFileName();
     };
 
-class HEXABLOCK_EXPORT EdgeAssocDialog : public HexaBaseDialog,
+class HexaExport EdgeAssocDialog : public HexaBaseDialog,
     public Ui::EdgeAssocDialog
     {
       Q_OBJECT
@@ -799,7 +796,7 @@ class HEXABLOCK_EXPORT EdgeAssocDialog : public HexaBaseDialog,
     };
 
 
-    class HEXABLOCK_EXPORT QuadAssocDialog : public HexaBaseDialog,
+    class HexaExport QuadAssocDialog : public HexaBaseDialog,
     public Ui::QuadAssocDialog
     {
       Q_OBJECT
@@ -830,7 +827,7 @@ class HEXABLOCK_EXPORT EdgeAssocDialog : public HexaBaseDialog,
 
 
 
-    class HEXABLOCK_EXPORT GroupDialog : public HexaBaseDialog,
+    class HexaExport GroupDialog : public HexaBaseDialog,
     public Ui::GroupDialog
     {
       Q_OBJECT
@@ -862,7 +859,7 @@ class HEXABLOCK_EXPORT EdgeAssocDialog : public HexaBaseDialog,
 
 
 
-    class HEXABLOCK_EXPORT LawDialog : public HexaBaseDialog,
+    class HexaExport LawDialog : public HexaBaseDialog,
     public Ui::LawDialog
     {
       Q_OBJECT
@@ -890,7 +887,7 @@ class HEXABLOCK_EXPORT EdgeAssocDialog : public HexaBaseDialog,
 
 
 
-    class HEXABLOCK_EXPORT PropagationDialog : public HexaBaseDialog,
+    class HexaExport PropagationDialog : public HexaBaseDialog,
     public Ui::PropagationDialog
     {
       Q_OBJECT
@@ -910,7 +907,7 @@ class HEXABLOCK_EXPORT EdgeAssocDialog : public HexaBaseDialog,
     void _initInputWidget( Mode editmode );
 
     protected slots:
-    //void updateHelpFileName();
+    void updateHelpFileName();
     void deletePropagationItem();
     virtual void selectElementOfModel();
 
@@ -923,7 +920,8 @@ class HEXABLOCK_EXPORT EdgeAssocDialog : public HexaBaseDialog,
     // Define the compute mesh dialog box
     // ----------------------------------
 
-    class HEXABLOCK_EXPORT ComputeMeshDialog : public HexaBaseDialog
+    class HexaExport ComputeMeshDialog : public HexaBaseDialog,
+    public Ui::ComputeMeshDialog
     {
       Q_OBJECT
 
@@ -939,16 +937,11 @@ class HEXABLOCK_EXPORT EdgeAssocDialog : public HexaBaseDialog,
 
     protected:
     void _initInputWidget( Mode editmode );
-
-    private:
-    QLineEdit* _name;
-    QSpinBox*  _dim;
-    QLineEdit* _fact;
     };
 
 
 
-    class HEXABLOCK_EXPORT ReplaceHexaDialog : public HexaBaseDialog,
+    class HexaExport ReplaceHexaDialog : public HexaBaseDialog,
     public Ui::ReplaceHexaDialog
     {
       Q_OBJECT
@@ -978,7 +971,7 @@ class HEXABLOCK_EXPORT EdgeAssocDialog : public HexaBaseDialog,
 
 
 
-    class HEXABLOCK_EXPORT QuadRevolutionDialog : public HexaBaseDialog,
+    class HexaExport QuadRevolutionDialog : public HexaBaseDialog,
     public Ui::QuadRevolutionDialog
     {
       Q_OBJECT
@@ -1007,7 +1000,7 @@ class HEXABLOCK_EXPORT EdgeAssocDialog : public HexaBaseDialog,
 
 
 
-    class HEXABLOCK_EXPORT MakeHemiSphereDialog : public HexaBaseDialog,
+    class HexaExport MakeHemiSphereDialog : public HexaBaseDialog,
     public Ui::MakeHemiSphereDialog
     {
       Q_OBJECT
@@ -1038,7 +1031,7 @@ class HEXABLOCK_EXPORT EdgeAssocDialog : public HexaBaseDialog,
     HEXA_NS::Elements *_value;
     };
 
-    class HEXABLOCK_EXPORT ModelInfoDialog : public HexaBaseDialog,
+    class HexaExport ModelInfoDialog : public HexaBaseDialog,
     public Ui::ModelInfoDialog
     {
         Q_OBJECT
@@ -1057,7 +1050,7 @@ class HEXABLOCK_EXPORT EdgeAssocDialog : public HexaBaseDialog,
         virtual void _initInputWidget( Mode editmode ){}
     };
 
-    class HEXABLOCK_EXPORT AddShapeDialog : public HexaBaseDialog,
+    class HexaExport AddShapeDialog : public HexaBaseDialog,
     public Ui::AddShapeDialog
     {
         Q_OBJECT
@@ -1079,65 +1072,7 @@ class HEXABLOCK_EXPORT EdgeAssocDialog : public HexaBaseDialog,
         virtual void onCurrentSelectionChanged();
     };
 
-
-    //*****************************  OBSOLETE: A SUPPRIMER !!!!  ************************************//
-
-        class HEXABLOCK_EXPORT CylinderDialog : public HexaBaseDialog,
-        public Ui::CylinderDialog
-        {
-          Q_OBJECT
-
-        public:
-          CylinderDialog( QWidget* = 0, Mode = NEW_MODE, Qt::WindowFlags = Qt::SubWindow );//= 0 );
-          virtual ~CylinderDialog();
-
-          void clear();
-
-          void setValue( HEXA_NS::Cylinder* v );
-          HEXA_NS::Cylinder* getValue();
-
-        public slots:
-        virtual bool apply(QModelIndex& result);
-
-        protected:
-        void _initInputWidget( Mode editmode );
-
-        private:
-        HEXA_NS::Cylinder   *_value;
-        QModelIndex         _ivalue;
-        };
-
-        class HEXABLOCK_EXPORT PipeDialog : public HexaBaseDialog,
-        public Ui::PipeDialog
-        {
-          Q_OBJECT
-
-        public:
-          PipeDialog( QWidget* = 0, Mode = NEW_MODE, Qt::WindowFlags = Qt::SubWindow );//= 0 );
-          virtual ~PipeDialog();
-
-          void clear();
-
-          void setValue( HEXA_NS::Pipe* p );
-          HEXA_NS::Pipe* getValue();
-
-        public slots:
-        virtual bool apply(QModelIndex& result);
-
-        protected:
-        void _initInputWidget( Mode editmode );
-
-        private:
-        HEXA_NS::Pipe   *_value;
-        QModelIndex     _ivalue;
-
-        };
-    // ************************************** FIN A SUPPRIMER ******************************************//
-
-
   }
 }
 
-
-
 #endif
index 60d44fcba284d4bb8a9c2f788de3ce916022ef59..7abc8b7fc6e933b666d8b4327a5e1ccea5638e9d 100755 (executable)
@@ -47,7 +47,6 @@
 #include "HEXABLOCKGUI_OccGraphicView.hxx"
 #include "HEXABLOCKGUI_SalomeTools.hxx"
 #include "HEXABLOCKGUI_DocumentSelectionModel.hxx"
-#include "HEXABLOCKGUI_DocumentModel.hxx"
 #include "HEXABLOCKGUI_DocumentItem.hxx"
 #include "HEXABLOCKGUI.hxx"
 
@@ -88,6 +87,8 @@ using namespace HEXABLOCK::GUI;
 //                              SelectionModel
 // //===========================================================================
 
+bool SelectionModel::infoMode = true;
+
 SelectionModel::SelectionModel( QAbstractItemModel * model ):
 QItemSelectionModel( model )
 {
@@ -161,14 +162,58 @@ QModelIndexList SelectionModel::indexListOf( const QString& anEntry, int role )
   return theIndexes;
 }
 
+DocumentModel* SelectionModel::getDocModel() const
+{
+    DocumentModel* docModel = NULL;
+    const QSortFilterProxyModel *pModel   = dynamic_cast<const QSortFilterProxyModel *>( model() );
+    if ( pModel != NULL)
+        docModel = dynamic_cast<DocumentModel*>( pModel->sourceModel() );
+
+    return docModel;
+}
+
+void SelectionModel::showEltInfo(QModelIndex& elt)
+{
+    DocumentModel* docModel = getDocModel();
+    if (!elt.isValid() || docModel == NULL)
+        return;
+
+    HEXA_NS::Vertex* vertex  = docModel->getHexaPtr<HEXA_NS::Vertex*>(elt);
+    HEXA_NS::Edge*   edge    = docModel->getHexaPtr<HEXA_NS::Edge*>(elt);
+    HEXA_NS::Quad*   quad    = docModel->getHexaPtr<HEXA_NS::Quad*>(elt);
+    HEXA_NS::Hexa*   hexa    = docModel->getHexaPtr<HEXA_NS::Hexa*>(elt);
+    HEXA_NS::Vector* vector  = docModel->getHexaPtr<HEXA_NS::Vector*>(elt);
+    HEXA_NS::Group*  group   = docModel->getHexaPtr<HEXA_NS::Group*>(elt);
+    HEXA_NS::Law*    law     = docModel->getHexaPtr<HEXA_NS::Law*>(elt);
+    HEXA_NS::Propagation* propagation = docModel->getHexaPtr<HEXA_NS::Propagation*>(elt);
+
+    HEXABLOCKGUI*    hexagui = HEXABLOCKGUI::getInstance();
+    if (vertex != NULL)
+        hexagui->showVertexInfoDialog(vertex);
+    else if (edge != NULL)
+        hexagui->showEdgeInfoDialog(edge);
+    else if (quad != NULL)
+        hexagui->showQuadInfoDialog(quad);
+    else if (hexa != NULL)
+        hexagui->showHexaInfoDialog(hexa);
+    else if (vector != NULL)
+        hexagui->showVectorInfoDialog(vector);
+    else if (group != NULL)
+        hexagui->showGroupInfoDialog(group);
+    else if (law != NULL)
+        hexagui->showLawInfoDialog(law);
+    else if (propagation != NULL)
+        hexagui->showPropagationInfoDialog(propagation);
+}
+
 void SelectionModel::salomeSelectionChanged()
 {
     // clear highlights and selections in the trees
     PatternDataSelectionModel* pdsm = HEXABLOCKGUI::currentDocGView->getPatternDataSelectionModel();
-    PatternBuilderSelectionModel* pbsm = HEXABLOCKGUI::currentDocGView->getPatternBuilderSelectionModel();
+//    PatternBuilderSelectionModel* pbsm = HEXABLOCKGUI::currentDocGView->getPatternBuilderSelectionModel();
     PatternGeomSelectionModel* pgsm = HEXABLOCKGUI::currentDocGView->getPatternGeomSelectionModel();
     pdsm->clearSelection();
-    pbsm->clearSelection();
+//    pbsm->clearSelection();
     pgsm->clearSelection();
     pdsm->unhighlightTreeItems();
     pgsm->unhighlightTreeItems();
@@ -279,14 +324,12 @@ void PatternDataSelectionModel::highlightTreeItems(QModelIndexList& indexes,
 
     // * highlight item
     QAbstractItemModel* theModel = (QAbstractItemModel*) model();
-    QMap<int, QVariant> roles;
-    roles[Qt::BackgroundRole] = bgColor;
-    roles[Qt::ForegroundRole] = fgColor;
     foreach( const QModelIndex& anItemIndex, indexes )
     {
         if (anItemIndex.isValid())
         {
-            theModel->setItemData(anItemIndex, roles);
+            theModel->setData(anItemIndex, fgColor, Qt::ForegroundRole);
+            theModel->setData(anItemIndex, bgColor, Qt::BackgroundRole);
             currentHighlightedItems << anItemIndex;
         }
     }
@@ -305,13 +348,13 @@ void PatternDataSelectionModel::unhighlightTreeItems(bool clearSelected)
         return;
 
     QAbstractItemModel* theModel = (QAbstractItemModel*) model();
-    QMap<int, QVariant> roles;
-    roles[Qt::BackgroundRole] = Qt::white;
-    roles[Qt::ForegroundRole] = Qt::darkGreen;
     foreach( const QModelIndex& anItemIndex, currentHighlightedItems)
     {
         if (anItemIndex.isValid())
-            theModel->setItemData(anItemIndex, roles);
+        {
+            theModel->setData(anItemIndex, Qt::darkGreen, Qt::ForegroundRole);
+            theModel->setData(anItemIndex, Qt::white, Qt::BackgroundRole);
+        }
     }
     currentHighlightedItems.clear();
 }
@@ -319,16 +362,12 @@ void PatternDataSelectionModel::unhighlightTreeItems(bool clearSelected)
 QModelIndexList PatternDataSelectionModel::getGeomAssociations(const QModelIndex& dataIndex)
 {
     QModelIndexList geomIndexList;
-    DocumentModel               *docModel = NULL;
-    const QSortFilterProxyModel *pModel   = dynamic_cast<const QSortFilterProxyModel *>( model() );
-    PatternGeomSelectionModel* pGSModel = HEXABLOCKGUI::currentDocGView->getPatternGeomSelectionModel();
-
-    if ( pModel != NULL)
-        docModel = dynamic_cast<DocumentModel*>( pModel->sourceModel() );
-
+    DocumentModel*               docModel = getDocModel();
+    PatternGeomSelectionModel*   pGSModel = HEXABLOCKGUI::currentDocGView->getPatternGeomSelectionModel();
     if (docModel == NULL || pGSModel == NULL)
         return geomIndexList;
 
+    const QSortFilterProxyModel *pModel   = dynamic_cast<const QSortFilterProxyModel *>( model() );
     HEXA_NS::Vertex* vertex = docModel->getHexaPtr<HEXA_NS::Vertex*>(dataIndex);
     HEXA_NS::Edge*   edge   = docModel->getHexaPtr<HEXA_NS::Edge*>(dataIndex);
     HEXA_NS::Quad*   quad   = docModel->getHexaPtr<HEXA_NS::Quad*>(dataIndex);
@@ -347,7 +386,8 @@ QModelIndexList PatternDataSelectionModel::getGeomAssociations(const QModelIndex
 void PatternDataSelectionModel::onSelectionChanged( const QItemSelection & selected, const QItemSelection & deselected )
 {
     QModelIndexList indexes = selected.indexes();
-    if (indexes.count() == 0)
+    int nbSelected = indexes.count();
+    if (nbSelected == 0)
         return;
 
     // ** unhighlight current highlighted items in the trees
@@ -369,6 +409,12 @@ void PatternDataSelectionModel::onSelectionChanged( const QItemSelection & selec
     // ** highlight association in the occ view
     HEXABLOCKGUI::currentOccGView->highlight(indexes);
 
+    if (!infoMode || nbSelected > 1)
+        return;
+
+    // ** Show informations of the selected element
+    QModelIndex elt = indexes[0];
+    showEltInfo(elt);
 }
 
 void PatternDataSelectionModel::geomSelectionChanged( const Handle(SALOME_InteractiveObject)& anIObject )
@@ -398,29 +444,24 @@ void PatternDataSelectionModel::vtkSelectionChanged( const Handle(SALOME_Interac
     //Temporary Debug for hexa selection ------------------------------
     if (HEXABLOCKGUI::currentDocGView->getSelectionMode() == HEXA_TREE)
     {
-        DocumentModel               *docModel = NULL;
-        const QSortFilterProxyModel *pModel   = dynamic_cast<const QSortFilterProxyModel *>( model() );
+        DocumentModel* docModel = getDocModel();
+        if ( docModel != NULL && anIOIndex.isValid())
+        {
+            //get the selected quad
+            HEXA_NS::Quad* quad = docModel->getHexaPtr<HEXA_NS::Quad*>(anIOIndex);
 
-        if ( pModel != NULL){
-            docModel = dynamic_cast<DocumentModel*>( pModel->sourceModel() );
-            if ( docModel != NULL && anIOIndex.isValid())
+            if (quad != NULL)
             {
-                //get the selected quad
-                HEXA_NS::Quad* quad = docModel->getHexaPtr<HEXA_NS::Quad*>(anIOIndex);
-
-                if (quad != NULL)
+                //get the hexa the quad belongs to
+                HEXA_NS::Hexa* hexa = docModel->getQuadHexa(quad);
+                if (hexa != NULL) //convert the hexa to a QModelIndex so we can select it in the model
+                    anIOIndex = indexBy( HEXA_DATA_ROLE, QVariant::fromValue(hexa));
+                else
                 {
-                    //get the hexa the quad belongs to
-                    HEXA_NS::Hexa* hexa = docModel->getQuadHexa(quad);
-                    if (hexa != NULL) //convert the hexa to a QModelIndex so we can select it in the model
-                        anIOIndex = indexBy( HEXA_DATA_ROLE, QVariant::fromValue(hexa));
-                    else
-                    {
-                        SUIT_MessageBox::critical( 0,
-                                tr("HexaBlock"),
-                                tr("The Hexahedron this quad belongs to has been deleted!"));
-                        return;
-                    }
+                    SUIT_MessageBox::critical( 0,
+                            tr("HexaBlock"),
+                            tr("The Hexahedron this quad belongs to has been deleted!"));
+                    return;
                 }
             }
         }
@@ -548,14 +589,12 @@ void PatternGeomSelectionModel::highlightTreeItems(QModelIndexList& indexes,
 
     // * highlight items
     QAbstractItemModel* theModel = (QAbstractItemModel*) model();
-    QMap<int, QVariant> roles;
-    roles[Qt::BackgroundRole] = bgColor;
-    roles[Qt::ForegroundRole] = fgColor;
     foreach( const QModelIndex& anItemIndex, indexes )
     {
         if (anItemIndex.isValid())
         {
-            theModel->setItemData(anItemIndex, roles);
+            theModel->setData(anItemIndex, fgColor, Qt::ForegroundRole);
+            theModel->setData(anItemIndex, bgColor, Qt::BackgroundRole);
             currentHighlightedItems << anItemIndex;
         }
     }
@@ -573,13 +612,13 @@ void PatternGeomSelectionModel::unhighlightTreeItems(bool clearSelected)
     if (currentHighlightedItems.count() == 0)
         return;
     QAbstractItemModel* theModel = (QAbstractItemModel*) model();
-    QMap<int, QVariant> roles;
-    roles[Qt::BackgroundRole] = Qt::white;
-    roles[Qt::ForegroundRole] = Qt::darkGreen;
     foreach( const QModelIndex& anItemIndex, currentHighlightedItems)
     {
         if (anItemIndex.isValid())
-            theModel->setItemData(anItemIndex, roles);
+        {
+            theModel->setData(anItemIndex, Qt::darkGreen, Qt::ForegroundRole);
+            theModel->setData(anItemIndex, Qt::white, Qt::BackgroundRole);
+        }
     }
     currentHighlightedItems.clear();
 }
@@ -604,51 +643,71 @@ GroupsSelectionModel::~GroupsSelectionModel()
           this, SLOT( onSelectionChanged( const QItemSelection & , const QItemSelection & ) ) );
 }
 
-
 void GroupsSelectionModel::onSelectionChanged( const QItemSelection & selected, const QItemSelection & deselected )
 {
-  try {
     QModelIndexList indexes = selected.indexes();
-    for( QModelIndexList::const_iterator i_index = indexes.begin(); i_index != indexes.end(); ++i_index ){
-      HEXABLOCKGUI::currentDocGView->highlightGroups( *i_index );
+    int nbSelected = indexes.count();
+    if (nbSelected == 0)
+        return;
+
+    // ** Highlight the group in the vtk view **/
+    try {
+        for( QModelIndexList::const_iterator i_index = indexes.begin(); i_index != indexes.end(); ++i_index ){
+            HEXABLOCKGUI::currentDocGView->highlightGroups( *i_index );
+        }
+    } catch ( ... ) {
+        MESSAGE("Unknown exception was cought !!!");
     }
-  } catch ( ... ) {
-    MESSAGE("Unknown exception was cought !!!");
-  }
+
+    if (!infoMode || nbSelected > 1)
+        return;
+
+    // ** Show informations of the selected element **/
+    QModelIndex elt = indexes[0];
+    showEltInfo(elt);
 }
 
 // //===========================================================================
 //                              MeshSelectionModel
 // //===========================================================================
 MeshSelectionModel::MeshSelectionModel( QAbstractItemModel * model ):
-SelectionModel( model )
+        SelectionModel( model )
 {
-  connect( this, SIGNAL( currentChanged( const QModelIndex &, const QModelIndex & ) ),
-           this, SLOT( onCurrentChanged( const QModelIndex & , const QModelIndex & ) ), Qt::UniqueConnection );
-  connect( this, SIGNAL( selectionChanged( const QItemSelection & , const QItemSelection & ) ),
-           this, SLOT( onSelectionChanged( const QItemSelection & , const QItemSelection & ) ), Qt::UniqueConnection );
+    connect( this, SIGNAL( currentChanged( const QModelIndex &, const QModelIndex & ) ),
+            this, SLOT( onCurrentChanged( const QModelIndex & , const QModelIndex & ) ), Qt::UniqueConnection );
+    connect( this, SIGNAL( selectionChanged( const QItemSelection & , const QItemSelection & ) ),
+            this, SLOT( onSelectionChanged( const QItemSelection & , const QItemSelection & ) ), Qt::UniqueConnection );
 }
 
-
 MeshSelectionModel::~MeshSelectionModel()
 {
-  disconnect( this, SIGNAL( currentChanged( const QModelIndex &, const QModelIndex & ) ),
-          this, SLOT( onCurrentChanged( const QModelIndex & , const QModelIndex & ) ) );
-  disconnect( this, SIGNAL( selectionChanged( const QItemSelection & , const QItemSelection & ) ),
-          this, SLOT( onSelectionChanged( const QItemSelection & , const QItemSelection & ) ) );
+    disconnect( this, SIGNAL( currentChanged( const QModelIndex &, const QModelIndex & ) ),
+            this, SLOT( onCurrentChanged( const QModelIndex & , const QModelIndex & ) ) );
+    disconnect( this, SIGNAL( selectionChanged( const QItemSelection & , const QItemSelection & ) ),
+            this, SLOT( onSelectionChanged( const QItemSelection & , const QItemSelection & ) ) );
 }
 
 
 void MeshSelectionModel::onSelectionChanged( const QItemSelection & selected, const QItemSelection & deselected )
 {
-  try {
-
     QModelIndexList indexes = selected.indexes();
-    for( QModelIndexList::const_iterator i_index = indexes.begin(); i_index != indexes.end(); ++i_index ){
-      HEXABLOCKGUI::currentDocGView->highlightPropagation( *i_index );
+    int nbSelected = indexes.count();
+    if (nbSelected == 0)
+        return;
+
+    try {
+        for( QModelIndexList::const_iterator i_index = indexes.begin(); i_index != indexes.end(); ++i_index ){
+            HEXABLOCKGUI::currentDocGView->highlightPropagation( *i_index );
+        }
+    } catch ( ... ) {
+        MESSAGE("Unknown exception was cought !!!");
     }
-  } catch ( ... ) {
-    MESSAGE("Unknown exception was cought !!!");
-  }
+
+    if (!infoMode || nbSelected > 1)
+        return;
+
+    // ** Show informations of the selected element **/
+    QModelIndex elt = indexes[0];
+    showEltInfo(elt);
 }
 
index bb6d13b08e30eb9c2cce88701b2ba95133b4401a..6cf842d66c60cedfda0bd5513c468788d81cd2ff 100755 (executable)
@@ -20,7 +20,7 @@
 #ifndef _HEXABLOCKGUI_DOCUMENTSELECTIONMODEL_HXX_
 #define _HEXABLOCKGUI_DOCUMENTSELECTIONMODEL_HXX_
 
-#include "HEXABLOCKGUI_Export.hxx"
+#include "hexa_base.hxx"
 
 #include <QItemSelectionModel>
 #include <LightApp_SelectionMgr.h>
@@ -30,6 +30,8 @@
 
 #include "klinkitemselectionmodel.hxx"
 
+#include "HEXABLOCKGUI_DocumentModel.hxx"
+
 class OCCViewer_ViewWindow;
 
 
@@ -38,7 +40,7 @@ namespace HEXABLOCK
   namespace GUI
   {
 
-    class HEXABLOCK_EXPORT SelectionModel: public QItemSelectionModel
+    class HexaExport SelectionModel: public QItemSelectionModel
     {
         Q_OBJECT
 
@@ -51,12 +53,16 @@ namespace HEXABLOCK
             QModelIndex     indexBy( int role, const QVariant& var );
             QModelIndex     indexOf( const QString& anIOEntry, int role );
             QModelIndexList indexListOf( const QString& anEntry, int role );
+            DocumentModel*  getDocModel() const;
+            void            showEltInfo(QModelIndex& elt);
 
             virtual void geomSelectionChanged( const Handle(SALOME_InteractiveObject)& anIObject ) {}
             virtual void vtkSelectionChanged( const Handle(SALOME_InteractiveObject)& anIObject ) {}
 
             void clearHighlightedItems() { currentHighlightedItems.clear(); }
 
+            void setInfoMode(bool isOn) { infoMode = isOn; }
+
        protected slots:
 
             virtual void onCurrentChanged( const QModelIndex & current,
@@ -69,21 +75,21 @@ namespace HEXABLOCK
 
        protected:
             QModelIndexList getSelectionFromModel(const Handle(SALOME_InteractiveObject)& anIObject);
-
             QModelIndexList currentHighlightedItems;
+            static bool infoMode;
     };
 
-    class PatternBuilderSelectionModel: public KLinkItemSelectionModel
-    {
-      public:
-        PatternBuilderSelectionModel( QAbstractItemModel *model, 
-                                      QItemSelectionModel *proxySelector, QObject *parent = 0 ):
-        KLinkItemSelectionModel( model, proxySelector, parent )
-        {
-        }
-    };
-
-    class PatternDataSelectionModel : public SelectionModel
+//    class PatternBuilderSelectionModel: public KLinkItemSelectionModel
+//    {
+//      public:
+//        PatternBuilderSelectionModel( QAbstractItemModel *model,
+//                                      QItemSelectionModel *proxySelector, QObject *parent = 0 ):
+//        KLinkItemSelectionModel( model, proxySelector, parent )
+//        {
+//        }
+//    };
+
+    class HexaExport PatternDataSelectionModel : public SelectionModel
     {
       Q_OBJECT
 
@@ -107,7 +113,7 @@ namespace HEXABLOCK
 
     };
 
-    class PatternGeomSelectionModel : public SelectionModel
+    class HexaExport PatternGeomSelectionModel : public SelectionModel
     {
         Q_OBJECT
 
@@ -128,7 +134,7 @@ namespace HEXABLOCK
     };
 
 
-    class GroupsSelectionModel : public SelectionModel
+    class HexaExport GroupsSelectionModel : public SelectionModel
     {
       Q_OBJECT
 
@@ -143,7 +149,7 @@ namespace HEXABLOCK
     };
 
 
-    class MeshSelectionModel : public SelectionModel
+    class HexaExport MeshSelectionModel : public SelectionModel
     {
       Q_OBJECT
 
index 6ba6a00083dc20cc64b6d27d33896bdf0403a289..3cda2abfd6cb68697d0ea64f1ce882058c81108d 100755 (executable)
@@ -20,7 +20,7 @@
 #ifndef __HEXABLOCKGUI_EXCEPTION_HXX__
 #define __HEXABLOCKGUI_EXCEPTION_HXX__
 
-#include "HEXABLOCKGUI_Export.hxx"
+#include "hexa_base.hxx"
 
 #include <string>
 #include <exception>
@@ -29,7 +29,7 @@ namespace HEXABLOCK
 {
   namespace GUI
   {
-    class HEXABLOCK_EXPORT Exception : public std::exception
+    class HexaExport Exception : public std::exception
     {
     protected:
       std::string _what;
index 2c38d6cec1b338ae46401b5bfcb998f19f36b087..717694e9e1bcf2d3507efd2c11e83a4923cc21e7 100644 (file)
@@ -20,8 +20,6 @@
 #ifndef _HEXABLOCKGUI_VTKGRAPHICVIEWSHANDLER_HXX_
 #define _HEXABLOCKGUI_VTKGRAPHICVIEWSHANDLER_HXX_
 
-#include "HEXABLOCKGUI_Export.hxx"
-
 //Salome Includes
 #include <SVTK_ViewWindow.h>
 #include <OCCViewer_ViewWindow.h>
@@ -30,6 +28,7 @@
 #include <QMap>
 
 //HEXABLOCK Includes
+#include "hexa_base.hxx"
 #include "HEXABLOCKGUI_VtkDocumentGraphicView.hxx"
 
 namespace HEXABLOCK
@@ -37,7 +36,7 @@ namespace HEXABLOCK
   namespace GUI
   {
 
-      class HEXABLOCK_EXPORT GraphicViewsHandler
+      class HexaExport GraphicViewsHandler
       {
 
       public:
index 7a660394d171837939ddced6deeb27e208c4a6bf..9f3b3e2490397e12f1c64d6f7042acb984c6d8b3 100755 (executable)
 #ifndef _HEXABLOCKGUI_MODEL_HXX_
 #define _HEXABLOCKGUI_MODEL_HXX_
 
-#include "HEXABLOCKGUI_Export.hxx"
-
 #include <SalomeApp_DataModel.h>
 
+#include "hexa_base.hxx"
 
-class HEXABLOCK_EXPORT CHEXABLOCKGUI_Model : public SalomeApp_DataModel
+class HexaExport HEXABLOCKGUI_Model : public SalomeApp_DataModel
 {
     public:
       HEXABLOCKGUI_Model(CAM_Module* theModule);
index cab143cefea51749ce105ab3f07b896524a1efd0..cf93b4ae08256bcc41f0921f1a7e2bbe71a348c5 100755 (executable)
 #ifndef HEXABLOCKGUI_OCCSELECTOR_H
 #define HEXABLOCKGUI_OCCSELECTOR_H
 
-#include "HEXABLOCKGUI_Export.hxx"
 
 #include <LightApp_OCCSelector.h>
+#include "hexa_base.hxx"
 
-class HEXABLOCK_EXPORT HEXABLOCKGUI_OCCSelector : public LightApp_OCCSelector
+class HexaExport HEXABLOCKGUI_OCCSelector : public LightApp_OCCSelector
 {
 public:
     HEXABLOCKGUI_OCCSelector( OCCViewer_Viewer*, SUIT_SelectionMgr* );
index d807d0c4104f9fe3207fc59e105447272feafa68..512c985e4ff7ee5e1be686562a8d2fa1b9ca9a21 100644 (file)
 
 
 #include "HEXABLOCKGUI_OccGraphicView.hxx"
-#include "utilities.h"
 #include "HEXABLOCKGUI.hxx"
-#include "HEXABLOCKGUI_DocumentModel.hxx"
 #include "HEXABLOCKGUI_VtkDocumentGraphicView.hxx"
-#include "HexNewShape.hxx"
-#include "HexVertexShape.hxx"
-#include "HexEdgeShape.hxx"
-#include "HexFaceShape.hxx"
-
-#include <SelectMgr_Selection.hxx>
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
-#include <SelectBasics_SensitiveEntity.hxx>
-#include <StdSelect_BRepOwner.hxx>
-#include <TopExp.hxx>
 
 #include <SOCC_ViewModel.h>
 #include <SUIT_ViewManager.h>
@@ -206,7 +194,7 @@ void OccGraphicView::highlight( const QModelIndexList & indexList, bool only )
     }
     highlight( assocEntrySubIDs, only );
 }
-#include <SUIT_Session.h>
+
 void OccGraphicView::highlightSubShapes(const Handle(AIS_Shape)& anObj,
                                 const TColStd_IndexedMapOfInteger& aIndexMap, bool only)
 {
index e5d3e59b78f25f815784a5311a41aba11d8f3cd5..d269eb69234536a7891b17c84bee5c4c344a8e14 100644 (file)
@@ -22,8 +22,6 @@
 #ifndef _HEXABLOCKGUI_OCCGRAPHICVIEW_HXX_
 #define _HEXABLOCKGUI_OCCGRAPHICVIEW_HXX_
 
-#include "HEXABLOCKGUI_Export.hxx"
-
 #include <OCCViewer_ViewWindow.h>
 #include "HEXABLOCKGUI_SalomeTools.hxx"
 
@@ -34,8 +32,7 @@
 #include <QModelIndex>
 #include <QModelIndexList>
 
-
-
+#include "hexa_base.hxx"
 
 namespace HEXABLOCK
 {
@@ -47,7 +44,7 @@ namespace HEXABLOCK
          *                          OccGraphicView
          ********************************************************************************/
 
-        class HEXABLOCK_EXPORT OccGraphicView
+        class HexaExport OccGraphicView
         {
 
          public:
index 87d1621ba6adb4bd0fb0ca39edcd79c3cf343054..50e7a16a358043d9386dfbf1bb976db195cdcfcd 100755 (executable)
@@ -20,7 +20,7 @@
 #ifndef _HEXABLOCKGUI_RESOURCE_HXX_
 #define _HEXABLOCKGUI_RESOURCE_HXX_
 
-#include "HEXABLOCKGUI_Export.hxx"
+#include "hexa_base.hxx"
 
 #include <QtGui>
 
@@ -29,7 +29,7 @@ class SUIT_ResourceMgr;
 
 
 
-class HEXABLOCK_EXPORT HEXABLOCKGUI_Resource 
+class HexaExport HEXABLOCKGUI_Resource 
 {
   public:
     HEXABLOCKGUI_Resource(SUIT_ResourceMgr* r);
index af2a4a64bcac68a6e5eb488eabab6eff51e2f092..3965885500283f10af14943f775342d01787be0d 100644 (file)
@@ -20,7 +20,7 @@
 #ifndef _HEXABLOCKGUI_SALOMETOOLS_HXX_
 #define _HEXABLOCKGUI_SALOMETOOLS_HXX_
 
-#include "HEXABLOCKGUI_Export.hxx"
+#include "hexa_base.hxx"
 
 #include <SalomeApp_Application.h>
 #include <SALOME_Actor.h>
@@ -41,48 +41,48 @@ namespace HEXABLOCK
   namespace GUI
   {
 
-  HEXABLOCK_EXPORT SALOME_Actor* findActorByEntry( SVTK_ViewWindow *theVtkViewWindow, const char* theEntry );
-  HEXABLOCK_EXPORT _PTR(Study) GetActiveStudyDocument();
+HexaExport  SALOME_Actor* findActorByEntry( SVTK_ViewWindow *theVtkViewWindow, const char* theEntry );
+  _PTR(Study)   GetActiveStudyDocument();
 
-  HEXABLOCK_EXPORT int GetNameOfSelectedElements( SVTK_ViewWindow *theWindow,/* SVTK_Selector* theSelector,*/
-                                                  const Handle(SALOME_InteractiveObject)& theIO,
-                                                  QString& theName );
+HexaExport int GetNameOfSelectedElements( SVTK_ViewWindow *theWindow,/* SVTK_Selector* theSelector,*/
+                                 const Handle(SALOME_InteractiveObject)& theIO,
+                                 QString& theName );
 
-  HEXABLOCK_EXPORT std::string shape2string( const TopoDS_Shape& aShape );
+HexaExport std::string shape2string( const TopoDS_Shape& aShape );
 
-  HEXABLOCK_EXPORT void getEntityOwners( const Handle(AIS_InteractiveObject)& theObj,
-                                         const Handle(AIS_InteractiveContext)& theIC,
-                                         SelectMgr_IndexedMapOfOwner& theMap );
+HexaExport void getEntityOwners( const Handle(AIS_InteractiveObject)& theObj,
+                               const Handle(AIS_InteractiveContext)& theIC,
+                               SelectMgr_IndexedMapOfOwner& theMap );
 
-  HEXABLOCK_EXPORT void indicesToOwners( const TColStd_IndexedMapOfInteger& aIndexMap,
-                                         const TopoDS_Shape& aMainShape,
-                                         const SelectMgr_IndexedMapOfOwner& anAllMap,
-                                         SelectMgr_IndexedMapOfOwner& aToHiliteMap );
+HexaExport void indicesToOwners( const TColStd_IndexedMapOfInteger& aIndexMap,
+                               const TopoDS_Shape& aMainShape,
+                               const SelectMgr_IndexedMapOfOwner& anAllMap,
+                               SelectMgr_IndexedMapOfOwner& aToHiliteMap );
 
-  HEXABLOCK_EXPORT TopoDS_Shape getSubShape(const TopoDS_Shape& theShape, const int theIndex);
-  HEXABLOCK_EXPORT int getSubId(const TopoDS_Shape& theShape, const TopoDS_Shape& theSubShape);
+HexaExport TopoDS_Shape getSubShape(const TopoDS_Shape& theShape, const int theIndex);
+HexaExport int getSubId(const TopoDS_Shape& theShape, const TopoDS_Shape& theSubShape);
 
-  HEXABLOCK_EXPORT Standard_Boolean getExtremaSolution(const gp_Pnt& theInitPnt,
+HexaExport Standard_Boolean getExtremaSolution(const gp_Pnt& theInitPnt,
                                                                          const TopoDS_Shape& theRefShape,
                                                                          gp_Pnt& thePnt);
 
-  HEXABLOCK_EXPORT TopoDS_Vertex makePoint(const double x, const double y, const double z);
+HexaExport TopoDS_Vertex makePoint(const double x, const double y, const double z);
 
-  HEXABLOCK_EXPORT TopoDS_Vertex makePointWithReference(const TopoDS_Shape& point, const double dx,
+HexaExport TopoDS_Vertex makePointWithReference(const TopoDS_Shape& point, const double dx,
                                                            const double dy,
                                                            const double dz);
 
-  HEXABLOCK_EXPORT TopoDS_Vertex makePointOnCurve(const TopoDS_Shape& edge, const double param);
+HexaExport TopoDS_Vertex makePointOnCurve(const TopoDS_Shape& edge, const double param);
 
-  HEXABLOCK_EXPORT TopoDS_Vertex makePointOnCurveByLength(const TopoDS_Shape& edge, const TopoDS_Shape& point, const double length);
+HexaExport TopoDS_Vertex makePointOnCurveByLength(const TopoDS_Shape& edge, const TopoDS_Shape& point, const double length);
 
-  HEXABLOCK_EXPORT TopoDS_Vertex makePointOnCurveByCoord(const TopoDS_Shape& edge, const double x, const double y, const double z);
+HexaExport TopoDS_Vertex makePointOnCurveByCoord(const TopoDS_Shape& edge, const double x, const double y, const double z);
 
-  HEXABLOCK_EXPORT TopoDS_Vertex makePointOnLinesIntersection(const TopoDS_Shape& line1, const TopoDS_Shape& line2);
+  TopoDS_Vertex makePointOnLinesIntersection(const TopoDS_Shape& line1, const TopoDS_Shape& line2);
 
-  HEXABLOCK_EXPORT TopoDS_Vertex makePointOnSurface(const TopoDS_Shape& face, const double param_u, const double param_v);
+HexaExport TopoDS_Vertex makePointOnSurface(const TopoDS_Shape& face, const double param_u, const double param_v);
 
-  HEXABLOCK_EXPORT TopoDS_Vertex makePointOnSurfaceByCoord(const TopoDS_Shape& face, const double x, const double y, const double z);
+HexaExport TopoDS_Vertex makePointOnSurfaceByCoord(const TopoDS_Shape& face, const double x, const double y, const double z);
 
   }
 }
index 35bf54ad9e3c44ffb0939aa5fc95e62b2c31a0a2..cccd3e303d487cb85455f7e5b7b787af20d3e129 100755 (executable)
 #ifndef __HEXABLOCKGUI_TRACE_HXX__
 #define __HEXABLOCKGUI_TRACE_HXX__
 
-
-
 #include <iostream>
 #include <sstream>
 
-#include "HEXABLOCKGUI_Export.hxx"
+#include "hexa_base.hxx"
 #include "HEXABLOCKGUI_Exception.hxx"
 
 #ifdef _DEVDEBUG_
@@ -36,7 +34,7 @@
 
 namespace HEXABLOCK {
   namespace GUI {
-    extern HEXABLOCK_EXPORT int traceLevel;
+    extern HexaExport int traceLevel;
   }
 }
 
index 07eb8f3051b975d190add126530a2511744ac3e9..0c4d3bdc4b49201139eb705d8f2946d56baa03b2 100755 (executable)
 
 //#define _DEVDEBUG_
 
-#include <sstream>
-
-#include <iostream>
-
-#include <math.h>
-
-#include "utilities.h"
-
-#include <QtGui>
-
-
-#include <LightApp_Application.h>
-
-#include <SUIT_ViewManager.h>
-#include <SUIT_ViewWindow.h>
-#include <SVTK_ViewManager.h>
-#include <SVTK_ViewModel.h>
-#include <SVTK_ViewWindow.h>
-#include <SVTK_Prs.h>
-#include <SALOME_Actor.h>
-#include <VTKViewer_Algorithm.h>
-#include <SalomeApp_Study.h>
-
 // VTK includes
 #include <vtkRenderer.h>
-#include <vtkActorCollection.h>
-#include <vtkUnstructuredGrid.h>
-#include <vtkRenderWindowInteractor.h>
-#include <vtkSmartPointer.h>
-#include <SVTK_View.h>
-// test tutorial (sphere)
-#include <vtkPolyDataMapper.h>
-#include <vtkSphereSource.h>
-
-// test point (cf. SMESHGUI)
-#include <vtkIdList.h>
-#include <vtkCellArray.h>
-#include <vtkUnsignedCharArray.h>
 #include <vtkUnstructuredGrid.h>
 #include <vtkDataSetMapper.h>
-#include <vtkProperty.h>
-#include <vtkLineSource.h>
-
-#include <vtkLine.h>
-#include <vtkQuad.h>
-#include <vtkHexahedron.h>
-
-#include "vtkLookupTable.h"
-#include "vtkPoints.h"
 #include "vtkCellArray.h"
-#include "vtkFloatArray.h"
 #include "vtkPolyData.h"
-#include "vtkPolyDataMapper.h"
-#include "vtkActor.h"
-#include "vtkPointData.h"
-#include "vtkProperty.h"
-
-
-// #include "vtkStructuredGridReader.h"
-#include "vtkUnstructuredGridReader.h"
 
 #include <VTKViewer_CellLocationsArray.h>
-
-
-
-
-
-#ifndef M_PI
-#define M_PI 3.1415927
-#endif
+#include <SVTK_ViewModel.h>
 
 #include "HEXABLOCKGUI_Trace.hxx"
-#include "HEXABLOCKGUI_DocumentModel.hxx"
 #include "HEXABLOCKGUI_VtkDocumentGraphicView.hxx"
 #include "HEXABLOCKGUI.hxx"
 
-
+#ifndef M_PI
+#define M_PI 3.1415927
+#endif
 
 using namespace std;
 using namespace HEXABLOCK::GUI;
 using namespace HEXA_NS;
-// !!! ceci est ni pipe ni un actor mais un mélange des deux
+
 Document_Actor::Document_Actor( Document* doc, const QString& entry ):
           SALOME_Actor(),
           _doc( doc )
@@ -111,7 +51,8 @@ Document_Actor::Document_Actor( Document* doc, const QString& entry ):
     setIO(anIO);
     vtkUnstructuredGrid* aGrid = getUnstructuredGrid();
     vtkDataSetMapper* aMapper = vtkDataSetMapper::New();
-    aMapper->SetInputData(aGrid);
+    aMapper->SetInputData(aGrid); // saclay
+//    aMapper->SetInput(aGrid);
     aGrid->Delete();
 
     SetVisibility( true );//VisibilityOff();
@@ -306,7 +247,8 @@ Associate_Actor::Associate_Actor( Document* doc, const QString& entry)
     vtkUnstructuredGrid* aGrid = getUnstructuredGrid();
 
     vtkDataSetMapper* aMapper = vtkDataSetMapper::New();
-    aMapper->SetInputData(aGrid);
+    aMapper->SetInputData(aGrid); // saclay
+//    aMapper->SetInput (aGrid);
     aGrid->Delete();
 
     SetVisibility( true );//VisibilityOff();
@@ -500,20 +442,17 @@ VtkDocumentGraphicView::VtkDocumentGraphicView( DocumentModel* documentModel,
     //Model
     setModel(documentModel);
     patternDataModel     = new PatternDataModel(parent);
-    patternBuilderModel  = new PatternBuilderModel(parent);
     patternGeomModel     = new PatternGeomModel(parent);
     groupsModel          = new GroupsModel(parent);
     meshModel            = new MeshModel(parent);
 
     patternDataModel->setSourceModel(documentModel);
-    patternBuilderModel->setSourceModel(documentModel);
     patternGeomModel->setSourceModel(documentModel);
     groupsModel->setSourceModel(documentModel);
     meshModel->setSourceModel(documentModel);
 
     //Selection Model
     patternDataSelectionModel    = new PatternDataSelectionModel(patternDataModel);
-    patternBuilderSelectionModel = new PatternBuilderSelectionModel(patternBuilderModel, patternDataSelectionModel);
     patternGeomSelectionModel    = new PatternGeomSelectionModel(patternGeomModel);
     groupsSelectionModel         = new GroupsSelectionModel(groupsModel);
     meshSelectionModel           = new MeshSelectionModel(meshModel );
@@ -550,13 +489,11 @@ VtkDocumentGraphicView::~VtkDocumentGraphicView()
 
     //Delete Model
     delete patternDataModel;
-    delete patternBuilderModel;
     delete groupsModel;
     delete meshModel;
 
     //Delete Selection Model/ Disconnect signals on delete (Qt)
 //    delete patternDataSelectionModel;
-//    delete patternBuilderSelectionModel;
 //    delete groupsSelectionModel;
 //    delete meshSelectionModel;
 }
@@ -606,13 +543,6 @@ void VtkDocumentGraphicView::update()
 void VtkDocumentGraphicView::setVertexSelection()
 {
   setSelectionMode(NodeSelection);
-// //  NodeSelection,
-// //  CellSelection,
-// //  EdgeOfCellSelection,
-// //  EdgeSelection,
-// //  FaceSelection,
-// //  VolumeSelection,
-// //  ActorSelection };
 }
 
 void VtkDocumentGraphicView::setEdgeSelection()
@@ -677,10 +607,6 @@ void VtkDocumentGraphicView::setSelectionMode( const QModelIndex& eltIndex )
     case PROPAGATION_TREE :
     case PROPAGATION_DIR_TREE :   setEdgeSelection(); break;
     default: setAllSelection();
-//  CellSelection,
-//  EdgeOfCellSelection,
-//  VolumeSelection,
-//  ActorSelection
   }
 }
 
@@ -834,11 +760,9 @@ void VtkDocumentGraphicView::highlightPropagation( const QModelIndex& eltIndex )
 /********************************************************************************
  *                   ABSTRACT METHOD ( MUST BE IMPLEMENTED )
  ********************************************************************************/
-
 /*
     Returns the item that covers the coordinate given in the view.
  */
-
 QModelIndex VtkDocumentGraphicView::indexAt(const QPoint &point) const
 {
     return QModelIndex();
@@ -848,7 +772,6 @@ void VtkDocumentGraphicView::scrollTo(const QModelIndex &index, ScrollHint)
 {
 }
 
-
 /*
     Returns the position of the item in viewport coordinates.
  */
@@ -955,71 +878,3 @@ void VtkDocumentGraphicView::setModel ( QAbstractItemModel * model )
 //        connect( dm, SIGNAL( nameChanged(const QString&) ), this,  SLOT ( setWindowTitle(const QString&) ) );
     }
 }
-
-// void DocumentGraphicView::loadVTK( const QString&  path ) //CS_TEST
-// {
-//   std::cout << "DocumentGraphicView::loadVTK=>"<<std::endl;
-//   QFile file(path);
-//   if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
-//     return;
-// //   QByteArray vtkData = file.readAll ();
-//   QString vtkData = file.readAll ();
-//   vtkData.replace(",",".");
-//
-//
-//   SVTK_ViewWindow* myVTKViewWindow = dynamic_cast<SVTK_ViewWindow*>(_suitView);
-//
-//   // vtkStructuredGridReader
-//   vtkUnstructuredGridReader* r = vtkUnstructuredGridReader::New();
-// //   r->SetFileName( path.toLocal8Bit().constData() );
-//   r->SetInputString( vtkData.toLocal8Bit().constData() );
-//   r->SetReadFromInputString( true );
-//   r->Update();
-//
-//   vtkUnstructuredGrid* myGrid = r->GetOutput();//vtkUnstructuredGrid::New();
-//   std::cout << "GetNumberOfCells =>"<< myGrid->GetNumberOfCells();
-//   // Create and display actor
-//
-//   vtkDataSetMapper* myMapper = vtkDataSetMapper::New();
-//   myMapper->SetInputData(myGrid);
-//
-// //   if ( myPreviewActor ){
-// //     myVTKViewWindow->RemoveActor(myPreviewActor);
-// //     myPreviewActor->Delete();
-// //   }
-//
-//   SALOME_Actor* myPreviewActor = SALOME_Actor::New();
-//   myPreviewActor = SALOME_Actor::New();
-//   Handle(SALOME_InteractiveObject) anIO = new SALOME_InteractiveObject(QString::number( reinterpret_cast<intptr_t>(_hexaDocument) ),"HEXABLOCK");//,theName);
-//   myPreviewActor->setIO(anIO);
-//
-// //   myPreviewActor->PickableOff();
-//   myPreviewActor->SetVisibility( true );//VisibilityOff();
-//   myPreviewActor->SetPickable( true );
-//   myPreviewActor->SetMapper(myMapper);
-//
-//   vtkProperty* aProp = vtkProperty::New();
-// //   aProp->SetRepresentationToWireframe();
-//   aProp->SetRepresentationToSurface();
-//   aProp->EdgeVisibilityOn ();
-//
-// //   aProp->SetColor(10, 10, 250);
-//   aProp->SetPointSize(5);
-//   myPreviewActor->SetProperty(aProp);
-//   aProp->Delete();
-//
-//   /*vtkProperty* myBackProp = vtkProperty::New();
-//   GetColor( "SMESH", "backface_color", aBackRGB[0], aBackRGB[1], aBackRGB[2], QColor( 0, 0, 255 ) );
-//   myBackProp->SetColor( aBackRGB[0], aBackRGB[1], aBackRGB[2] );
-//   myPreviewActor->SetBackfaceProperty( myBackProp );
-//   myBackProp->Delete()*/;
-//   myVTKViewWindow->AddActor(myPreviewActor);
-//   myVTKViewWindow->getRenderer()->Render();
-//   myVTKViewWindow->Repaint();
-//   myVTKViewWindow->onFitAll();
-//
-//   myVTKViewWindow->SetSelectionMode( ActorSelection );
-// // myVTKViewWindow->SetSelectionMode( NodeSelection );
-// // myVTKViewWindow->SetSelectionMode( EdgeSelection );
-// // myVTKViewWindow->SetSelectionMode( FaceSelection );
-// }
index 2e947e757f770e2926ba1f9e925088e5d6ecf6ac..d1b74ea1de5b726527889e4999d4d1941282e1a0 100755 (executable)
@@ -20,8 +20,6 @@
 #ifndef _HEXABLOCKGUI_VTKDOCUMENTGRAPHICVIEW_HXX_
 #define _HEXABLOCKGUI_VTKDOCUMENTGRAPHICVIEW_HXX_
 
-#include "HEXABLOCKGUI_Export.hxx"
-
 // SALOME GUI includes
 #include <LightApp_Displayer.h>
 #include <SUIT_ViewWindow.h>
@@ -55,7 +53,7 @@ namespace HEXABLOCK
 
     namespace GUI
     {
-        class HEXABLOCK_EXPORT Document_Actor : public SALOME_Actor
+        class HexaExport Document_Actor : public SALOME_Actor
         {
           public:
             Document_Actor(HEXA_NS::Document* doc, const QString& entry);
@@ -73,7 +71,7 @@ namespace HEXABLOCK
 
         };
                    // Abu
-        class Associate_Actor : public SALOME_Actor
+        class HexaExport Associate_Actor : public SALOME_Actor
         {
           public:
             Associate_Actor(HEXA_NS::Document* doc, const QString& entry);
@@ -90,11 +88,10 @@ namespace HEXABLOCK
             HEXA_NS::Document* _doc;
         };
 
-
         /********************************************************************************
          *                          VtkDocumentGraphicView
          ********************************************************************************/
-        class HEXABLOCK_EXPORT VtkDocumentGraphicView : public QAbstractItemView
+        class HexaExport VtkDocumentGraphicView : public QAbstractItemView
         {
             Q_OBJECT
 
@@ -135,9 +132,6 @@ namespace HEXABLOCK
                PatternDataSelectionModel* getPatternDataSelectionModel() const
                { return patternDataSelectionModel; }
 
-               PatternBuilderSelectionModel* getPatternBuilderSelectionModel() const
-               { return patternBuilderSelectionModel; }
-
                PatternGeomSelectionModel* getPatternGeomSelectionModel() const
             { return patternGeomSelectionModel;}
 
@@ -148,7 +142,6 @@ namespace HEXABLOCK
                { return meshSelectionModel; }
 
                PatternDataModel*    getPatternDataModel() const {return patternDataModel;}
-               PatternBuilderModel* getPatternBuilderModel() const {return patternBuilderModel;}
                PatternGeomModel*    getPatternGeomModel() const { return patternGeomModel;}
                GroupsModel*         getGroupsModel() const {return groupsModel;}
                MeshModel*           getMeshModel() const {return meshModel;}
@@ -191,13 +184,11 @@ namespace HEXABLOCK
             Associate_Actor*  associateActor;
 
             PatternDataSelectionModel*     patternDataSelectionModel;
-            PatternBuilderSelectionModel*  patternBuilderSelectionModel;
             PatternGeomSelectionModel*     patternGeomSelectionModel;
             GroupsSelectionModel*          groupsSelectionModel;
             MeshSelectionModel*            meshSelectionModel;
 
             PatternDataModel*              patternDataModel;
-            PatternBuilderModel*           patternBuilderModel;
             PatternGeomModel*              patternGeomModel;
             GroupsModel*                   groupsModel;
             MeshModel*                     meshModel;
index ffcedc9a31b7551b4591fe701ead2421359f45d3..654939a9cc6ba4517bb2f6e029d8002b886f0714 100755 (executable)
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>5</width>
+    <height>0</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Hexahedron Construction</string>
   </property>
index 961c15b5c49c49066737d82f58c21dcc3eb409cc..2fc0fb26e48d5cd9d07ea15531709c2ba9ad3e80 100644 (file)
@@ -7,11 +7,11 @@
     <x>0</x>
     <y>0</y>
     <width>282</width>
-    <height>180</height>
+    <height>248</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
@@ -30,7 +30,7 @@
     <widget class="QGroupBox" name="groupBox">
      <property name="minimumSize">
       <size>
-       <width>5</width>
+       <width>0</width>
        <height>0</height>
       </size>
      </property>
@@ -48,7 +48,7 @@
       <item row="0" column="1">
        <widget class="QLineEdit" name="name_le">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
       </item>
       <item row="1" column="1">
        <widget class="QSpinBox" name="nb_nodes_spb">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <property name="minimum">
          <number>0</number>
         </property>
       </item>
       <item row="2" column="1">
        <widget class="QDoubleSpinBox" name="coeff_spb">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <property name="decimals">
          <number>6</number>
         </property>
       <item row="3" column="1">
        <widget class="QComboBox" name="kind_cb">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </item>
        </widget>
       </item>
+      <item row="4" column="1">
+       <spacer name="verticalSpacer">
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>20</width>
+          <height>16777215</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
      </layout>
     </widget>
    </item>
index 302e7b87e2d1c843dec40ff0b5f12f4a66bfe824..5bf8b485454904d093e406dd574278b8ccbe9db6 100644 (file)
@@ -6,16 +6,22 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>275</width>
-    <height>407</height>
+    <width>226</width>
+    <height>422</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>5</width>
+    <height>0</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Cylinders Construction</string>
   </property>
@@ -42,7 +48,7 @@
          <item row="0" column="1">
           <widget class="QLineEdit" name="center_le">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
@@ -61,7 +67,7 @@
          <item row="1" column="1">
           <widget class="QLineEdit" name="direction_le">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          </item>
          <item row="2" column="1">
           <widget class="QDoubleSpinBox" name="radius_spb">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="decimals">
             <number>6</number>
            </property>
          </item>
          <item row="3" column="1">
           <widget class="QDoubleSpinBox" name="height_spb">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="decimals">
             <number>6</number>
            </property>
          <item row="0" column="1">
           <widget class="QLineEdit" name="center2_le">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          <item row="1" column="1">
           <widget class="QLineEdit" name="direction2_le">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          </item>
          <item row="2" column="1">
           <widget class="QDoubleSpinBox" name="radius2_spb">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="decimals">
             <number>6</number>
            </property>
          </item>
          <item row="3" column="1">
           <widget class="QDoubleSpinBox" name="height2_spb">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="decimals">
             <number>6</number>
            </property>
         <property name="sizeHint" stdset="0">
          <size>
           <width>20</width>
-          <height>0</height>
+          <height>16777215</height>
          </size>
         </property>
        </spacer>
index aec53ea39810b913d23a295afe1db1c32b769947..b9904a614d903c89f1952e4c3695fde4ce4a8557 100644 (file)
@@ -18,7 +18,7 @@
   </property>
   <property name="minimumSize">
    <size>
-    <width>0</width>
+    <width>5</width>
     <height>324</height>
    </size>
   </property>
index 3df3a492f74dfe81af51db81f07a1cd6a18cc0ca..6828f33793614319a3db97e06fb87cd42eb58464 100644 (file)
@@ -6,16 +6,22 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>305</width>
-    <height>464</height>
+    <width>253</width>
+    <height>480</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>5</width>
+    <height>0</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Pipes Construction</string>
   </property>
@@ -42,7 +48,7 @@
          <item row="0" column="1">
           <widget class="QLineEdit" name="origin_le">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
@@ -59,7 +65,7 @@
          <item row="1" column="1">
           <widget class="QLineEdit" name="dir_le">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          </item>
          <item row="2" column="1">
           <widget class="QDoubleSpinBox" name="ext_radius_spb">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="decimals">
             <number>6</number>
            </property>
          </item>
          <item row="3" column="0">
           <widget class="QLabel" name="label_4">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="text">
             <string>hole radius</string>
            </property>
          </item>
          <item row="3" column="1">
           <widget class="QDoubleSpinBox" name="int_radius_spb">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="decimals">
             <number>6</number>
            </property>
          </item>
          <item row="4" column="1">
           <widget class="QDoubleSpinBox" name="height_spb">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="decimals">
             <number>6</number>
            </property>
          <item row="0" column="1">
           <widget class="QLineEdit" name="origin2_le">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          <item row="1" column="1">
           <widget class="QLineEdit" name="dir2_le">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          </item>
          <item row="2" column="1">
           <widget class="QDoubleSpinBox" name="ext_radius2_spb">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="decimals">
             <number>6</number>
            </property>
          </item>
          <item row="3" column="0">
           <widget class="QLabel" name="label_9">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="text">
             <string>hole radius</string>
            </property>
          </item>
          <item row="3" column="1">
           <widget class="QDoubleSpinBox" name="int_radius2_spb">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="decimals">
             <number>6</number>
            </property>
          </item>
          <item row="4" column="1">
           <widget class="QDoubleSpinBox" name="height2_spb">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="decimals">
             <number>6</number>
            </property>
         </layout>
        </widget>
       </item>
+      <item>
+       <spacer name="verticalSpacer">
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>20</width>
+          <height>16777215</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
      </layout>
     </widget>
    </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>0</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
   </layout>
  </widget>
  <resources/>
index d80ae66d09122c1ec42e5b05bda333cc0c9ee4ea..e8da098d972fd27c9f9dd3e7b3cd218c09c8d608 100644 (file)
     <height>198</height>
    </rect>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>5</width>
+    <height>0</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Merge Operation</string>
   </property>
@@ -36,7 +42,7 @@
       <item row="0" column="1">
        <widget class="QLineEdit" name="e0_le">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
       </item>
       <item row="2" column="1">
        <widget class="QLineEdit" name="e1_le">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <property name="maximumSize">
          <size>
           <width>16777215</width>
       </item>
       <item row="4" column="1">
        <widget class="QLineEdit" name="v0_le">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <property name="maximumSize">
          <size>
           <width>16777215</width>
       </item>
       <item row="6" column="1">
        <widget class="QLineEdit" name="v1_le">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <property name="minimumSize">
          <size>
           <width>127</width>
index 6a6275fcbf07b4ff72af22944c2609b67ed7c249..89414fd1c215df9836523b3b991751bccd79c5d4 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>254</width>
-    <height>736</height>
+    <width>304</width>
+    <height>836</height>
    </rect>
   </property>
   <property name="sizePolicy">
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>5</width>
+    <height>0</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string> Merge Operation</string>
   </property>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
+     <property name="minimumSize">
+      <size>
+       <width>0</width>
+       <height>0</height>
+      </size>
+     </property>
      <property name="widgetResizable">
       <bool>true</bool>
      </property>
@@ -39,8 +51,8 @@
        <rect>
         <x>0</x>
         <y>0</y>
-        <width>216</width>
-        <height>784</height>
+        <width>284</width>
+        <height>816</height>
        </rect>
       </property>
       <layout class="QVBoxLayout" name="verticalLayout_6">
@@ -59,7 +71,7 @@
           <item>
            <widget class="QRadioButton" name="rb0">
             <property name="sizePolicy">
-             <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
@@ -75,7 +87,7 @@
           <item>
            <widget class="QRadioButton" name="rb1">
             <property name="sizePolicy">
-             <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
           </item>
           <item>
            <widget class="QRadioButton" name="rb2">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
             <property name="text">
              <string>Quad</string>
             </property>
                 </item>
                 <item row="0" column="1">
                  <widget class="QLineEdit" name="v1_le_rb0">
+                  <property name="sizePolicy">
+                   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                   </sizepolicy>
+                  </property>
                   <property name="maximumSize">
                    <size>
                     <width>16777215</width>
                 </item>
                 <item row="0" column="1">
                  <widget class="QLineEdit" name="e0_le_rb1">
+                  <property name="sizePolicy">
+                   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                   </sizepolicy>
+                  </property>
                   <property name="maximumSize">
                    <size>
                     <width>16777215</width>
                 </item>
                 <item row="1" column="1">
                  <widget class="QLineEdit" name="v0_le_rb1">
+                  <property name="sizePolicy">
+                   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                   </sizepolicy>
+                  </property>
                   <property name="maximumSize">
                    <size>
                     <width>16777215</width>
                 </item>
                 <item row="0" column="1">
                  <widget class="QLineEdit" name="e1_le_rb1">
+                  <property name="sizePolicy">
+                   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                   </sizepolicy>
+                  </property>
                   <property name="maximumSize">
                    <size>
                     <width>16777215</width>
                 </item>
                 <item row="1" column="1">
                  <widget class="QLineEdit" name="v1_le_rb1">
+                  <property name="sizePolicy">
+                   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                   </sizepolicy>
+                  </property>
                   <property name="maximumSize">
                    <size>
                     <width>16777215</width>
                 </item>
                 <item row="0" column="1">
                  <widget class="QLineEdit" name="q0_le_rb2">
+                  <property name="sizePolicy">
+                   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                   </sizepolicy>
+                  </property>
                   <property name="maximumSize">
                    <size>
                     <width>16777215</width>
                 </item>
                 <item row="1" column="1">
                  <widget class="QLineEdit" name="v0_le_rb2">
+                  <property name="sizePolicy">
+                   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                   </sizepolicy>
+                  </property>
                   <property name="maximumSize">
                    <size>
                     <width>16777215</width>
                 </item>
                 <item row="2" column="1">
                  <widget class="QLineEdit" name="v2_le_rb2">
+                  <property name="sizePolicy">
+                   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                   </sizepolicy>
+                  </property>
                   <property name="maximumSize">
                    <size>
                     <width>16777215</width>
                 </item>
                 <item row="0" column="1">
                  <widget class="QLineEdit" name="q1_le_rb2">
+                  <property name="sizePolicy">
+                   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                   </sizepolicy>
+                  </property>
                   <property name="maximumSize">
                    <size>
                     <width>16777215</width>
                 </item>
                 <item row="1" column="1">
                  <widget class="QLineEdit" name="v1_le_rb2">
+                  <property name="sizePolicy">
+                   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                   </sizepolicy>
+                  </property>
                   <property name="maximumSize">
                    <size>
                     <width>16777215</width>
                 </item>
                 <item row="2" column="1">
                  <widget class="QLineEdit" name="v3_le_rb2">
+                  <property name="sizePolicy">
+                   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                   </sizepolicy>
+                  </property>
                   <property name="maximumSize">
                    <size>
                     <width>16777215</width>
             </layout>
            </widget>
           </item>
+          <item>
+           <spacer name="verticalSpacer">
+            <property name="orientation">
+             <enum>Qt::Vertical</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>16777215</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
          </layout>
         </widget>
        </item>
-       <item>
-        <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>
      </widget>
     </widget>
index 02eab54bcd7a5e74f0e8d591347b0d6174be8313..52705486728a1092d2eeb1fad385977f1d1031b2 100644 (file)
@@ -99,8 +99,8 @@ MyBasicGUI_PointDlg::MyBasicGUI_PointDlg(QWidget* parent, Qt::WindowFlags fl)
     QPixmap image7 (aResMgr->loadPixmap("GEOM", tr("ICO_WIRE")));
 
     setWindowTitle( tr("Vertex Association") );
-    setMinimumWidth(260);
-    setMinimumHeight(400);
+//    setMinimumWidth(260);
+//    setMinimumHeight(400);
 
     mainFrame()->GroupConstructors->setTitle(tr("GEOM_POINTS"));
     mainFrame()->RadioButton1->setIcon(image0);
index fcfc9c218b85e433e2d0f60d86425cf48efcb88e..730c224fe01ba16c4541aeb0c58b8be8f3a7866d 100755 (executable)
@@ -21,7 +21,7 @@
 #ifndef MYBASICGUI_POINTDLG_H
 #define MYBASICGUI_POINTDLG_H
 
-#include "HEXABLOCKGUI_Export.hxx"
+
 
 
 #include "MyGEOMBase_Skeleton.hxx"
@@ -63,7 +63,8 @@ namespace HEXABLOCK
 // class    : MyBasicGUI_PointDlg
 // purpose  :
 //=================================================================================
-typedef class HEXABLOCK_EXPORT MyBasicGUI_PointDlg : public MyGEOMBase_Skeleton
+#include "hexa_base.hxx"
+typedef class HexaExport MyBasicGUI_PointDlg : public MyGEOMBase_Skeleton
 {
   Q_OBJECT
 
@@ -112,8 +113,8 @@ private slots:
   void                               ClickParamCoord( int );
   void                               onBtnPopup( QAction* );
   void                               updateSize();
-//void                               onRefPointChanged(const QString& pointName);
-//void                               onStartPointSelected(const QString& pointName);
+  void                               onRefPointChanged(const QString& pointName);
+  void                               onStartPointSelected(const QString& pointName);
   void                               onParamValueChanged(double newValue);
   void                               onXCoordChanged(double newValue);
   void                               onYCoordChanged(double newValue);
index 4254a82c8f5d17963fa98bd0b22659dd574b6dfc..8a6ec71b88c33c3acb37d1cefca49c1e801fd949 100755 (executable)
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>345</width>
-    <height>538</height>
+    <height>401</height>
    </rect>
   </property>
   <property name="sizePolicy">
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>5</width>
+    <height>0</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string/>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout_2">
    <item>
     <widget class="QScrollArea" name="scrollArea">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
      <property name="horizontalScrollBarPolicy">
       <enum>Qt::ScrollBarAsNeeded</enum>
      </property>
         <x>0</x>
         <y>0</y>
         <width>325</width>
-        <height>518</height>
+        <height>381</height>
        </rect>
       </property>
       <layout class="QVBoxLayout" name="verticalLayout_3">
        <item>
         <widget class="QGroupBox" name="groupBox_2">
+         <property name="minimumSize">
+          <size>
+           <width>5</width>
+           <height>0</height>
+          </size>
+         </property>
          <property name="title">
           <string>Vertex of the model</string>
          </property>
        </item>
        <item>
         <widget class="QGroupBox" name="groupBox">
+         <property name="minimumSize">
+          <size>
+           <width>5</width>
+           <height>0</height>
+          </size>
+         </property>
          <property name="title">
           <string>Point of the geometry</string>
          </property>
            </widget>
           </item>
           <item>
-           <spacer name="verticalSpacer_2">
+           <spacer name="verticalSpacer">
             <property name="orientation">
              <enum>Qt::Vertical</enum>
             </property>
             <property name="sizeHint" stdset="0">
              <size>
               <width>20</width>
-              <height>10</height>
+              <height>16777215</height>
              </size>
             </property>
            </spacer>
index 531f0c81c24e37da03631a05a6a6d54e8a72bfdd..da14e2a693b552afbdea1e0ca8cd47203ba467a0 100755 (executable)
@@ -20,7 +20,7 @@
 #ifndef MYGEOMBASE_SKELETON_H
 #define MYGEOMBASE_SKELETON_H
 
-#include "HEXABLOCKGUI_Export.hxx"
+
 
 #include "HEXABLOCKGUI_OccGraphicView.hxx"
 #include "HEXABLOCKGUI.hxx"
@@ -43,12 +43,14 @@ class QPushButton;
 #  define DBL_DIGITS_DISPLAY 13
 #endif // COORD_MIN
 
+#include "hexa_base.hxx"
+
 namespace HEXABLOCK
 {
 namespace GUI
 {
 
-class HEXABLOCK_EXPORT MyGEOMBase_Skeleton : public HexaBaseDialog
+class HexaExport MyGEOMBase_Skeleton : public HexaBaseDialog
 {
        Q_OBJECT
 
index 71505ad830563920aff2f5fb25ff70a34da91dc3..5d958bc66a415b45559eab64dfd4d3de8937544e 100644 (file)
@@ -18,7 +18,7 @@
   </property>
   <property name="minimumSize">
    <size>
-    <width>0</width>
+    <width>5</width>
     <height>300</height>
    </size>
   </property>
            <verstretch>0</verstretch>
           </sizepolicy>
          </property>
+         <property name="minimumSize">
+          <size>
+           <width>5</width>
+           <height>0</height>
+          </size>
+         </property>
          <property name="currentIndex">
           <number>0</number>
          </property>
index f9ea14bb1e8d61b4a01c5135cd90033a83a3e28f..edc03e3caeaaa826bd82742069e83f1a1925dc7f 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>196</width>
-    <height>297</height>
+    <width>251</width>
+    <height>341</height>
    </rect>
   </property>
   <property name="sizePolicy">
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>5</width>
+    <height>0</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Propagation</string>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
+  <layout class="QVBoxLayout" name="verticalLayout_2">
    <item>
     <widget class="QGroupBox" name="groupBox_2">
      <property name="sizePolicy">
      <property name="title">
       <string>Propagation(s)</string>
      </property>
-     <layout class="QVBoxLayout" name="verticalLayout_3">
+     <layout class="QVBoxLayout" name="verticalLayout">
       <item>
        <widget class="QListWidget" name="propagations_lw">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+         <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
+        <property name="minimumSize">
+         <size>
+          <width>0</width>
+          <height>130</height>
+         </size>
+        </property>
        </widget>
       </item>
      </layout>
@@ -54,7 +66,7 @@
    <item>
     <widget class="QGroupBox" name="groupBox_3">
      <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
@@ -62,7 +74,7 @@
      <property name="title">
       <string>Law</string>
      </property>
-     <layout class="QVBoxLayout" name="verticalLayout_4">
+     <layout class="QVBoxLayout" name="verticalLayout_3">
       <item>
        <widget class="QLineEdit" name="law_le">
         <property name="sizePolicy">
    </item>
    <item>
     <widget class="QCheckBox" name="way_cb">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
      <property name="text">
       <string>way</string>
      </property>
     </widget>
    </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>16777215</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
    <item>
     <widget class="QDialogButtonBox" name="buttonBox">
      <property name="orientation">
index 30bbdeeb4af088e749fb5c454bdab9a39ea932c8..71678fc4373f6ad3f9f560cc9a2359f83d87cdf4 100644 (file)
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>232</width>
-    <height>271</height>
+    <height>378</height>
    </rect>
   </property>
   <property name="sizePolicy">
   </property>
   <property name="minimumSize">
    <size>
-    <width>0</width>
+    <width>5</width>
     <height>0</height>
    </size>
   </property>
   <property name="maximumSize">
    <size>
     <width>16777215</width>
-    <height>378</height>
+    <height>16777215</height>
    </size>
   </property>
   <property name="windowTitle">
@@ -53,7 +53,7 @@
       <item>
        <widget class="QGroupBox" name="groupBox_4">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
@@ -71,7 +71,7 @@
          <item>
           <widget class="QLineEdit" name="quad_le">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
         </layout>
        </widget>
       </item>
+      <item>
+       <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>
     </widget>
    </item>
index 6b661e871e1587c8b265f3c706969aa0beb363c6..69775fd1be1b3456d882056f71cc8c1edc1884b8 100644 (file)
@@ -7,13 +7,13 @@
     <x>0</x>
     <y>0</y>
     <width>389</width>
-    <height>584</height>
+    <height>712</height>
    </rect>
   </property>
   <property name="minimumSize">
    <size>
     <width>5</width>
-    <height>300</height>
+    <height>0</height>
    </size>
   </property>
   <property name="windowTitle">
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QWidget" name="widget" native="true">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
      <layout class="QHBoxLayout" name="horizontalLayout_2">
       <item>
        <widget class="QRadioButton" name="revolutionUni_rb">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <property name="text">
          <string>Uniform</string>
         </property>
       </item>
       <item>
        <widget class="QRadioButton" name="revolution_rb">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <property name="text">
          <string>Custom</string>
         </property>
    </item>
    <item>
     <widget class="QScrollArea" name="scrollArea">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
      <property name="widgetResizable">
       <bool>true</bool>
      </property>
@@ -54,7 +78,7 @@
         <x>0</x>
         <y>0</y>
         <width>369</width>
-        <height>518</height>
+        <height>646</height>
        </rect>
       </property>
       <layout class="QVBoxLayout" name="verticalLayout_4">
           <item row="0" column="1">
            <widget class="QLineEdit" name="center_le">
             <property name="sizePolicy">
-             <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
           <item row="1" column="1">
            <widget class="QLineEdit" name="axis_le">
             <property name="sizePolicy">
-             <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
           </item>
           <item row="0" column="1">
            <widget class="QDoubleSpinBox" name="angle_spb">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
             <property name="decimals">
              <number>6</number>
             </property>
           </item>
           <item row="1" column="1">
            <widget class="QSpinBox" name="nbre_spb">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
             <property name="maximum">
              <number>1000000</number>
             </property>
          </widget>
         </widget>
        </item>
+       <item>
+        <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>
      </widget>
     </widget>
index 38360a6a8ccb14346622f6bcd990b483252b5293..435496f7b5edbcff430f894e140c457a5430b912 100755 (executable)
@@ -6,19 +6,19 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>216</width>
-    <height>463</height>
+    <width>232</width>
+    <height>495</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
   <property name="minimumSize">
    <size>
-    <width>0</width>
+    <width>5</width>
     <height>0</height>
    </size>
   </property>
    <item>
     <widget class="QGroupBox" name="groupBox">
      <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
      <property name="minimumSize">
       <size>
-       <width>5</width>
+       <width>1</width>
        <height>0</height>
       </size>
      </property>
@@ -50,7 +50,7 @@
       <item>
        <widget class="QRadioButton" name="rb0">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
@@ -66,7 +66,7 @@
       <item>
        <widget class="QRadioButton" name="rb1">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
    <item>
     <widget class="QGroupBox" name="groupBox_2">
      <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
      <property name="minimumSize">
       <size>
-       <width>5</width>
+       <width>1</width>
        <height>0</height>
       </size>
      </property>
      <layout class="QVBoxLayout" name="verticalLayout">
       <item>
        <widget class="QWidget" name="widget_3" native="true">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <layout class="QFormLayout" name="formLayout_3">
          <item row="0" column="0">
           <widget class="QLabel" name="label_9">
       <item>
        <widget class="QWidget" name="widget" native="true">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
         <layout class="QFormLayout" name="formLayout">
+         <property name="fieldGrowthPolicy">
+          <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+         </property>
          <item row="0" column="0">
           <widget class="QLabel" name="label">
            <property name="text">
            </property>
           </widget>
          </item>
-         <item row="0" column="1">
-          <widget class="QLineEdit" name="v0_le_rb0">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="maximumSize">
-            <size>
-             <width>16777215</width>
-             <height>16777215</height>
-            </size>
-           </property>
-           <property name="readOnly">
-            <bool>false</bool>
-           </property>
-          </widget>
-         </item>
          <item row="1" column="0">
           <widget class="QLabel" name="label_2">
            <property name="text">
            </property>
           </widget>
          </item>
+         <item row="0" column="1">
+          <widget class="QLineEdit" name="v0_le_rb0">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="maximumSize">
+            <size>
+             <width>16777215</width>
+             <height>16777215</height>
+            </size>
+           </property>
+           <property name="readOnly">
+            <bool>false</bool>
+           </property>
+          </widget>
+         </item>
         </layout>
        </widget>
       </item>
       <item>
        <widget class="QWidget" name="widget_2" native="true">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
          <item row="0" column="1">
           <widget class="QLineEdit" name="e0_le_rb1">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          <item row="1" column="1">
           <widget class="QLineEdit" name="e1_le_rb1">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          <item row="2" column="1">
           <widget class="QLineEdit" name="e2_le_rb1">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          <item row="3" column="1">
           <widget class="QLineEdit" name="e3_le_rb1">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
         </layout>
        </widget>
       </item>
+      <item>
+       <spacer name="verticalSpacer">
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>20</width>
+          <height>16777215</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
      </layout>
     </widget>
    </item>
   <connection>
    <sender>rb1</sender>
    <signal>clicked()</signal>
-   <receiver>widget_2</receiver>
-   <slot>show()</slot>
+   <receiver>widget</receiver>
+   <slot>hide()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>297</x>
-     <y>46</y>
+     <x>353</x>
+     <y>49</y>
     </hint>
     <hint type="destinationlabel">
-     <x>310</x>
-     <y>264</y>
+     <x>351</x>
+     <y>110</y>
     </hint>
    </hints>
   </connection>
   <connection>
    <sender>rb1</sender>
    <signal>clicked()</signal>
-   <receiver>widget</receiver>
-   <slot>hide()</slot>
+   <receiver>widget_2</receiver>
+   <slot>show()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>353</x>
-     <y>49</y>
+     <x>297</x>
+     <y>46</y>
     </hint>
     <hint type="destinationlabel">
-     <x>351</x>
-     <y>110</y>
+     <x>310</x>
+     <y>264</y>
     </hint>
    </hints>
   </connection>
index cdb9fcd653622e60f17a8905ecfc7d7204f92d95..52598f52d39639ab6c39e01be155586611752de0 100644 (file)
@@ -6,12 +6,12 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>225</width>
-    <height>109</height>
+    <width>257</width>
+    <height>156</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
      <property name="title">
       <string/>
      </property>
-     <layout class="QFormLayout" name="formLayout">
-      <item row="0" column="0">
-       <widget class="QLabel" name="label">
-        <property name="text">
-         <string>Hexa</string>
-        </property>
-       </widget>
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <item>
+       <layout class="QFormLayout" name="formLayout">
+        <item row="0" column="0">
+         <widget class="QLabel" name="label">
+          <property name="text">
+           <string>Hexa</string>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="1">
+         <widget class="QLineEdit" name="hexa_le">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="maximumSize">
+           <size>
+            <width>16777215</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="readOnly">
+           <bool>false</bool>
+          </property>
+         </widget>
+        </item>
+       </layout>
       </item>
-      <item row="0" column="1">
-       <widget class="QLineEdit" name="hexa_le">
+      <item>
+       <widget class="QCheckBox" name="connected_cb">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="maximumSize">
-         <size>
-          <width>16777215</width>
-          <height>16777215</height>
-         </size>
-        </property>
-        <property name="readOnly">
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0" colspan="2">
-       <widget class="QCheckBox" name="connected_cb">
         <property name="text">
          <string>including connected hexa</string>
         </property>
        </widget>
       </item>
+      <item>
+       <spacer name="verticalSpacer">
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>20</width>
+          <height>16777215</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
      </layout>
     </widget>
    </item>
index a1908f041bd6e6bb697a6a431ec02054f2d1661a..e387f00a839c12afa8e98be5783f175188b9db30 100644 (file)
@@ -6,13 +6,13 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>369</width>
-    <height>457</height>
+    <width>287</width>
+    <height>500</height>
    </rect>
   </property>
   <property name="minimumSize">
    <size>
-    <width>0</width>
+    <width>5</width>
     <height>0</height>
    </size>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QScrollArea" name="scrollArea">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
      <property name="widgetResizable">
       <bool>true</bool>
      </property>
@@ -30,8 +36,8 @@
        <rect>
         <x>0</x>
         <y>0</y>
-        <width>349</width>
-        <height>437</height>
+        <width>267</width>
+        <height>480</height>
        </rect>
       </property>
       <layout class="QVBoxLayout" name="verticalLayout_4">
@@ -69,7 +75,7 @@
           <item>
            <widget class="QWidget" name="widget" native="true">
             <property name="sizePolicy">
-             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
@@ -85,7 +91,7 @@
              <item row="0" column="1">
               <widget class="QLineEdit" name="p1_le">
                <property name="sizePolicy">
-                <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                  <horstretch>0</horstretch>
                  <verstretch>0</verstretch>
                 </sizepolicy>
              <item row="1" column="1">
               <widget class="QLineEdit" name="p2_le">
                <property name="sizePolicy">
-                <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                  <horstretch>0</horstretch>
                  <verstretch>0</verstretch>
                 </sizepolicy>
              <item row="2" column="1">
               <widget class="QLineEdit" name="p3_le">
                <property name="sizePolicy">
-                <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
                  <horstretch>0</horstretch>
                  <verstretch>0</verstretch>
                 </sizepolicy>
        <item>
         <widget class="QGroupBox" name="groupBox_2">
          <property name="sizePolicy">
-          <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
            <horstretch>0</horstretch>
            <verstretch>0</verstretch>
           </sizepolicy>
           <item row="0" column="1">
            <widget class="QLineEdit" name="c1_le">
             <property name="sizePolicy">
-             <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
           <item row="1" column="1">
            <widget class="QLineEdit" name="c2_le">
             <property name="sizePolicy">
-             <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
           <item row="2" column="1">
            <widget class="QLineEdit" name="c3_le">
             <property name="sizePolicy">
-             <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
               <horstretch>0</horstretch>
               <verstretch>0</verstretch>
              </sizepolicy>
index f745ea358ff61f65cbd2bf9a1242087531f01337..1b3351050c12251aecce001c3d953b2232fdb56e 100755 (executable)
@@ -20,7 +20,7 @@
 #ifndef _RESOURCE_HXX_
 #define _RESOURCE_HXX_
 
-#include "HEXABLOCKGUI_Export.hxx"
+#include "hexa_base.hxx"
 
 #include <QColor>
 #include <QFont>
 
 namespace HEXABLOCK {
   namespace GUI {
-    class HEXABLOCK_EXPORT Resource {
+    class HexaExport Resource {
       public:
         Resource();
 
index ceb71a155d0ca2e68f4e61fdb6b098e052c48357..dc53b8aad879cebe00832d68c977f07d0b62b815 100644 (file)
@@ -6,12 +6,12 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>234</width>
+    <width>280</width>
     <height>422</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
@@ -39,8 +39,8 @@
      </property>
      <property name="minimumSize">
       <size>
-       <width>5</width>
-       <height>50</height>
+       <width>1</width>
+       <height>0</height>
       </size>
      </property>
      <property name="maximumSize">
@@ -56,7 +56,7 @@
       <item row="0" column="0">
        <widget class="QRadioButton" name="rb0">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
@@ -72,7 +72,7 @@
       <item row="0" column="1">
        <widget class="QRadioButton" name="rb1">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
       </item>
       <item row="0" column="2">
        <widget class="QRadioButton" name="rb2">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <property name="text">
          <string>Plane</string>
         </property>
     <widget class="QGroupBox" name="groupBox_2">
      <property name="minimumSize">
       <size>
-       <width>5</width>
+       <width>1</width>
        <height>0</height>
       </size>
      </property>
          <item row="0" column="1">
           <widget class="QLineEdit" name="elts_le_rb0">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
           </widget>
          </item>
          <item row="1" column="1">
-          <widget class="QLineEdit" name="vex_le_rb0"/>
+          <widget class="QLineEdit" name="vex_le_rb0">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+          </widget>
          </item>
         </layout>
        </widget>
          <item row="0" column="1">
           <widget class="QLineEdit" name="elts_le_rb1">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          <item row="1" column="1">
           <widget class="QLineEdit" name="vex_le_rb1">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          <item row="2" column="1">
           <widget class="QLineEdit" name="vec_le_rb1">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          <item row="0" column="1">
           <widget class="QLineEdit" name="elts_le_rb2">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          <item row="1" column="1">
           <widget class="QLineEdit" name="vex_le_rb2">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          <item row="2" column="1">
           <widget class="QLineEdit" name="vec_le_rb2">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
index 78b0ba18d8b623c82cd786003065cc2be6c7c1e8..b25436c19ef40c2af945baf285fa479ef3a7d776 100644 (file)
@@ -6,16 +6,22 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>287</width>
+    <width>266</width>
     <height>475</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>5</width>
+    <height>0</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Transform Operation</string>
   </property>
        <height>0</height>
       </size>
      </property>
+     <property name="maximumSize">
+      <size>
+       <width>16777215</width>
+       <height>50</height>
+      </size>
+     </property>
      <property name="title">
       <string/>
      </property>
@@ -44,7 +56,7 @@
       <item>
        <widget class="QRadioButton" name="rb0">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
@@ -60,7 +72,7 @@
       <item>
        <widget class="QRadioButton" name="rb1">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
@@ -73,7 +85,7 @@
       <item>
        <widget class="QRadioButton" name="rb2">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
       <item>
        <widget class="QWidget" name="widget" native="true">
         <layout class="QFormLayout" name="formLayout">
+         <property name="fieldGrowthPolicy">
+          <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+         </property>
          <item row="0" column="0">
           <widget class="QLabel" name="label_6">
            <property name="text">
          </item>
          <item row="0" column="1">
           <widget class="QLineEdit" name="elts_le_rb0">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="maximumSize">
             <size>
              <width>16777215</width>
       <item>
        <widget class="QWidget" name="widget_2" native="true">
         <layout class="QFormLayout" name="formLayout_2">
+         <property name="fieldGrowthPolicy">
+          <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+         </property>
+         <item row="1" column="0">
+          <widget class="QLabel" name="label_8">
+           <property name="text">
+            <string>elements</string>
+           </property>
+          </widget>
+         </item>
          <item row="1" column="1">
           <widget class="QLineEdit" name="elts_le_rb1">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="maximumSize">
             <size>
              <width>16777215</width>
          </item>
          <item row="2" column="1">
           <widget class="QLineEdit" name="vex_le_rb1">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="maximumSize">
             <size>
              <width>16777215</width>
          </item>
          <item row="3" column="1">
           <widget class="QDoubleSpinBox" name="k_spb">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="decimals">
             <number>6</number>
            </property>
            </property>
           </widget>
          </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="label_8">
-           <property name="text">
-            <string>elements</string>
-           </property>
-          </widget>
-         </item>
         </layout>
        </widget>
       </item>
       <item>
        <widget class="QWidget" name="widget_3" native="true">
         <layout class="QFormLayout" name="formLayout_3">
+         <property name="fieldGrowthPolicy">
+          <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+         </property>
+         <item row="1" column="0">
+          <widget class="QLabel" name="label_9">
+           <property name="text">
+            <string>elements</string>
+           </property>
+          </widget>
+         </item>
          <item row="1" column="1">
           <widget class="QLineEdit" name="elts_le_rb2">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="maximumSize">
             <size>
              <width>16777215</width>
          </item>
          <item row="2" column="1">
           <widget class="QLineEdit" name="vex_le_rb2">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="maximumSize">
             <size>
              <width>16777215</width>
          </item>
          <item row="3" column="1">
           <widget class="QLineEdit" name="vec_le_rb2">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="maximumSize">
             <size>
              <width>16777215</width>
          </item>
          <item row="4" column="1">
           <widget class="QDoubleSpinBox" name="angle_spb">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="wrapping">
             <bool>false</bool>
            </property>
            </property>
           </widget>
          </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="label_9">
-           <property name="text">
-            <string>elements</string>
-           </property>
-          </widget>
-         </item>
         </layout>
        </widget>
       </item>
index 80e9001d97f7ea9b172b69eda24c148fff72f606..16b215ef3da6cb4b2274402f5f390c2e2c3fe860 100644 (file)
@@ -6,16 +6,22 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>255</width>
-    <height>364</height>
+    <width>231</width>
+    <height>395</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
+  <property name="minimumSize">
+   <size>
+    <width>5</width>
+    <height>0</height>
+   </size>
+  </property>
   <property name="windowTitle">
    <string>Vector Construction</string>
   </property>
@@ -26,7 +32,7 @@
    <item>
     <widget class="QGroupBox" name="groupBox_2">
      <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
@@ -38,7 +44,7 @@
       <item>
        <widget class="QRadioButton" name="rb0">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
@@ -54,7 +60,7 @@
       <item>
        <widget class="QRadioButton" name="rb1">
         <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
@@ -89,7 +95,7 @@
             <bool>true</bool>
            </property>
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          <item row="0" column="1">
           <widget class="QDoubleSpinBox" name="dx_spb_rb0">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
             <bool>true</bool>
            </property>
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          <item row="2" column="1">
           <widget class="QDoubleSpinBox" name="dz_spb_rb0">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          <item row="0" column="1">
           <widget class="QLineEdit" name="v0_le_rb1">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          <item row="1" column="1">
           <widget class="QLineEdit" name="v1_le_rb1">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
         </layout>
        </widget>
       </item>
+      <item>
+       <spacer name="verticalSpacer">
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>20</width>
+          <height>16777215</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
      </layout>
     </widget>
    </item>
index 4a140bf9e1b50bf34afb04b0001e5febca1b0bc6..5c711a027de385f21b9f9fa1a36a735530443c3c 100755 (executable)
@@ -6,19 +6,19 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>246</width>
-    <height>216</height>
+    <width>228</width>
+    <height>248</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
   <property name="minimumSize">
    <size>
-    <width>0</width>
+    <width>5</width>
     <height>0</height>
    </size>
   </property>
@@ -54,7 +54,7 @@
          <item row="0" column="1">
           <widget class="QLineEdit" name="name_le">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
          </item>
          <item row="0" column="1">
           <widget class="QLineEdit" name="x_spb">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="text">
             <string>0</string>
            </property>
          </item>
          <item row="1" column="1">
           <widget class="QLineEdit" name="y_spb">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="text">
             <string>0</string>
            </property>
          </item>
          <item row="2" column="1">
           <widget class="QLineEdit" name="z_spb">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
            <property name="text">
             <string>0</string>
            </property>
         </layout>
        </widget>
       </item>
+      <item>
+       <spacer name="verticalSpacer">
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>20</width>
+          <height>16777215</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
      </layout>
     </widget>
    </item>
index 089b8f3d8f7607b7955fd1740d162f57e23236c9..f861f742830d73034fd12a955c37b28895694939 100644 (file)
@@ -22,8 +22,6 @@
 #ifndef KLINKITEMSELECTIONMODEL_H
 #define KLINKITEMSELECTIONMODEL_H
 
-#include "HEXABLOCKGUI_Export.hxx"
-
 #include <QtCore/QObject>
 #include <QtGui/QItemSelectionModel>
 #include <QtGui/QAbstractProxyModel>
 // #include "kdeui_export.h"
 // #include "klinkitemselectionmodel_p.hxx"
 
+#include "hexa_base.hxx"
 #include "kmodelindexproxymapper.hxx"
 
 class KLinkItemSelectionModelPrivate;
 
-class HEXABLOCK_EXPORT KLinkItemSelectionModel : public QItemSelectionModel
+class HexaExport KLinkItemSelectionModel : public QItemSelectionModel
 {
     Q_OBJECT
 public:
@@ -86,7 +85,7 @@ static QItemSelection klink_removeInvalidRanges(const QItemSelection &selection)
 #endif
 
 
-class HEXABLOCK_EXPORT KLinkItemSelectionModelPrivate
+class KLinkItemSelectionModelPrivate
 {
 public:
     KLinkItemSelectionModelPrivate(KLinkItemSelectionModel *proxySelectionModel, QAbstractItemModel *model,
index ac03dc0930b5544c3e86d0b5a39685a8f46642a7..6af03c9fc1a5dd6ae30767fa4024f1a91df624b9 100644 (file)
 #ifndef KMODELINDEXPROXYMAPPER_H
 #define KMODELINDEXPROXYMAPPER_H
 
-#include "HEXABLOCKGUI_Export.hxx"
-
 #include <QObject>
 
+#include "hexa_base.hxx"
+
 // #include "kdeui_export.h"
 
 class QAbstractItemModel;
@@ -33,7 +33,7 @@ class QModelIndex;
 class QItemSelection;
 class KModelIndexProxyMapperPrivate;
 
-class HEXABLOCK_EXPORT KModelIndexProxyMapper : public QObject
+class HexaExport KModelIndexProxyMapper : public QObject
 {
   Q_OBJECT
 public:
index 68760963159d560659b5d6e89cc2908922f72f54..e6d2fbe25d774a822d620fc3bc6270833caa3b6f 100755 (executable)
@@ -37,7 +37,7 @@
                <component-username>HEXABLOCK TUI</component-username>
                 <component-type>Data</component-type>
                 <component-author>CS</component-author>
-                <component-version>@SALOMEHEXABLOCK_VERSION@</component-version>
+                <component-version>@VERSION@</component-version>
                 <component-comment>CEA - RD</component-comment>
                 <component-multistudy>1</component-multistudy>
                 <component-icone>ModuleHexablock.png</component-icone>
index 0961944fe6324902641701861ccca048ac0ca207..a003c8e690404ed180bc4a36bf3e85a22b54c2b4 100755 (executable)
@@ -24,7 +24,7 @@
     <!-- Major module parameters -->
     <parameter name="name"          value="HexaBlock"/>
     <parameter name="icon"          value="ModuleHexablock.png"/>
-    <parameter name="version"       value="@SALOMEHEXABLOCK_VERSION@"/>        
+    <parameter name="version"       value="@VERSION@"/>        
     <parameter name="documentation" value="hexablock_help"/>
   </section>
   <section name="hexablock_help" >
index 7f174a89e3f39115e8f0a6d44f24ff84f302a5e7..9be3a709242afed31226b1eabdbb64a3da9e3614 100644 (file)
@@ -526,6 +526,15 @@ Q_DIRECT = _hexablock_swig.Q_DIRECT
 Q_INVERSE = _hexablock_swig.Q_INVERSE
 Q_UNDEFINED = _hexablock_swig.Q_UNDEFINED
 Q_WAITING = _hexablock_swig.Q_WAITING
+KS_None = _hexablock_swig.KS_None
+KS_Line = _hexablock_swig.KS_Line
+KS_Circle = _hexablock_swig.KS_Circle
+KS_Ellipse = _hexablock_swig.KS_Ellipse
+KS_Hyperbola = _hexablock_swig.KS_Hyperbola
+KS_Parabola = _hexablock_swig.KS_Parabola
+KS_BezierCurve = _hexablock_swig.KS_BezierCurve
+KS_BSplineCurve = _hexablock_swig.KS_BSplineCurve
+KS_OtherCurve = _hexablock_swig.KS_OtherCurve
 CylSmall = _hexablock_swig.CylSmall
 CylBig = _hexablock_swig.CylBig
 NxInt = _hexablock_swig.NxInt
index 9c10fbe234b21d9bcdba37530db20d476b72cc51..5b9833e7fee5ec95d5e12475c948c5c5e3c827ee 100644 (file)
@@ -32686,6 +32686,15 @@ SWIGEXPORT void SWIG_init(void) {
   SWIG_Python_SetConstant(d, "Q_INVERSE",SWIG_From_int(static_cast< int >(Hex::Q_INVERSE)));
   SWIG_Python_SetConstant(d, "Q_UNDEFINED",SWIG_From_int(static_cast< int >(Hex::Q_UNDEFINED)));
   SWIG_Python_SetConstant(d, "Q_WAITING",SWIG_From_int(static_cast< int >(Hex::Q_WAITING)));
+  SWIG_Python_SetConstant(d, "KS_None",SWIG_From_int(static_cast< int >(Hex::KS_None)));
+  SWIG_Python_SetConstant(d, "KS_Line",SWIG_From_int(static_cast< int >(Hex::KS_Line)));
+  SWIG_Python_SetConstant(d, "KS_Circle",SWIG_From_int(static_cast< int >(Hex::KS_Circle)));
+  SWIG_Python_SetConstant(d, "KS_Ellipse",SWIG_From_int(static_cast< int >(Hex::KS_Ellipse)));
+  SWIG_Python_SetConstant(d, "KS_Hyperbola",SWIG_From_int(static_cast< int >(Hex::KS_Hyperbola)));
+  SWIG_Python_SetConstant(d, "KS_Parabola",SWIG_From_int(static_cast< int >(Hex::KS_Parabola)));
+  SWIG_Python_SetConstant(d, "KS_BezierCurve",SWIG_From_int(static_cast< int >(Hex::KS_BezierCurve)));
+  SWIG_Python_SetConstant(d, "KS_BSplineCurve",SWIG_From_int(static_cast< int >(Hex::KS_BSplineCurve)));
+  SWIG_Python_SetConstant(d, "KS_OtherCurve",SWIG_From_int(static_cast< int >(Hex::KS_OtherCurve)));
   SWIG_Python_SetConstant(d, "CylSmall",SWIG_From_int(static_cast< int >(Hex::CylSmall)));
   SWIG_Python_SetConstant(d, "CylBig",SWIG_From_int(static_cast< int >(Hex::CylBig)));
   SWIG_Python_SetConstant(d, "NxInt",SWIG_From_int(static_cast< int >(Hex::NxInt)));
index 913a791c9b7f0b47326091adc071de42c6c4136a..1d00f9344c1c1e1d77a8db6f13aa7eaca0573914 100755 (executable)
@@ -1,31 +1,30 @@
 
 // C++ : Tests unitaires
 
-// Copyright (C) 2009-2013  CEA/DEN, EDF R&D
+//  Copyright (C) 2009-2011  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 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.
+//  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
+//  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
 
 #include "test_unit.hxx"
 
 #include "Hex.hxx"
 #include "HexDocument.hxx"
 #include "HexElements.hxx"
-#include "HexCrossElements.hxx"
 
 #include "HexHexa.hxx"
 #include "HexQuad.hxx"
@@ -103,12 +102,10 @@ int test_sphere (int nbargs, cpchar tabargs[])
 {
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
-   Hex::Vertex*  orig = doc->addVertex (0,0,0);
 
    int    ncouches = 2;
    double k      = 1;
-   double rayon  = 1;
-   Hex::Elements* sphere = doc->makeSpherical (orig, rayon, ncouches, k);
+   Hex::Elements* sphere = doc->makeSphericalTop (ncouches, k);
 
    if (ncouches>0)
       {
@@ -135,10 +132,8 @@ int test_cartesi1 ()
 
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
-   Hex::Vertex* orig = doc->addVertex (0,0,0);
 
-   Hex::Vector*   dir  = doc->addVector (1,1,1);
-   Hex::Elements* grid = doc->makeCartesian (orig, dir, size_x,size_y,size_z);
+   Hex::Elements* grid = doc->makeCartesianTop (size_x,size_y,size_z);
 
    //  print_propagations (doc);
 
@@ -180,9 +175,7 @@ int test_find ()
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
 
-   Hex::Vertex* orig = doc->addVertex (0,0,0);
-   Hex::Vector* dir  = doc->addVector (1,1,1);
-   Hex::Elements*  grid = doc->makeCartesian (orig, dir, size_x,size_y,size_z);
+   Hex::Elements*  grid = doc->makeCartesianTop (size_x,size_y,size_z);
 
    grid->saveVtk ("mini1.vtk");
    doc->dump ();
@@ -224,15 +217,12 @@ int test_joint (int nbargs, cpchar tabargs[])
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
 
-   Hex::Vertex* orig1 = doc->addVertex (0,0,0);
-   Hex::Vector* dir   = doc->addVector (1,1,1);
-
-   Hex::Elements* grid1 = doc->makeCartesian   (orig1, dir, dimx,dimy,dimz);
+   Hex::Elements* grid1 = doc->makeCartesianTop   (dimx,dimy,dimz);
 
    Hex::Vertex*   orig2 = doc->addVertex  (dimx/2.0,0,8);
    Hex::Vector*   vectj = doc->addVector (0,1,0);
    Hex::Vector*   vecti = doc->addVector (1,0,0);
-   Hex::Elements* grid2 = doc->makeCylindrical (orig2, vecti, vectj,
+   Hex::Elements* grid2 = doc->makeCylinderUni (orig2, vecti, vectj,
                    1, 180, 1,        dimz,dimy,dimx, true);
 
    int mx = dimx/2;
@@ -264,7 +254,7 @@ int test_joint (int nbargs, cpchar tabargs[])
 
    doc->saveVtk ("joint1.vtk");
    const int hauteur = 5;
-   Hex::Elements* joint = doc->joinQuads(liste, cible, v1,v2,v3,v4, hauteur);
+   Hex::Elements* joint = doc->joinQuadsUni(liste,cible, v1,v2,v3,v4, hauteur);
    // for (int nh=0 ; nh<hauteur ; nh++) joint->getHexa(nh)->setScalar (5);
 
    int nbr_joint_vertex =  joint->countVertex ();
@@ -285,298 +275,17 @@ int test_joint (int nbargs, cpchar tabargs[])
    doc->saveVtk ("joint2.vtk");
    return HOK;
 }
-// ======================================================== test_prism
-int test_prism (int nbargs, cpchar tabargs[])
-{
-   const int dimx = 11;
-   const int dimy = 11;
-   const int dimz = 2;
-
-   Hex::Hex mon_ex;
-   Hex::Document* doc = mon_ex.addDocument ();
-
-   Hex::Vertex* orig1 = doc->addVertex ( 0,0,0);
-   Hex::Vector* dir1  = doc->addVector ( 1,1,1);
-   Hex::Vector* dir2  = doc->addVector ( 1,1,-1);
-
-   Hex::Elements* grid1 = doc->makeCartesian (orig1, dir1, dimx,dimy,dimz);
-
-   int mx = dimx/2;
-   int my = dimy/2;
-   Hex::Quads liste1, liste2;
-
-   liste1.push_back (grid1->getQuadIJ (mx, my, dimz));
-   liste2.push_back (grid1->getQuadIJ (mx, my, 0));
-   for (int nx=0; nx<dimx; nx++)
-       if (nx!=mx)
-          {
-          liste1.push_back (grid1->getQuadIJ (nx, my, dimz));
-          liste2.push_back (grid1->getQuadIJ (nx, my, 0));
-          }
-
-   for (int ny=0; ny<dimy; ny++)
-       if (ny!=my)
-          {
-          liste1.push_back (grid1->getQuadIJ (mx, ny, dimz));
-          liste2.push_back (grid1->getQuadIJ (mx, ny, 0));
-          }
-
-   Hex::RealVector tlen;
-   double dh = 2;
-   for (int nro=0; nro<5; nro++)
-       {
-       dh = 2*dh + 1;
-       tlen.push_back (dh);
-       }
-
-   const int nbiter = 5;
-   doc->saveVtk ("prisme1.vtk");
-   Hex::Elements* prisme2 = doc->prismQuads    (liste2, dir2, nbiter);
-   doc->saveVtk ("prisme2.vtk");
-
-   Hex::Elements* prisme1 = doc->prismQuadsVec (liste1, dir1, tlen, 0);
-
-   PutData (liste1.size());
-   PutData (tlen.size());
-   PutData (prisme1->countHexa());
-   PutData (prisme1->countQuad());
-   PutData (prisme1->countEdge());
-   PutData (prisme1->countVertex());
-
-   for (int nro=0 ; nro <nbiter  ; nro++)
-       {
-       Hex::Hexa* cell = prisme2-> getHexa (nbiter+nro);
-       cell->setScalar (5);
-       }
-
-   doc->saveVtk ("prisme3.vtk");
-   return HOK;
-}
-// ======================================================== test_revolution9
-int test_revolution9 (int nbargs, cpchar tabargs[])
-{
-   const int dimx = 11;
-   const int dimy = 11;
-   const int dimz = 2;
-
-   Hex::Hex mon_ex;
-   Hex::Document* doc = mon_ex.addDocument ();
-
-   Hex::Vertex* orig1 = doc->addVertex (0,0,0);
-   Hex::Vector* dir   = doc->addVector (1,1,1);
-
-   Hex::Elements* grid1 = doc->makeCartesian   (orig1, dir, dimx,dimy,dimz);
-
-   int mx = dimx/2;
-   int my = dimy/2;
-   Hex::Quad* prems = grid1->getQuadIJ (mx, my, dimz);
-   Hex::Quads liste;
-
-   liste.push_back (prems);
-   prems -> setScalar (5);
-   for (int nx=0; nx<dimx; nx++)
-       if (nx!=mx)
-          {
-          Hex::Quad* cell = grid1->getQuadIJ (nx, my, dimz);
-          liste.push_back (cell);
-          cell -> setScalar (5);
-          }
-
-   for (int ny=0; ny<dimy; ny++)
-       if (ny!=my)
-          {
-          Hex::Quad* cell = grid1->getQuadIJ (mx, ny, dimz);
-          liste.push_back (cell);
-          cell -> setScalar (5);
-          }
-
-   Hex::Vertex* center = doc->addVertex (0, -10, 0);
-   Hex::Vector* axis   = doc->addVector (1,   0, 0);
-   Hex::RealVector  angles;
-
-   Hex::Vector*   dir1  = doc->addVector (10,0.3,0.3);
-   Hex::Elements* grid2 = doc->makeCartesian (center, dir1, 1,1,1);
-   Hex::Hexa*     cell  = grid2->getHexaIJK (0,0,0);
-   cell->setScalar (5);
-
-   doc->saveVtk ("revolution1.vtk");
-
-   double alpha = 5;
-   int niter    = 5;
-   double coeff = 1.5;
-   for (int na=0 ; na<niter ; na++)
-       {
-       angles.push_back (alpha);
-       alpha *= coeff;
-       }
-   for (int na=1 ; na<niter ; na++)
-       {
-       alpha /= coeff;
-       angles.push_back (alpha);
-       }
-
-   Hex::Elements* bloc = doc->revolutionQuads  (liste, center, axis, angles);
-   if (bloc != NULL)
-       doc->saveVtk ("revolution2.vtk");
-
-   return HOK;
-}
-// ======================================================== test_revolution
-int test_revolution (int nbargs, cpchar tabargs[])
-{
-   Hex::Hex mon_ex;
-   Hex::Document* doc = mon_ex.addDocument ();
-
-   Hex::Vertex* ori = doc->addVertex (0,0,0);
-   Hex::Vector* vx  = doc->addVector (1,0,0);
-   Hex::Vector* vz  = doc->addVector (0,0,1);
-
-   int dr = 1;
-   int da = 360;
-   int dl = 1;
-
-   int nr = 1;
-   int na = 6;
-   int nl = 1;
-
-   Hex::Elements* grid = doc->makeCylindrical (ori, vx,vz, dr,da,dl,
-                                               nr,na,nl, false);
-
-   Hex::Quads liste;
-   for (int nx=0; nx<nr; nx++)
-       for (int ny=0; ny<na; ny++)
-           {
-           Hex::Quad* cell = grid->getQuadIJ (nx, ny, nl);
-           liste.push_back (cell);
-           cell -> setScalar (5);
-           }
-
-   Hex::Vertex* center = doc->addVertex (0, -10, 0);
-   Hex::Vector* axis   = doc->addVector (1, 0, 0);
-   Hex::RealVector  angles;
-
-   Hex::Vector*   dir1  = doc->addVector (10,0.3,0.3);
-   Hex::Elements* grid2 = doc->makeCartesian (center, dir1, 1,1,1);
-   Hex::Hexa*     cell  = grid2->getHexaIJK (0,0,0);
-   cell->setScalar (5);
-
-   doc->saveVtk ("revolution1.vtk");
-
-   double alpha = 5;
-   int niter    = 5;
-   double coeff = 1.5;
-   for (int na=0 ; na<niter ; na++)
-       {
-       angles.push_back (alpha);
-       alpha *= coeff;
-       }
-   for (int na=1 ; na<niter ; na++)
-       {
-       alpha /= coeff;
-       angles.push_back (alpha);
-       }
-
-   Hex::Elements* bloc = doc->revolutionQuads  (liste, center, axis, angles);
-   if (bloc != NULL)
-       doc->saveVtk ("revolution2.vtk");
-
-   return HOK;
-}
-// ======================================================== test_coude
-int test_coude (int nbargs, cpchar tabargs[])
-{
-#if 0
-   const int dimx = 11;
-   const int dimy = 11;
-   const int dimz = 2;
-
-   Hex::Hex mon_ex;
-   Hex::Document* doc = mon_ex.addDocument ();
-
-   Hex::Vertex* orig = doc->addVertex (0,0,0);
-   Hex::Vector* vx   = doc->addVector (1,0,0);
-   Hex::Vector* vz   = doc->addVector (0,0,1);
-
-   //   grid1 = doc->makeCartesian   (orig1, dir, dimx,dimy,dimz);
-   double dr = 1;
-   int    dl = 5;
-   int    nr = 4;
-   int    na = 8;
-
-   Hex::Elements* grid1 = doc->makeCylindrical (orig1, vx,vz,dr,360, dl,
-                                                nr, 10, nl, false);
-   int mx = dimx/2;
-   int my = dimy/2;
-   Hex::Quad* prems = grid1->getQuadIJ (mx, my, dimz);
-   Hex::Quads liste;
-
-   liste.push_back (prems);
-   prems -> setScalar (5);
-   for (int nx=0; nx<dimx; nx++)
-       if (nx!=mx)
-          {
-          Hex::Quad* cell = grid1->getQuadIJ (nx, my, dimz);
-          liste.push_back (cell);
-          cell -> setScalar (5);
-          }
-
-   for (int ny=0; ny<dimy; ny++)
-       if (ny!=my)
-          {
-          Hex::Quad* cell = grid1->getQuadIJ (mx, ny, dimz);
-          liste.push_back (cell);
-          cell -> setScalar (5);
-          }
-
-
-   Hex::Vertex* center = doc->addVertex (0, -10, 0);
-   Hex::Vector* axis   = doc->addVector (1, 0, 0);
-   Hex::RealVector  angles;
-
-   Hex::Vector*   dir1  = doc->addVector (10,0.3,0.3);
-   Hex::Elements* grid2 = doc->makeCartesian (center, dir1, 1,1,1);
-   Hex::Hexa*     cell  = grid2->getHexaIJK (0,0,0);
-   cell->setScalar (5);
-
-   doc->saveVtk ("revolution1.vtk");
-
-   double alpha = 5;
-   int niter    = 5;
-   double coeff = 1.5;
-   for (int na=0 ; na<niter ; na++)
-       {
-       angles.push_back (alpha);
-       alpha *= coeff;
-       }
-   for (int na=1 ; na<niter ; na++)
-       {
-       alpha /= coeff;
-       angles.push_back (alpha);
-       }
-
-   Hex::Elements* bloc = doc->revolutionQuads  (liste, center, axis, angles);
-   if (bloc != NULL)
-       doc->saveVtk ("revolution2.vtk");
-#endif
-   return HOK;
-}
 // ======================================================== test_count
 int test_count (int nbargs, cpchar tabargs[])
 {
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
 
-   Hex::Vertex* orig1 = doc->addVertex ( 0, 0,0);
-   Hex::Vector* vx    = doc->addVector (1,0,0);
-   Hex::Vector* vz    = doc->addVector (0,0,1);
-
-   double dr = 1;
-   double dl = 1;
    int    nr = 2;
    int    nl = 3;
 
 // Hex::Elements* c1 =
-   doc->makeCylindrical (orig1, vx,vz,dr, 360, dl,nr, 10, nl, false);
+   doc->makeCylinderTop (nr, 10, nl);
 
    HexDisplay (doc->countVertex ());
    HexDisplay (doc->countUsedVertex ());
@@ -594,16 +303,13 @@ int test_decoupage (int nbargs, cpchar tabargs[])
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
 
-   Hex::Vertex* orig = doc->addVertex (0,0,0);
-   Hex::Vector* dir  = doc->addVector (1,1,1);
-
-   Hex::Elements* grid  = doc->makeCartesian (orig, dir, size_x,size_y,size_z);
+   Hex::Elements* grid  = doc->makeCartesianTop (size_x,size_y,size_z);
    Hex::Edge*     arete = grid->getEdgeK (0, 0, 0);
 
    //  doc ->dump ();
    int nvtk=0;
    doc ->saveVtk ("decoupe", nvtk);
-/* Hex::Elements* grid2 = */  doc->cut (arete, 1);
+/* Hex::Elements* grid2 = */  doc->cutUni (arete, 1);
 
    ///  doc ->dump ();
    doc ->saveVtk ("decoupe", nvtk);
@@ -620,10 +326,8 @@ int test_gen_xml (int nbargs, cpchar tabargs[])
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
 
-   Hex::Vertex* orig = doc->addVertex (0,0,0);
-   Hex::Vector* dir  = doc->addVector (1,1,1);
    // Hex::Elements*  grid =
-   doc->makeCartesian (orig, dir, size_x,size_y,size_z);
+   doc->makeCartesianTop (size_x,size_y,size_z);
 
    // Hex::Hexa*   cell    = grid->getHexa (0);
    // Hex::Quad*   face    = cell->getQuad (0);
@@ -673,23 +377,8 @@ int test_string_xml (int nbargs, cpchar tabargs[])
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
 
-   Hex::Vertex* orig = doc->addVertex (0,0,0);
-   Hex::Vector* dir  = doc->addVector (1,1,1);
    // Hex::Elements*  grid =
-   doc->makeCartesian (orig, dir, size_x,size_y,size_z);
-
-   // Hex::Hexa*   cell    = grid->getHexa (0);
-   // Hex::Quad*   face    = cell->getQuad (0);
-   // Hex::Edge*   arete   = cell->getEdge (0);
-   // Hex::Vertex* noeud   = cell->getVertex (0);
-
-   // Hex::Shape* shape1 = new Hex::Shape("riri");
-   // Hex::Shape* shape2 = new Hex::Shape("fifi");
-   // Hex::Shape* shape3 = new Hex::Shape("loulou");
-
-   // noeud->setAssociation (shape1);
-   // arete->setAssociation (shape2);
-   // face ->setAssociation (shape3);
+   doc->makeCartesianTop (size_x,size_y,size_z);
 
    Hex::Law* law1 = doc->addLaw("loi1", 1);
    Hex::Law* law2 = doc->addLaw("loi2", 2);
@@ -762,10 +451,7 @@ int test_clone ()
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
 
-   Hex::Vertex* orig = doc->addVertex (0,0,0);
-   Hex::Vector* dir  = doc->addVector (1,1,1);
-   Hex::Elements* grid = doc->makeCartesian (orig, dir, size_x,size_y,size_z);
-
+   Hex::Elements* grid  = doc->makeCartesianTop (size_x,size_y,size_z);
    Hex::Vector*   bond  = doc->addVector (0, 0, 7);
    Hex::Elements* grid2 = doc->makeTranslation (grid, bond);
 
@@ -788,10 +474,7 @@ int test_separ ()
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
 
-   Hex::Vertex* orig = doc->addVertex (0,0,0);
-   Hex::Vector* dir  = doc->addVector (1,1,1);
-   //  Hex::Elements*  grid =
-   doc->makeCartesian (orig, dir, size_x,size_y,size_z);
+   doc->makeCartesianTop (size_x,size_y,size_z);
 
    doc ->saveVtk ("separ.vtk");
    doc ->dump();
@@ -804,11 +487,9 @@ int test_spherical (int nbargs, const char* tabargs[])
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
 
-   Hex::Vertex* orig = doc->addVertex (0,0,0);
-   double       rayon  = 1;
    int          nbr    = 3;
 
-   Hex::Elements* grid = doc->makeSpherical (orig, rayon, nbr, 1);
+   Hex::Elements* grid = doc->makeSphericalTop (nbr, 1);
 
    int nbhexas = grid->countHexa ();
    HexDisplay (nbhexas);
@@ -838,18 +519,19 @@ int test_grille_cyl (int nbargs, cpchar tabargs[])
    Hex::Vector* vz = doc->addVector (0,0,1);
    Hex::Vector* vx = doc->addVector (1,0,0);
 
-   double dr = 1;
+   double rint = 5;
+   double rext = 1;
    double dl = 1;
    int    nr = 2;
    int    nl = 3;
 
-   doc->makeCylindrical (orig1, vx,vz,dr, 360, dl,nr, 4, nl, true);
+   doc->makeCylinderUni (orig1, vx,vz, rint,rext, 360,dl,nr, 4, nl);
    Hex::Elements* c2 =
-   doc->makeCylindrical (orig2, vx,vz,dr, 360, dl,nr, 8, nl, true);
-   doc->makeCylindrical (orig3, vx,vz,dr, 270, dl,nr, 8, nl, true);
-   doc->makeCylindrical (orig4, vx,vz,dr, 270, dl,nr, 7, nl, true);
-   doc->makeCylindrical (orig5, vx,vz,dr, 360, dl,nr, 5, nl, true);
-   doc->makeCylindrical (orig6, vx,vz,dr, 360, dl,nr, 6, nl, true);
+   doc->makeCylinderUni (orig2, vx,vz, rint,rext, 360,dl,nr, 8, nl);
+   doc->makeCylinderUni (orig3, vx,vz, rint,rext, 270,dl,nr, 8, nl);
+   doc->makeCylinderUni (orig4, vx,vz, rint,rext, 270,dl,nr, 7, nl);
+   doc->makeCylinderUni (orig5, vx,vz, rint,rext, 360,dl,nr, 5, nl);
+   doc->makeCylinderUni (orig6, vx,vz, rint,rext, 360,dl,nr, 6, nl);
 
    int base2 = nr*nl*8;
    c2->getHexa(base2 + 0)->setScalar (5);
@@ -873,7 +555,6 @@ int test_cylindrical (int nbargs, cpchar tabargs[])
    Hex::Vector* vx   = doc->addVector (1, 0, 0);
    Hex::Vector* vz   = doc->addVector (0, 0, 1);
 
-   double dr = 1;
    double da = 360;
    double dl = 1;
 
@@ -895,133 +576,10 @@ int test_cylindrical (int nbargs, cpchar tabargs[])
       HexDisplay (da);
       }
 
-   // Hex::Cylinder* cyl  = doc->addCylinder   (orig, vz, nr, nl);
-   // Hex::Elements* grid = doc->makeCylinder (cyl, vx, nr, na, nl);
-   doc->makeCylindrical (orig,vx, vz, dr,da,dl, nr,na, nl, true);
+   doc->makeCylinderUni (orig,vx, vz, 5.0,1.0,da,dl, nr,na, nl);
    doc->saveVtk (fic_vtk, na);
    return HOK;
 }
-// ===================================================== test_cylinder
-int test_cylinder (int nbargs, cpchar tabargs[])
-{
-   int    nvtk    = 1;
-   cpchar fic_vtk = "cylindre";
-
-   Hex::Hex mon_ex;
-   Hex::Document* doc = mon_ex.addDocument ();
-
-   Hex::Vertex* orig = doc->addVertex (0, 0, 0);
-   Hex::Vector* vx   = doc->addVector (1, 0, 0);
-   Hex::Vector* vz   = doc->addVector (0, 0, 1);
-
-   double rayon   = 10;
-   double hauteur = 6;
-
-   int nr = 2;
-   int na = 8;
-   int nl = 5;
-
-   Hex::Cylinder* cyl  = doc->addCylinder   (orig, vz, rayon, hauteur);
-   doc->makeCylinder (cyl, vx, nr, na, nl);
-   doc ->saveVtk (fic_vtk, nvtk);
-   return HOK;
-}
-// ===================================================== test_xml_cylinder
-int test_xml_cylinder (int nbargs, cpchar tabargs[])
-{
-   int    nvtk    = 0;
-   cpchar fic_vtk = "cylindre";
-
-   Hex::Hex mon_ex;
-   Hex::Document* doc = mon_ex.addDocument ();
-
-   Hex::Vertex* orig1 = doc->addVertex (0, 0,0);
-   Hex::Vertex* orig2 = doc->addVertex (50,0,0);
-   Hex::Vector* vz    = doc->addVector (0,0,1);
-   Hex::Vector* vx    = doc->addVector (1,0,0);
-
-   vx->setName ("vx");
-   vz->setName ("vz");
-   orig1->setName ("orig1");
-   orig2->setName ("orig2");
-
-   int nr  = 4;
-   int nri = 3;
-   int nre = nr;
-   int na = 9;
-   int nl = 5;
-
-   Hex::Cylinder* cyl  = doc->addCylinder   (orig1, vz, nr, nl);
-   Hex::Pipe*     pipe = doc->addPipe       (orig2, vz, nri, nre, nl);
-
-   Hex::Elements* grid = doc->makeCylinder (cyl,  vx, nr, na, nl);
-   doc ->saveVtk (fic_vtk, nvtk);
-
-   Hex::Group* groupe = doc->addGroup ("GroupeAMA", Hex::HexaCell);
-   groupe->addElement (grid->getHexaIJK (0,0,0));
-   groupe->addElement (grid->getHexaIJK (1,0,0));
-   groupe->addElement (grid->getHexaIJK (0,1,0));
-   groupe->addElement (grid->getHexaIJK (1,1,0));
-   groupe->addElement (grid->getHexaIJK (2,1,0));
-
-   grid->getHexaIJK  (0,0,0)->setName ("Hexa0");
-   grid->getQuadIJ   (0,0,0)->setName ("QuadIJ0");
-   grid->getEdgeK    (0,0,0)->setName ("EdgeK0");
-
-   doc->makePipe     (pipe, vx, nr, na, nl);
-   doc ->saveVtk (fic_vtk, nvtk);
-   doc->save ("cylindre");
-
-   return HOK;
-}
-// ===================================================== test_pipe
-int test_pipe (int nbargs, cpchar tabargs[])
-{
-   int    nvtk    = 0;
-   cpchar fic_vtk = "cylindre";
-
-   Hex::Hex mon_ex;
-   Hex::Document* doc = mon_ex.addDocument ();
-
-   Hex::Vertex* orig1 = doc->addVertex (0, 0,0);
-   Hex::Vector* vx    = doc->addVector (1,0,0);
-   Hex::Vector* vy    = doc->addVector (0,1,0);
-
-   int nr  = 1;
-   int nri = 1;
-   int nre = 2;
-   int na = 2;
-   int nl = 1;
-
-   Hex::Pipe*  pipe = doc->addPipe  (orig1, vx, nri, nre, nl);
-   doc->makePipe     (pipe, vy, nr, na, nl);
-   doc ->saveVtk (fic_vtk, nvtk);
-
-   return HOK;
-}
-// ======================================================== del_hexa
-void del_hexa (Hex::CrossElements* gr, int cyl, int ni, int nj, int nk, int dr)
-{
-   Hex::Hexa* hexa = gr->getHexaIJK (cyl, ni, nj, nk);
-   if (hexa!=NULL)
-      {
-      hexa->remove ();
-      if (dr>1)
-          save_vtk ();
-      }
-}
-// ======================================================== del_tranche
-int del_tranche (Hex::CrossElements* grid, int cyl, int ni, int nk, int dr=1)
-{
-   for (int nj = 0 ; nj < 8 ; nj++)
-        del_hexa (grid, cyl, ni, nj, nk, dr);
-
-   if (dr==1)
-      save_vtk ();
-   printf ("del_tranche (g=%d, i=%d, k=%d) : fic = %d\n",
-                         cyl, ni, nk, nbr_vtk-1);
-   return nbr_vtk;
-}
 // ======================================================== test_joint2
 int test_joint2 (int nbargs, cpchar tabargs[])
 {
@@ -1034,21 +592,19 @@ int test_joint2 (int nbargs, cpchar tabargs[])
    Hex::Vertex* hori  = docu->addVertex (0, 0, 0);
 
    double da = 360;
-   double dr = 2;
    double dl = 1;
    int    nr = 1;
    int    na = 8;
    int    nl = 1;
-   bool   fill = true;
 
    Hex::Elements *bgrid=NULL, *hgrid=NULL;
 
-   hgrid = docu->makeCylindrical (hori, vx,vz, dr,da,dl, nr,na,nl, fill);
+   hgrid = docu->makeCylinderUni (hori, vx,vz, 5.0,1.0,da,dl, nr,na,nl);
    docu->dump ();
    save_vtk ();
 
    Hex::Vertex* bori  = docu->addVertex (0, 0, -5);
-   bgrid = docu->makeCylindrical (bori, vx,vz, dr,da,dl, nr,na,nl, fill);
+   bgrid = docu->makeCylinderUni (bori, vx,vz, 5.0,1.0,da,dl, nr,na,nl);
    save_vtk ();
 
    Hex::Quads qsource, qdest;
@@ -1092,238 +648,9 @@ int test_joint2 (int nbargs, cpchar tabargs[])
    Hex::Vertex* vs1 = hgrid->getVertexIJK (0, 0, 0);
    Hex::Vertex* vs2 = hgrid->getVertexIJK (1, 0, 0);
 
-   docu->joinQuads (qsource, cible, vs1, vc1, vs2, vc2, 1);
-   save_vtk ();
-
-   return HOK;
-}
-// ======================================================== test_croix
-int test_croix (int nbargs, cpchar tabargs[])
-{
-   Hex::Hex mon_ex;
-   case_name = "croix";
-   docu = mon_ex.addDocument (case_name);
-
-   Hex::Vertex* ori1 = docu->addVertex ( 0,0,0);
-   Hex::Vertex* ori2 = docu->addVertex (-5,0,5);
-   Hex::Vector* vz   = docu->addVector ( 0,0,1);
-   Hex::Vector* vx   = docu->addVector ( 1,0,0);
-
-   double r1 = 2;
-   double r2 = 3;
-   double l1 = 10;
-   double l2 = 10;
-
-   Hex::Cylinder*      cyl1 = docu->addCylinder (ori1, vz, r1, l1);
-   Hex::Cylinder*      cyl2 = docu->addCylinder (ori2, vx, r2, l2);
-   Hex::CrossElements* grid = docu->makeCylinders (cyl1, cyl2);
-
-   save_vtk ();
-   PutData ((BadElement (grid)));
-
-
-   Hex::Edge* pipo = docu->addEdge (ori1, ori1);
-   PutData (pipo->isValid());
-   PutData ((BadElement (pipo)));
-   return HOK;
-
-   del_tranche (grid, 0, 1, 0);
-   del_tranche (grid, 0, 1, 5);
-
-   del_tranche (grid, 1, 1, 0);
-   del_tranche (grid, 1, 1, 3);
-
-   del_tranche (grid, 1, 0, 0);
-   del_tranche (grid, 1, 0, 3);
-                                  // Le trognon
-   del_tranche (grid, 0, 0, 0);
-   del_tranche (grid, 0, 0, 5);
-   del_tranche (grid, 0, 0, 1);
-   del_tranche (grid, 0, 0, 2);
-   del_tranche (grid, 0, 0, 3);
-   del_tranche (grid, 0, 0, 4);
-                                  // Partie critique
-
-   del_tranche (grid, 1, 1, 1, 2);
-
-   del_tranche (grid, 0, 1, 1, 2);
-   del_tranche (grid, 0, 1, 4, 2);
-   del_tranche (grid, 0, 1, 3, 2);
-   del_tranche (grid, 0, 1, 2, 2);
-
-   del_tranche (grid, 1, 1, 2, 2);
-   return HOK;
-}
-// ======================================================== test_croix2
-int test_croix2 (int nbargs, cpchar tabargs[])
-{
-   Hex::Hex mon_ex;
-   case_name = "croix";
-   docu = mon_ex.addDocument (case_name);
-
-   Hex::Vertex* pt1 = docu->addVertex ( 0,0,0);
-   Hex::Vertex* pt2 = docu->addVertex (10,0,0);
-
-   Hex::Vector* dx   = docu->addVector ( 1,0,0);
-   Hex::Vector* dy   = docu->addVector ( 0,1,0);
-   Hex::Vector* dz   = docu->addVector ( 0,0,1);
-
-   double r1 = 4;
-   double r2 = 2;
-   double l1 = 20;
-   double l2 = 15;
-
-   Hex::Cylinder*      cyl1 = docu->addCylinder (pt1, dx, r1, l1);
-   Hex::Cylinder*      cyl2 = docu->addCylinder (pt2, dz, r2, l2);
-
-   int nr = 3;
-   int na = 8;
-   int nl = 2;
-   Hex::Elements* grid1 = docu->makeCylinder (cyl1, dy, nr, na, nl);
-   grid1->saveVtk ("cyl_big.vtk");
-   Hex::Elements* grid2 = docu->makeCylinder (cyl2, dy, nr, na, nl);
-   grid2->saveVtk ("cyl_small.vtk");
-
-   PutData ((BadElement (grid1)));
-   PutData ((BadElement (grid2)));
-
-   Hex::CrossElements* grid = docu->makeCylinders (cyl1, cyl2);
-
-   grid->saveVtk ("cyl_all.vtk");
-   return HOK;
-}
-// ======================================================== test_pipes
-int test_pipes (int nbargs, cpchar tabargs[])
-{
-   Hex::Hex mon_ex;
-   Hex::Document* doc = mon_ex.addDocument ();
-
-   Hex::Vertex* ori1 = doc->addVertex ( 0,0,0);
-   Hex::Vertex* ori2 = doc->addVertex (-5,0,5);
-   Hex::Vector* vz   = doc->addVector ( 0,0,1);
-   Hex::Vector* vx   = doc->addVector ( 1,0,0);
-
-// double h1  =  5, ri1 = 1, re1 = 2;
-   double h1  = 10, ri1 = 1, re1 = 2;
-   double h2  = 10, ri2 = 2, re2 = 3;
-
-   Hex::Pipe* pipe1  = doc->addPipe (ori1, vz, ri1, re1, h1);
-   Hex::Pipe* pipe2  = doc->addPipe (ori2, vx, ri2, re2, h2);
-   Hex::CrossElements* grid = doc->makePipes (pipe1, pipe2);
-
-   case_name = "pipe";
-   docu      = doc;
+   docu->joinQuadsUni (qsource, cible, vs1, vc1, vs2, vc2, 1);
    save_vtk ();
 
-   del_tranche (grid, 0, 1, 0);
-   del_tranche (grid, 0, 1, 5);
-
-   del_tranche (grid, 1, 1, 0);
-   del_tranche (grid, 1, 1, 3);
-                                  // Partie critique
-
-   del_tranche (grid, 1, 1, 1, 2);
-
-   del_tranche (grid, 0, 1, 1, 2);
-   del_tranche (grid, 0, 1, 4, 2);
-   del_tranche (grid, 0, 1, 3, 2);
-   del_tranche (grid, 0, 1, 2, 2);
-
-   del_tranche (grid, 1, 1, 2, 2);
-   /* ***************************************************
-
-   int nbz [2] =  { 8, 4 };
-   int ni = 1;
-   for (int cyl = 0 ; cyl < 2 ; cyl++)
-       for (int nk = 0 ; nk < nbz[cyl] ; nk++)
-       for (int nj = 0 ; nj < 4 ; nj++)
-           {
-           int jj = nj;
-           if (cyl==0) jj = (jj+6) MODULO 8 ;
-           Hex::Hexa* hexa = grid->getHexaIJK (cyl, ni, jj, nk);
-           if (hexa!=NULL)
-              {
-              hexa->remove ();
-              doc->saveVtk (case_name,  nbr_vtk);
-              }
-           }
-      *************************************************** */
-   return HOK;
-}
-// ======================================================== test_lorraine
-int test_lorraine(int nbargs, cpchar tabargs[])
-{
-   Hex::Hex mon_ex;
-   Hex::Document* doc = mon_ex.addDocument ();
-
-   Hex::Vertex* ori1 = doc->addVertex ( 0,0,0);
-   Hex::Vertex* ori2 = doc->addVertex (-5,0,5);
-   Hex::Vertex* ori3 = doc->addVertex ( 0,0,12);
-   Hex::Vertex* ori4 = doc->addVertex (-5,0,17);
-
-   Hex::Vector* vz   = doc->addVector ( 0,0,1);
-   Hex::Vector* vx   = doc->addVector ( 1,0,0);
-
-   int nl1 = 10;
-   int nl2 = 10;
-
-   double rsmall = 1;
-   double rmoy   = 2;
-   double rbig   = 3;
-
-   Hex::Cylinder* cyl1  = doc->addCylinder (ori1, vz, rmoy,   nl1);
-   Hex::Cylinder* cyl2  = doc->addCylinder (ori2, vx, rsmall, nl2);
-
-   Hex::Cylinder* cyl3  = doc->addCylinder (ori3, vz, rmoy, nl1);
-   Hex::Cylinder* cyl4  = doc->addCylinder (ori4, vx, rbig, nl2);
-
-   Hex::CrossElements* grid1 = doc->makeCylinders (cyl1, cyl2);
-   Hex::CrossElements* grid2 = doc->makeCylinders (cyl4, cyl3);
-
-#define Imprimer(x) printf (#x " = ") ; if (x) x->dump() ; else printf ("NULL\n")
-   const int nx_int = 0;
-   const int nx_ext = 1;
-
-   //           vc2 = grid1->getVertexIJK (Hex::CylBig, 0,0,0);
-   //           vc3 = grid2->getVertexIJK (Hex::CylSmall, 0,0,0);
-                                     //    Cyl     i     j     k
-   Hex::Quad* qb = grid1-> getQuadIJ (Hex::CylBig, nx_ext, Hex::S_E, 4);
-   Hex::Quad* qh = grid2-> getQuadIJ (Hex::CylSmall, nx_ext, Hex::S_N, 0);
-
-   Hex::Vertex* vb0 = qb->getVertex (3);
-   Hex::Vertex* vb1 = qb->getVertex (2);
-   Hex::Vertex* vh0 = qh->getVertex (0);
-   Hex::Vertex* vh1 = qh->getVertex (1);
-
-   vb0 = grid1->getVertexIJK (Hex::CylBig, 2, Hex::S_E,  4);  // cible
-   vb1 = grid1->getVertexIJK (Hex::CylBig, 2, Hex::S_NE, 4);
-   vh0 = grid2->getVertexIJK (Hex::CylSmall, 2, Hex::S_N,  0);   // depart
-   vh1 = grid2->getVertexIJK (Hex::CylSmall, 2, Hex::S_NW, 0);
-
-   Imprimer (vh0);
-   Imprimer (vh1);
-   Imprimer (vb0);
-   Imprimer (vb1);
-
-   // qb->remove ();
-   // qh->remove ();
-   Hex::Quads hliste;
-
-   hliste.push_back (qh);
-   for (int ny=1; ny<Hex::S_MAXI; ny++)
-       {
-       int ns = (ny + Hex::S_N) MODULO Hex::S_MAXI;
-       hliste.push_back (grid2->getQuadIJ (Hex::CylSmall, nx_ext, ns, 0));
-       }
-
-   for (int ny=0; ny<4 ;  ny++)
-       hliste.push_back (grid2->getQuadIJ (Hex::CylSmall, nx_int, ny, 0));
-
-   int hauteur = 3;
-   doc->joinQuads  (hliste, qb, vh0, vb0, vh1, vb1, hauteur);
-   doc->saveVtk ("lorraine.vtk");
-
-   // doc->dump ();
    return HOK;
 }
 // ======================================================== test_disconnect2
@@ -1335,25 +662,17 @@ int test_disconnect2 (int nbargs, cpchar tabargs[])
    const int size_z = 1;
 
    Hex::Hex mon_ex;
-   Hex::Document* doc = mon_ex.addDocument ();
-
-   Hex::Vertex*   orig2 = doc->addVertex (0,0,0);
-   Hex::Vector*   dir   = doc->addVector (1,1,1);
-   Hex::Elements* grid2 = doc->makeCartesian (orig2, dir, size_x,size_y,size_z);
-
-   doc->dump ();
+   Hex::Document* doc   = mon_ex.addDocument ();
+   Hex::Elements* grid2 = doc->makeCartesianTop (size_x,size_y,size_z);
 
    int nvtk = 0;
    doc->setLevel (1);
-   Hex::Matrix  matrice;
-   Hex::Vector* ecart  = doc->addVector (0.5,0.5,0);
-   matrice.defTranslation (ecart);
 
    Hex::Hexa* hexa2 = grid2->getHexaIJK (1,1,0);
    Hex::Edge* edge  = grid2->getEdgeK   (1,2,0);
 
-   hexa2->setScalar  (2);
-   edge->setScalar   (5);
+   hexa2->setColor  (2);
+   edge->setColor   (5);
 
    doc->saveVtk ("test_disco", nvtk);
 
@@ -1365,22 +684,12 @@ int test_disconnect2 (int nbargs, cpchar tabargs[])
    HexDisplay (disco_edges->countQuad());
    HexDisplay (disco_edges->countHexa());
 
-   // hexa2->transform (&matrice);
- /**********************************
-   for (int ns=0; ns<disco_edges->countVertex(); ns++)
-       {
-       Hex::Vertex* sommet = disco_edges->getVertex(ns);
-       sommet->setX (sommet->getX()+0.5);
-       sommet->setY (sommet->getY()+0.5);
-       }
-   ********************************* */
-
    doc->saveVtk ("test_disco", nvtk);
    doc->save ("test_disco");
-   doc->dump ();
-   hexa2->dumpFull ();
+   // doc->dump ();
+   // hexa2->dumpFull ();
 
-   doc->setLevel (4);
+   // doc->setLevel (4);
    return HOK;
 }
 // ======================================================== test_disconnect4
@@ -1394,11 +703,7 @@ int test_disconnect4 (int nbargs, cpchar tabargs[])
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
 
-   Hex::Vertex*   orig2 = doc->addVertex (0,0,0);
-   Hex::Vector*   vx    = doc->addVector (1,0,0);
-   Hex::Vector*   vy    = doc->addVector (0,1,0);
-   Hex::Vector*   vz    = doc->addVector (0,0,1);
-   Hex::Elements* grid2 = doc->makeCartesian (orig2, vx,vy,vz, size_x,size_y,size_z);
+   Hex::Elements* grid2 = doc->makeCartesianTop  (size_x,size_y,size_z);
 
    int nvtk = 0;
    doc->setLevel (1);
@@ -1428,7 +733,7 @@ int test_disconnect4 (int nbargs, cpchar tabargs[])
    doc->setLevel (4);
    return HOK;
 }
-// ======================================================== test_disconnect
+// ======================================================== test_disconnect1
 // ==== Disconnect Quad
 int test_disconnect1 (int nbargs, cpchar tabargs[])
 {
@@ -1439,9 +744,7 @@ int test_disconnect1 (int nbargs, cpchar tabargs[])
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
 
-   Hex::Vertex*   orig1 = doc->addVertex (0,0,0);
-   Hex::Vector*   dir   = doc->addVector (1,1,1);
-   Hex::Elements* grid1 = doc->makeCartesian (orig1, dir, size_x,size_y,size_z);
+   Hex::Elements* grid1 = doc->makeCartesianTop (size_x,size_y,size_z);
 
    int nvtk = 0;
    doc->setLevel (1);
@@ -1476,10 +779,7 @@ int test_disconnect3 (int nbargs, cpchar tabargs[])
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
 
-   Hex::Vertex*   orig1 = doc->addVertex (0,0,0);
-
-   Hex::Vector*   dir   = doc->addVector (1,1,1);
-   Hex::Elements* grid1 = doc->makeCartesian (orig1, dir, size_x,size_y,size_z);
+   Hex::Elements* grid1 = doc->makeCartesianTop (size_x,size_y,size_z);
 
    int nvtk = 0;
    doc->setLevel (1);
@@ -1547,10 +847,17 @@ int test_disconnect (int nbargs, cpchar tabargs[])
    Hex::Vertex*   orig2 = doc->addVertex (4,0,0);
    Hex::Vertex*   orig3 = doc->addVertex (8,0,0);
 
-   Hex::Vector*   dir   = doc->addVector (1,1,1);
-   Hex::Elements* grid1 = doc->makeCartesian (orig1, dir, size_x,size_y,size_z);
-   Hex::Elements* grid2 = doc->makeCartesian (orig2, dir, size_x,size_y,size_z);
-   Hex::Elements* grid3 = doc->makeCartesian (orig3, dir, size_x,size_y,size_z);
+   Hex::Vector*   vx   = doc->addVector (1,0,0);
+   Hex::Vector*   vy   = doc->addVector (0,1,0);
+   Hex::Vector*   vz   = doc->addVector (0,0,1);
+   double dx=1, dy=1, dz=1;
+
+   Hex::Elements* grid1 = doc->makeCartesianUni (orig1, vx,vy,vz, dx,dy,dz, 
+                                                 size_x,size_y,size_z);
+   Hex::Elements* grid2 = doc->makeCartesianUni (orig2, vx,vy,vz, dx,dy,dz, 
+                                                 size_x,size_y,size_z);
+   Hex::Elements* grid3 = doc->makeCartesianUni (orig3, vx,vy,vz, dx,dy,dz, 
+                                                 size_x,size_y,size_z);
 
    int nvtk = 0;
    doc->setLevel (1);
@@ -1596,10 +903,7 @@ int test_propagation ()
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
 
-   Hex::Vertex*   orig = doc->addVertex (0,0,0);
-   Hex::Vector*   dir  = doc->addVector (1,1,1);
-   //  Hex::Elements* grid =
-   doc->makeCartesian (orig, dir, size_x,size_y,size_z);
+   doc->makeCartesianTop (size_x,size_y,size_z);
 
    int nb = doc->countPropagation ();
    for (int nro=0 ; nro<nb ; nro++)
@@ -1642,9 +946,7 @@ int test_move ()
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
 
-   Hex::Vertex* orig = doc->addVertex (0,0,0);
-   Hex::Vector* dir  = doc->addVector (1,1,1);
-   Hex::Elements*  grid = doc->makeCartesian (orig, dir, size_x,size_y,size_z);
+   Hex::Elements*  grid = doc->makeCartesianTop (size_x,size_y,size_z);
 
    Hex::Vector*   enhaut  = doc->addVector (0, 0, 5);
    Hex::Vector*   devant  = doc->addVector (5, 0, 0);
@@ -1688,8 +990,7 @@ int test_transfo2 (int nbargs, cpchar tabargs[])
 
    Hex::Vertex* orig = doc->addVertex (0,0,0);
    Hex::Vector* dir  = doc->addVector (1,1,1);
-   Hex::Elements* grid = doc->makeCartesian (orig, dir, size_x, size_y,
-                                                        size_z);
+   Hex::Elements* grid = doc->makeCartesianTop (size_x, size_y, size_z);
    if (grid==NULL)
       return HERR;
 
@@ -1766,40 +1067,6 @@ int test_transfo2 (int nbargs, cpchar tabargs[])
 
    return HOK;
 }
-// ======================================================== test_transfo
-int test_transfo (int nbargs, cpchar tabargs[])
-{
-   int    nvtk    = 0;
-   cpchar fic_vtk = "transfo";
-
-   Hex::Hex mon_ex;
-   Hex::Document* doc = mon_ex.addDocument ();
-   doc ->setLevel (1);
-
-   Hex::Vertex* orig = doc->addVertex (0,0,0);
-   Hex::Vector* vx   = doc->addVector (1,0,0);
-   Hex::Vector* vz   = doc->addVector (0,0,1);
-   double dr = 1;
-   double da = 360;
-   double dl = 1;
-   int nr = 3;
-   int na = 8;
-   int nl = 3;
-   Hex::Elements* grid = doc->makeCylindrical (orig, vx,vz, dr, da, dl,
-                                                            nr, na, nl, false);
-   if (grid==NULL)
-      return HERR;
-
-   doc ->saveVtk (fic_vtk, nvtk);
-   Hex::Vector*   devant  = doc->addVector (10, 0, 0);
-
-   Hex::Elements* grid2 = doc->makeTranslation (grid, devant);
-   if (grid2==NULL)
-      return HERR;
-   doc ->saveVtk (fic_vtk, nvtk);
-
-   return HOK;
-}
 // ======================================================== test_copy_document
 int test_copy_document (int nbargs, cpchar tabargs[])
 {
@@ -1822,11 +1089,7 @@ int test_remove ()
    Hex::Hex mon_ex;
    Hex::Document* doc = mon_ex.addDocument ();
 
-   Hex::Vertex* orig  = doc->addVertex (0,0,0);
-   Hex::Vertex* orig1 = doc->addVertex (6,0,0);
-   Hex::Vector* dir   = doc->addVector (1,1,1);
-   Hex::Elements* grid  = doc->makeCartesian (orig, dir,  size_x,size_y,size_z);
-   doc->makeCartesian (orig1, dir, 1,1,1);
+   Hex::Elements* grid  = doc->makeCartesianTop (size_x,size_y,size_z);
    doc->saveVtk ("removeConn1.vtk");
 
    Echo ("--------- Avant destruction");
@@ -1882,43 +1145,6 @@ void init_vec (Hex::RealVector& tab, double n0=0, double n1=0, double n2=0,
    if (n15>0.0) tab.push_back (n15);
    if (n16>0.0) tab.push_back (n16);
 }
-// ================================================== test_cylindricals
-int test_cylindricals (int nbargs, cpchar tabargs[])
-{
-   Hex::Hex mon_ex;
-   Hex::Document* doc = mon_ex.addDocument ();
-
-   Hex::Vertex* orig = doc->addVertex (0, 0, 0);
-   Hex::Vector* vz   = doc->addVector (0, 0, 1);
-   Hex::Vector* vx   = doc->addVector (1 ,0, 0);
-
-   Hex::RealVector tdr, tda, tdl;
-
-   /******************
-   init_vec (tdr, 2, 1, 0.5);
-   init_vec (tda, 40, 35, 30, 25, 20, 15, 10, 5,
-                   5, 10, 15, 20, 25, 30, 35, 40);
-   init_vec (tdl, 1, 2, 3 );
-
-   init_vec (tdr, 1, 1, 1, 1);
-   init_vec (tda, 45,45, 45,45, 45,45, 45,45 );
-   init_vec (tdl, 1, 1, 1 );
-
-    ****************** */
-
-
-   init_vec (tdr, 1, 2, 1, 2);
-   init_vec (tda, 20, 20, 20 );
-   init_vec (tdl, 1 );
-
-   Hex::Elements* grid=doc->makeCylindricals (orig, vx,vz, tdr,tda,tdl, false);
-
-   doc->saveVtk ("cylindricals.vtk");
-   doc->dump();
-   grid->clearAssociation();
-   doc->clearAssociation();
-   return HOK;
-}
 // ======================================================== test_edge
 int test_edge (int nbargs, cpchar tabargs[])
 {
@@ -1947,8 +1173,6 @@ int test_hexa (int nbargs, cpchar tabargs[])
 
 
    goto_workspace ();
-   ier = test_cylindricals (nbargs, tabargs);
-   ier = test_transfo (nbargs, tabargs);
    free_workspace ();
 
    return ier;