eap [Fri, 2 Oct 2009 16:14:59 +0000 (16:14 +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;
case REMOVE_FATHER_ALGO: {
+ // IPAL21346. Edges not removed when Netgen 1d-2d is removed from a SOLID.
+ // CLEAN was not called at event REMOVE_ALGO because the algo is not applicable to SOLID.
+ algo = dynamic_cast<SMESH_Algo*> (anHyp);
+ if (!algo->NeedDescretBoundary())
+ needFullClean = true;
+
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)
{
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
1) merge with V5_1_main
2)
struct SMESH_NodeSearcher
{
virtual const SMDS_MeshNode* FindClosestTo( const gp_Pnt& pnt ) = 0;
+ virtual void MoveNode( const SMDS_MeshNode* node, const gp_Pnt& toPnt ) = 0;
};
+//=======================================================================
+/*!
+ * \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;
+};
eap [Thu, 20 Aug 2009 08:27:55 +0000 (08:27 +0000)]
0020452: EDF 1056 SMESH : 2D Projection Issue
1) in FindSubShapeAssociation(): use shape partnership (TopoDS_Shape::IsPartner())
for association
2) in FindFaceAssociation(): try two algoritms to find a correct outer wire
eap [Thu, 18 Jun 2009 12:46:35 +0000 (12:46 +0000)]
- ## Returns the list of IDs of submesh elements with the given type
+ ## Returns type of elements on given shape
# @param Shape a geom object(subshape) IOR
# Shape must be a subshape of a ShapeToMesh()
- # @return the list of integer values
+ # @return element type
# @ingroup l1_meshinfo
def GetSubMeshElementType(self, Shape):
eap [Thu, 18 Jun 2009 12:44:59 +0000 (12:44 +0000)]
0020128: EDF SMESH 926 : Quadratic conversion of BLSURF mesh
/*!
+ * \brief Move medium nodes of faces and volumes to fix distorted elements
+ * \param volumeOnly - fix nodes on faces or not if the shape is solid
+ */
+ void FixQuadraticElements(bool volumeOnly=true);
eap [Mon, 25 May 2009 11:38:13 +0000 (11:38 +0000)]
0020145: EDF 666 SMESH: Modifications of GEOM groups are not taken into account
1) Call CheckGeomGroupModif() in Clear()
2) In CheckGeomGroupModif(), implement case where meshed geom group changes
eap [Mon, 25 May 2009 11:34:25 +0000 (11:34 +0000)]
0020145: EDF 666 SMESH: Modifications of GEOM groups are not taken into account
+ void changeLocalId(int localId) { myLocalID = localId; }
+ friend void SMESH_Mesh_i::CheckGeomGroupModif();
eap [Mon, 25 May 2009 11:23:23 +0000 (11:23 +0000)]
0020145: EDF 666 SMESH: Modifications of GEOM groups are not taken into account
1) allow changing shape to mesh in case of shape being group
2) merge with V5
eap [Wed, 20 May 2009 15:48:31 +0000 (15:48 +0000)]
0020279: [CEA 334] control the "random" use when using mesh algorithms
1) delete temporary faces in destructor
2) bind created pyramids to shape
3) create quadratic pyramids when necessary
4) sort faces by IDs
5) fix for SIGSEGV on quadratic mesh
eap [Wed, 20 May 2009 15:46:49 +0000 (15:46 +0000)]
0020279: [CEA 334] control the "random" use when using mesh algorithms
fix SetSourceMesh(): set mesh before calling NotifySubMeshesHypothesisModification()
eap [Wed, 20 May 2009 15:38:19 +0000 (15:38 +0000)]
0020279: [CEA 334] control the "random" use when using mesh algorithms
For stability of StdMeshers_CompositeSegment_1D:
+ bool IsAlwaysComputed() { return _alwaysComputed; }
vsr [Wed, 6 May 2009 14:54:16 +0000 (14:54 +0000)]
0020210: EDF SMESH 976: Update of a smesh group after modification of the associated geom group
Additional patch: do not publish SMESH component automatically on the module activation
ouv [Wed, 6 May 2009 13:17:00 +0000 (13:17 +0000)]
Improvement of "setenv.py" script - setting of custom enviroment by those modules, which have it, is performed by their own "<module_name>_setenv.py" scripts situated in their "bin" folders.
0020210: EDF SMESH 976: Update of a smesh group after modification of the associated geom group
+ static void SetPixMap(SALOMEDS::SObject_ptr theSObject,
+ const char* thePixMap);
0020210: EDF SMESH 976: Update of a smesh group after modification of the associated geom group
call mesh->CheckGeomGroupModif() when current study changes
eap [Thu, 12 Mar 2009 09:49:18 +0000 (09:49 +0000)]
0020213: RadialPrism_3D_4 failed on V5_1 64 bits 0020214: Project_2D_4 failed on V5_1 64 bits
different ways of removing deleted and alive elements from submesh
eap [Wed, 11 Mar 2009 15:08:49 +0000 (15:08 +0000)]
0020206: EDF SMESH 987: Netgen1D2D3D +submesh
fix detection of SMESHDS_SubMesh'es of geom groups
+ int _nbSubShapes; // initial nb of subshapes in the shape to mesh