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
23627: [IMACS] ASERIS: project point to the mesh and create a slot
[modules/smesh.git]
/
src
/
SMESH
/
SMESH_MesherHelper.hxx
diff --git
a/src/SMESH/SMESH_MesherHelper.hxx
b/src/SMESH/SMESH_MesherHelper.hxx
index 7e60e6d250adf341f0c0c65791d8e23b6f156053..3b516baa01615d717c74363a5e0f0d8613acad4a 100644
(file)
--- a/
src/SMESH/SMESH_MesherHelper.hxx
+++ b/
src/SMESH/SMESH_MesherHelper.hxx
@@
-52,7
+52,7
@@
typedef std::map<SMESH_TLink, const SMDS_MeshNode*>::iterator ItTLinkNode;
typedef SMDS_Iterator<const TopoDS_Shape*> PShapeIterator;
typedef boost::shared_ptr< PShapeIterator > PShapeIteratorPtr;
typedef SMDS_Iterator<const TopoDS_Shape*> PShapeIterator;
typedef boost::shared_ptr< PShapeIterator > PShapeIteratorPtr;
-
+
typedef std::vector<const SMDS_MeshNode* > TNodeColumn;
typedef std::map< double, TNodeColumn > TParam2ColumnMap;
typedef std::vector<const SMDS_MeshNode* > TNodeColumn;
typedef std::map< double, TNodeColumn > TParam2ColumnMap;
@@
-122,7
+122,9
@@
class SMESH_EXPORT SMESH_MesherHelper
/*!
* \brief Return true if 2D mesh on FACE is distored
*/
/*!
* \brief Return true if 2D mesh on FACE is distored
*/
- static bool IsDistorted2D( SMESH_subMesh* faceSM, bool checkUV=false );
+ static bool IsDistorted2D( SMESH_subMesh* faceSM,
+ bool checkUV = false,
+ SMESH_MesherHelper* faceHelper = NULL);
/*!
* \brief Returns true if given node is medium
/*!
* \brief Returns true if given node is medium
@@
-298,7
+300,7
@@
public:
/*!
* \brief To set created elements on the shape set by IsQuadraticSubMesh()
/*!
* \brief To set created elements on the shape set by IsQuadraticSubMesh()
- * or the next methods. By defaul elements are set on the shape if
+ * or the next methods. By defaul
t
elements are set on the shape if
* a mesh has no shape to be meshed
*/
bool SetElementsOnShape(bool toSet)
* a mesh has no shape to be meshed
*/
bool SetElementsOnShape(bool toSet)
@@
-318,6
+320,12
@@
public:
* \brief Return the shape set by IsQuadraticSubMesh() or SetSubShape()
*/
const TopoDS_Shape& GetSubShape() const { return myShape; }
* \brief Return the shape set by IsQuadraticSubMesh() or SetSubShape()
*/
const TopoDS_Shape& GetSubShape() const { return myShape; }
+ /*!
+ * \brief Copy shape information from another helper to improve performance
+ * since SetSubShape() can be time consuming if there are many edges
+ */
+ void CopySubShapeInfo(const SMESH_MesherHelper& other);
+
/*!
* \brief Convert a shape to its index in the SMESHDS_Mesh
/*!
* \brief Convert a shape to its index in the SMESHDS_Mesh
@@
-531,7
+539,7
@@
public:
bool GetNodeUVneedInFaceNode(const TopoDS_Face& F = TopoDS_Face()) const;
/*!
bool GetNodeUVneedInFaceNode(const TopoDS_Face& F = TopoDS_Face()) const;
/*!
- * \brief Return projector in
t
itialized by given face without location, which is returned
+ * \brief Return projector initialized by given face without location, which is returned
*/
GeomAPI_ProjectPointOnSurf& GetProjector(const TopoDS_Face& F,
TopLoc_Location& loc,
*/
GeomAPI_ProjectPointOnSurf& GetProjector(const TopoDS_Face& F,
TopLoc_Location& loc,
@@
-553,9
+561,15
@@
public:
/*!
* \brief Check if the shape set through IsQuadraticSubMesh() or SetSubShape()
* has a degenerated edges
/*!
* \brief Check if the shape set through IsQuadraticSubMesh() or SetSubShape()
* has a degenerated edges
-
* \retval bool - true if it ha
s
+
* \retval bool - true if there are degenerated edge
s
*/
bool HasDegeneratedEdges() const { return !myDegenShapeIds.empty(); }
*/
bool HasDegeneratedEdges() const { return !myDegenShapeIds.empty(); }
+ /*!
+ * \brief Return a number of degenerated edges in the shape set through
+ * IsQuadraticSubMesh() or SetSubShape()
+ * \retval size_t - nb edges
+ */
+ size_t NbDegeneratedEdges() const { return myDegenShapeIds.size(); }
/*!
* \brief Check if shape is a seam edge or it's vertex
/*!
* \brief Check if shape is a seam edge or it's vertex
@@
-563,7
+577,7
@@
public:
* \retval bool - true if subShape is a seam shape
*
* It works only if IsQuadraticSubMesh() or SetSubShape() has been called.
* \retval bool - true if subShape is a seam shape
*
* It works only if IsQuadraticSubMesh() or SetSubShape() has been called.
- * Seam shape has two 2D alternative represenations on the face
+ * Seam shape has two 2D alternative represen
t
ations on the face
*/
bool IsSeamShape(const int subShape) const
{ return mySeamShapeIds.find( subShape ) != mySeamShapeIds.end(); }
*/
bool IsSeamShape(const int subShape) const
{ return mySeamShapeIds.find( subShape ) != mySeamShapeIds.end(); }
@@
-573,7
+587,7
@@
public:
* \retval bool - true if subShape is a seam shape
*
* It works only if IsQuadraticSubMesh() or SetSubShape() has been called.
* \retval bool - true if subShape is a seam shape
*
* It works only if IsQuadraticSubMesh() or SetSubShape() has been called.
- * Seam shape has two 2D alternative represenations on the face
+ * Seam shape has two 2D alternative represen
t
ations on the face
*/
bool IsSeamShape(const TopoDS_Shape& subShape) const
{ return IsSeamShape( ShapeToIndex( subShape )); }
*/
bool IsSeamShape(const TopoDS_Shape& subShape) const
{ return IsSeamShape( ShapeToIndex( subShape )); }
@@
-602,6
+616,12
@@
public:
* \retval bool - true if it has
*/
bool HasRealSeam() const { return HasSeam() && ( *mySeamShapeIds.begin() < 0 ); }
* \retval bool - true if it has
*/
bool HasRealSeam() const { return HasSeam() && ( *mySeamShapeIds.begin() < 0 ); }
+ /*!
+ * \brief Return a number of real seam edges in the shape set through
+ * IsQuadraticSubMesh() or SetSubShape(). A real seam edge encounters twice in a wire
+ * \retval size_t - nb of real seams
+ */
+ size_t NbRealSeam() const;
/*!
* \brief Return index of periodic parametric direction of a closed face
* \retval int - 1 for U, 2 for V direction
/*!
* \brief Return index of periodic parametric direction of a closed face
* \retval int - 1 for U, 2 for V direction
@@
-611,6
+631,10
@@
public:
* \brief Return an alternative parameter for a node on seam
*/
double GetOtherParam(const double param) const;
* \brief Return an alternative parameter for a node on seam
*/
double GetOtherParam(const double param) const;
+ /*!
+ * \brief Check if UV is on seam. Return 0 if not, 1 for U seam, 2 for V seam
+ */
+ int IsOnSeam(const gp_XY& uv) const;
/*!
* \brief Return existing or create new medium nodes between given ones
/*!
* \brief Return existing or create new medium nodes between given ones
@@
-693,6
+717,7
@@
public:
static void WriteShape(const TopoDS_Shape& s);
static void WriteShape(const TopoDS_Shape& s);
+
protected:
/*!
protected:
/*!
@@
-709,6
+734,7
@@
public:
double getFaceMaxTol( const TopoDS_Shape& face ) const;
double getFaceMaxTol( const TopoDS_Shape& face ) const;
+
private:
// forbidden copy constructor
private:
// forbidden copy constructor