-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016 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
#include "SMESH_StdMeshers.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_TypeOfPosition.hxx"
#include "SMESHDS_Mesh.hxx"
-#include "SMESH_Algo.hxx"
#include "SMESH_Block.hxx"
-#include "SMESH_Comment.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>
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
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 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
const double r,
std::vector< gp_XYZ >& toIntPoints,
std::vector< double >& int2BndDist);
+
+ static void fillZColumn( TZColumn& zColumn,
+ TNodeColumn& nodes );
};
// ===============================================
*/
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