eap [Fri, 2 Oct 2009 16:20:31 +0000 (16:20 +0000)]
020461: EDF 1102 GHS3DPLUGIN: Bad detection of volumes with Ghs3d mesh
SMESH_MesherHelper:
- void SetCheckNodePosition(bool toCheck) { myCheckNodePos = toCheck; }
/*!
+ * \brief Check and fix node UV on a face
+ * \retval bool - false if UV is bad and could not be fixed
+ */
+ bool CheckNodeUV(const TopoDS_Face& F,
+ const SMDS_MeshNode* n,
+ gp_XY& uv,
+ const double tol) const;
- bool myCheckNodePos;
+ std::set< int > myOkNodePosShapes;
0020431: EDF 1020 SMESH : Radial Mesh of a cylinder
pb: only the 1st algo is applied
// apply the algos that do not require descretized boundaries
// ----------------------------------------------------------
for ( subIt = smWithAlgoSupportingSubmeshes.rbegin(); subIt != subEnd; ++subIt )
+ {
+ sm = *subIt;
if ( sm->GetComputeState() == SMESH_subMesh::READY_TO_COMPUTE)
{
0020310: EDF 997 SMESH : Tell the mesh to pass through different points
Edit sub mesh with hypothesis, but without algos.
It is necessary tocheck is there are any comparing of strings as "char* == char*" but HOW?
0020464: EDF 1100 SMESH: Performance issue of the function MoveNode 0020139: EDF 944 SMESH : Get 2D/3D element with X, Y, Z coordinates
def FindNodeClosestTo(self, x, y, z):
- preview = self.mesh.GetMeshEditPreviewer()
- return preview.MoveClosestNodeToPoint(x, y, z, -1)
+ #preview = self.mesh.GetMeshEditPreviewer()
+ #return preview.MoveClosestNodeToPoint(x, y, z, -1)
+ return self.editor.FindNodeClosestTo(x, y, z)
+ ## Finds the elements where a point lays IN or ON
+ # @param x the X coordinate of a point
+ # @param y the Y coordinate of a point
+ # @param z the Z coordinate of a point
+ # @param elementType type of elements to find (SMESH.ALL type
+ # means elements of any type excluding nodes and 0D elements)
+ # @return list of IDs of found elements
+ # @ingroup l2_modif_throughp
+ def FindElementsByPoint(self, x, y, z, elementType = SMESH.ALL):
+ return self.editor.FindElementsByPoint(x, y, z, elementType)
+
0020464: EDF 1100 SMESH: Performance issue of the function MoveNode
+ /*!
+ * Return ID of node closest to a given point
+ */
+ long FindNodeClosestTo(in double x, in double y, in double z);
+
0020139: EDF 944 SMESH : Get 2D/3D element with X, Y, Z coordinates
+ /*!
+ * Return elements of given type where the given point is IN or ON.
+ *
+ * 'ALL' type means elements of any type excluding nodes and 0D elements
+ */
+ long_array FindElementsByPoint(in double x, in double y, in double z, in ElementType type);
+
0020464: EDF 1100 SMESH: Performance issue of the function MoveNode
+ /*!
+ * Return ID of node closest to a given point
+ */
+ long FindNodeClosestTo(in double x, in double y, in double z);
+
0020139: EDF 944 SMESH : Get 2D/3D element with X, Y, Z coordinates
+ /*!
+ * Return elements of given type where the given point is IN or ON.
+ *
+ * 'ALL' type means elements of any type excluding nodes and 0D elements
+ */
+ long_array FindElementsByPoint(in double x, in double y, in double z, in ElementType type);
+
0020139: EDF 944 SMESH : Get 2D/3D element with X, Y, Z coordinates
+//=======================================================================
+/*!
+ * \brief Return elements of given type where the given point is IN or ON.
+ *
+ * 'ALL' type means elements of any type excluding nodes and 0D elements
+ */
+//=======================================================================
+
+struct SMESH_ElementSearcher
+{
+ virtual void FindElementsByPoint(const gp_Pnt& point,
+ SMDSAbs_ElementType type,
+ std::vector< const SMDS_MeshElement* >& foundNodes)=0;
+};