Salome HOME
[bos #40653][CEA] New mesh import export formats with meshio.
[modules/smesh.git] / src / StdMeshers / StdMeshers_Prism_3D.hxx
index e3410fe2b82219227bba2c10cbb96014df70ec76..57a23407cab97bc990e965d11c5f44a903ccfeb7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -33,6 +33,7 @@
 #include "SMESH_Block.hxx"
 #include "SMESH_Comment.hxx"
 #include "SMESH_Mesh.hxx"
+#include "SMESH_SequentialMesh.hxx"
 #include "SMESH_MesherHelper.hxx"
 #include "SMESH_TypeDefs.hxx"
 #include "SMESH_subMesh.hxx"
@@ -106,6 +107,7 @@ namespace Prism_3D
     std::list< int >         myNbEdgesInWires;
 
     bool                     myNotQuadOnTop;
+    mutable SMESH_subMesh*   myAlgoSM; // sub-mesh with algo which computed myBottom
 
     size_t NbWires() const { return myNbEdgesInWires.size(); }
 
@@ -116,7 +118,7 @@ namespace Prism_3D
 
 // ===============================================================
 /*!
- * \brief Tool analyzing and giving access to a prism geometry 
+ * \brief Tool analyzing and giving access to a prism geometry
  *  treating it like a block, i.e. the four side faces are
  *  emulated by division/uniting of missing/excess faces.
  *  It also manage associations between block sub-shapes and a mesh.
@@ -153,7 +155,7 @@ class STDMESHERS_EXPORT StdMeshers_PrismAsBlock: public SMESH_Block
    * \brief Return number of nodes on every vertical edge
     * \retval int - number of nodes including end nodes
    */
-  int VerticalSize() const { return myParam2ColumnMaps[0].begin()->second.size(); }
+  size_t VerticalSize() const { return myParam2ColumnMaps[0].begin()->second.size(); }
 
   bool HasNotQuadElemOnTop() const { return myNotQuadOnTop; }
 
@@ -199,7 +201,7 @@ class STDMESHERS_EXPORT StdMeshers_PrismAsBlock: public SMESH_Block
    */
   bool GetLayersTransformation(std::vector<gp_Trsf> &      trsf,
                                const Prism_3D::TPrismTopo& prism) const;
-  
+
   /*!
    * \brief Return pointer to mesh
     * \retval SMESH_Mesh - mesh
@@ -245,12 +247,12 @@ class STDMESHERS_EXPORT StdMeshers_PrismAsBlock: public SMESH_Block
   { return myShapeIDMap.FindIndex( shape ); }
 
   /*!
-   * \brief Check curve orientation of a bootom edge
+   * \brief Check curve orientation of a bottom edge
    *  \param meshDS - mesh DS
    *  \param columnsMap - node columns map of side face
-   *  \param bottomEdge - the bootom edge
+   *  \param bottomEdge - the bottom edge
    *  \param sideFaceID - side face in-block ID
-   *  \retval bool - true if orienation coinside with in-block froward orienation
+   *  \retval bool - true if orientation coincide with in-block forward orientation
    */
   static bool IsForwardEdge(SMESHDS_Mesh*           meshDS,
                             const TParam2ColumnMap& columnsMap,
@@ -388,7 +390,7 @@ private:
   SMESH_ComputeErrorPtr myError;
 
   // container of 4 side faces
-  TSideFace*            mySide; 
+  TSideFace*            mySide;
   // node columns for each base edge
   std::vector< TParam2ColumnMap >                       myParam2ColumnMaps;
   // to find a column for a node by edge SMESHDS Index