Salome HOME
projects
/
modules
/
smesh.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
IPAL52499: Prismatic mesh is not computed on a prismatic shape
[modules/smesh.git]
/
src
/
StdMeshers
/
StdMeshers_Prism_3D.hxx
diff --git
a/src/StdMeshers/StdMeshers_Prism_3D.hxx
b/src/StdMeshers/StdMeshers_Prism_3D.hxx
index 9788b64a115e45cf279cd02b4ac9364f3600bd6e..48c75ba0e2026d5d205848ac3d2ba0688605861c 100644
(file)
--- a/
src/StdMeshers/StdMeshers_Prism_3D.hxx
+++ b/
src/StdMeshers/StdMeshers_Prism_3D.hxx
@@
-1,4
+1,4
@@
-// Copyright (C) 2007-201
5
CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-201
6
CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@
-29,15
+29,12
@@
#include "SMESH_StdMeshers.hxx"
#include "SMESH_StdMeshers.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_TypeOfPosition.hxx"
#include "SMESHDS_Mesh.hxx"
#include "SMESHDS_Mesh.hxx"
-#include "SMESH_Algo.hxx"
#include "SMESH_Block.hxx"
#include "SMESH_Block.hxx"
-#include "SMESH_Comment.hxx"
#include "SMESH_Mesh.hxx"
#include "SMESH_MesherHelper.hxx"
#include "SMESH_TypeDefs.hxx"
#include "SMESH_Mesh.hxx"
#include "SMESH_MesherHelper.hxx"
#include "SMESH_TypeDefs.hxx"
+#include "SMESH_Comment.hxx"
#include "SMESH_subMesh.hxx"
#include <Adaptor2d_Curve2d.hxx>
#include "SMESH_subMesh.hxx"
#include <Adaptor2d_Curve2d.hxx>
@@
-185,6
+182,16
@@
class STDMESHERS_EXPORT StdMeshers_PrismAsBlock: public SMESH_Block
return col_frw.first;
}
return col_frw.first;
}
+ /*!
+ * \brief Return pointer to column of nodes
+ * \param node - bottom node from which the returned column goes up
+ * \retval const TNodeColumn* - the found column
+ */
+ bool HasNodeColumn(const SMDS_MeshNode* node) const
+ {
+ return myShapeIndex2ColumnMap.count( node->getshapeId() );
+ }
+
/*!
* \brief Return transformations to get coordinates of nodes of each internal layer
* by nodes of the bottom. Layer is a set of nodes at a certain step
/*!
* \brief Return transformations to get coordinates of nodes of each internal layer
* by nodes of the bottom. Layer is a set of nodes at a certain step
@@
-411,10
+418,21
@@
struct StdMeshers_Sweeper
std::vector< TNodeColumn* > myBndColumns; // boundary nodes
std::vector< TNodeColumn* > myIntColumns; // internal nodes
std::vector< TNodeColumn* > myBndColumns; // boundary nodes
std::vector< TNodeColumn* > myIntColumns; // internal nodes
+ typedef std::vector< double > TZColumn;
+ std::vector< TZColumn > myZColumns; // Z distribution of boundary nodes
+
bool ComputeNodes( SMESH_MesherHelper& helper,
const double tol,
const bool allowHighBndError );
bool ComputeNodes( SMESH_MesherHelper& helper,
const double tol,
const bool allowHighBndError );
+ bool CheckSameZ();
+
+ bool ComputeNodesOnStraightSameZ( SMESH_MesherHelper& helper );
+
+ bool ComputeNodesOnStraight( SMESH_MesherHelper& helper,
+ const TopoDS_Face& bottom,
+ const TopoDS_Face& top);
+
private:
gp_XYZ bndPoint( int iP, int z ) const
private:
gp_XYZ bndPoint( int iP, int z ) const
@@
-436,6
+454,9
@@
private:
const double r,
std::vector< gp_XYZ >& toIntPoints,
std::vector< double >& int2BndDist);
const double r,
std::vector< gp_XYZ >& toIntPoints,
std::vector< double >& int2BndDist);
+
+ static void fillZColumn( TZColumn& zColumn,
+ TNodeColumn& nodes );
};
// ===============================================
};
// ===============================================
@@
-535,6
+556,11
@@
public:
*/
bool isSimpleBottom( const Prism_3D::TPrismTopo& thePrism );
*/
bool isSimpleBottom( const Prism_3D::TPrismTopo& thePrism );
+ /*!
+ * \brief Defines if all "vertical" EDGEs are straight
+ */
+ bool allVerticalEdgesStraight( const Prism_3D::TPrismTopo& thePrism );
+
/*!
* \brief Project mesh faces from a source FACE of one prism to
* a source FACE of another prism
/*!
* \brief Project mesh faces from a source FACE of one prism to
* a source FACE of another prism