#include "SMDS_FacePosition.hxx"
#include "SMDS_IteratorOnIterators.hxx"
#include "SMDS_VolumeTool.hxx"
+#include "SMESHDS_Mesh.hxx"
#include "SMESH_Block.hxx"
#include "SMESH_HypoFilter.hxx"
+#include "SMESH_Mesh.hxx"
#include "SMESH_MeshAlgos.hxx"
#include "SMESH_ProxyMesh.hxx"
#include "SMESH_subMesh.hxx"
}
}
+//================================================================================
+/*!
+ * \brief Return SMESH_Gen
+ */
+//================================================================================
+
+SMESH_Gen* SMESH_MesherHelper::GetGen() const
+{
+ return GetMesh()->GetGen();
+}
+
+//================================================================================
+/*!
+ * \brief Return mesh DS
+ */
+//================================================================================
+
+SMESHDS_Mesh* SMESH_MesherHelper::GetMeshDS() const
+{
+ return GetMesh()->GetMeshDS();
+}
+
//=======================================================================
//function : IsQuadraticSubMesh
//purpose : Check submesh for given shape: if all elements on this shape
double u2 = uv1.Coord(1);
myPar1[0] = Min( u1, u2 );
myPar2[0] = Max( u1, u2 );
+ myParIndex |= U_periodic;
}
else
{
double v2 = uv1.Coord(2);
myPar1[1] = Min( v1, v2 );
myPar2[1] = Max( v1, v2 );
+ myParIndex |= V_periodic;
}
}
else //if ( !isSeam )
}
}
+//=======================================================================
+//function : ShapeToIndex
+//purpose : Convert a shape to its index in the SMESHDS_Mesh
+//=======================================================================
+
+int SMESH_MesherHelper::ShapeToIndex( const TopoDS_Shape& S ) const
+{
+ return GetMeshDS()->ShapeToIndex( S );
+}
+
//=======================================================================
//function : GetNodeUVneedInFaceNode
//purpose : Check if inFaceNode argument is necessary for call GetNodeUV(F,..)
bool ok = true;
double u0 = GetNodeU( TopoDS::Edge( E ), nn[0], nn[1], &ok );
double u1 = GetNodeU( TopoDS::Edge( E ), nn[1], nn[0], &ok );
- // check that the 2 nodes are connected with a segment (IPAL53055)
- if ( SMESHDS_SubMesh* sm = GetMeshDS()->MeshElements( E ))
- if ( sm->NbElements() > 0 && !GetMeshDS()->FindEdge( nn[0], nn[1] ))
- ok = false;
+ if ( ok )
+ {
+ // check that the 2 nodes are connected with a segment (IPAL53055)
+ ok = false;
+ const SMDS_MeshElement* seg;
+ if ( SMESHDS_SubMesh* sm = GetMeshDS()->MeshElements( E ))
+ if (( sm->NbElements() > 0 ) &&
+ ( seg = GetMeshDS()->FindEdge( nn[0], nn[1] )))
+ ok = sm->Contains( seg );
+ }
if ( ok )
{
isReversed = ( u0 > u1 );