Commit Graph

1017 Commits

Author SHA1 Message Date
eap
b44f6a0f67 rename SMESHGUI_EditMeshDlg to SMESHGUI_MergeDlg 2010-09-15 11:42:59 +00:00
eap
b166f12b58 Use TIDSortedNodeSet instead of set< const SMDS_MeshNode*> when looking for coincident nodes
+typedef std::set< const SMDS_MeshNode*,    TIDCompare >      TIDSortedNodeSet;
2010-09-15 11:41:11 +00:00
dmv
20db1a650f WinTC5.1.4: Application crash after open Linux study 2010-09-13 14:23:50 +00:00
dmv
7a8dbd1c30 0020082: EDF 869 GEOM : Edges Orientation indicator/reverse 2010-09-09 09:08:23 +00:00
eap
b5eb9a6a03 use linked nodes to get an upward direction when defining orientation 2010-09-07 06:35:44 +00:00
eap
ea6aa32f23 0020968: EDF1545 SMESH: Problem in de creation of a mesh group on geometry
Detect not computed sub-shapes in case if algo computes many
   submeshes at once
2010-09-03 14:19:16 +00:00
eap
6d9d5ab070 0020963: EDF 1528 SMESH: How to combine Netgen1D2D with sizemap with Quadrangle(Mapping) ?
-              sm->ComputeStateEngine(SMESH_subMesh::COMPUTE);
+              _gen->Compute( theMesh, _mainEdge, /*anUpward=*/true);

sm->ComputeStateEngine() fails if vertices it depends on are not yet created
2010-09-02 06:30:53 +00:00
eap
fe8da0148d improve comment 2010-09-02 06:26:55 +00:00
eap
59f4ea94a3 bool SMESH_HypoFilter::IsMoreLocalThanPredicate::IsOk(const SMESH_Hypothesis* aHyp,
const TopoDS_Shape&     aShape) const
 {
+  // issue 0020963
+  // if aShape is COMPOUND (i.e. most probably a GEOM group) then
+  // it is more local if it contains shapes of less dimension than _shapeType
+  ...
2010-09-02 06:26:23 +00:00
eap
b539de9f45 0020959: EDF 1531: HEXA_3D fails on shell
in DependsOn(), do not make a sub-mesh of a not closed SHELL
2010-09-01 11:00:43 +00:00
vsr
d4056b8447 SALOME internationalization: add textual resources for French language 2010-08-31 15:14:20 +00:00
vsr
565717b18c SALOME internationalization: add textual resources for French language 2010-08-31 10:03:26 +00:00
eap
859a8ee4f0 untabify 2010-08-30 12:00:00 +00:00
eap
4802162fe0 Fix dump python of DoubleNode*() 2010-08-30 11:59:17 +00:00
eap
290a70345b Fix TPythonDump::operator<<(const SMESH::ListOfGroups& theList) for an empty list 2010-08-30 11:44:16 +00:00
mzn
cc203f62c3 Fix for imp 0020876: EDF 1246 SMESH: DoubleNodes fonctions available in the GUI. 2010-08-30 10:57:47 +00:00
vsr
9a0bd14a2c Issue: 0020935: A group created with a type of element criteria is empty
- Fix some filters bugs in Python API
2010-08-25 10:17:27 +00:00
eap
91db52567f 0020958: EDF 1529 SMESH : If some faces have been meshed with small
quadrangles Netgen 3D creates pyramids with volume zero and fails

   bool CheckIntersection(const gp_Pnt& P, const gp_Pnt& PC,
                          gp_Pnt& Pint, SMESH_Mesh& aMesh,
                          const TopoDS_Shape& aShape,
-                         const TopoDS_Shape& NotCheckedFace);
+                         const SMDS_MeshElement* NotCheckedFace);
2010-08-23 05:26:19 +00:00
eap
0bce8612a5 Fix for SIGSEGV on Mandriva2008 in optimize mode only
==21300== Invalid read of size 4
==21300==    at 0x1445EA23: StdMeshers_Penta_3D::MakeVolumeMesh() (StdMeshers_Penta_3D.cxx:681)

  while (aItNodes->more()) {

It seems to be an error of optimization, aItNodes.px becomes invalid
before aItNodes->more() returns false but after the loop code is
performed for the last time.
2010-08-19 13:28:02 +00:00
eap
23a1a900c3 remove debug output 2010-08-19 09:41:24 +00:00
eap
1aa25c0e23 0020958: EDF 1529 SMESH : If some faces have been meshed with small
quadrangles Netgen 3D creates pyramids with volume zero and fails

* Fix HasIntersection3(): use reasonable tolerances
* Improve performace using SMESH_ElementSearcher
2010-08-19 09:23:39 +00:00
eap
14c9e5320c fix removing from the std::map being iterated over 2010-08-19 09:21:03 +00:00
eap
3a69b3ea0f 0020958: EDF 1529 SMESH : If some faces have been meshed with small
quadrangles Netgen 3D creates pyramids with volume zero and fails

struct SMESH_ElementSearcher
{
+  /*!
+   * \brief Return elements possibly intersecting the line
+   */
+  virtual void GetElementsNearLine( const gp_Ax1&                           line,
+                                    SMDSAbs_ElementType                     type,
+                                    std::vector< const SMDS_MeshElement* >& foundElems)=0;
2010-08-19 09:19:49 +00:00
eap
32e5402500 Implement iteration in id increasing order
-  SMDS_NodeIteratorPtr nodesIterator(bool idInceasingOrder=false) const;
-  SMDS_0DElementIteratorPtr elements0dIterator() const;
-  SMDS_EdgeIteratorPtr edgesIterator() const;
-  SMDS_FaceIteratorPtr facesIterator() const;
-  SMDS_VolumeIteratorPtr volumesIterator() const;
+  SMDS_NodeIteratorPtr nodesIterator          (bool idInceasingOrder=false) const;
+  SMDS_0DElementIteratorPtr elements0dIterator(bool idInceasingOrder=false) const;
+  SMDS_EdgeIteratorPtr edgesIterator          (bool idInceasingOrder=false) const;
+  SMDS_FaceIteratorPtr facesIterator          (bool idInceasingOrder=false) const;
+  SMDS_VolumeIteratorPtr volumesIterator      (bool idInceasingOrder=false) const;
2010-08-19 09:17:39 +00:00
eap
2712d2bac8 avoid unused variables in release mode 2010-08-18 11:06:29 +00:00
eap
0ead748d34 fix the case of already meshed sole straight edge 2010-08-18 11:06:01 +00:00
eap
986c507e02 0020855: [CEA] Problem with ijk algo
find out orientation by a least distorted hexahedron
2010-08-18 08:00:09 +00:00
eap
99da90c8d2 -theFileName = thePath + "/Shapes/Brep/slots.brep"
+theFileName = os.path.join( thePath,"Shapes","Brep","slots.brep")
2010-08-13 12:56:44 +00:00
eap
9b8d761c97 0020955: EDF 1493 SMESH: Bad import of .unv file
* Complete the set of readable 2D elements
2010-08-09 08:38:48 +00:00
eap
c3ab4d469d Remove unused variables 2010-08-09 08:37:24 +00:00
eap
758a69ebf0 0020951: EDF 1501 SMESH: Conversion linear/quadratic with medium nodes on geometry fails with GHS3D
* Fix splitTrianglesIntoChains()
2010-08-04 12:05:37 +00:00
eap
da13b7ebd3 0020951: EDF 1501 SMESH: Conversion linear/quadratic with medium nodes on geometry fails with GHS3D
* Fix for usecase: open the atached study, convert Mesh_1 from
   quadratic, unassign GHS3D algo -> SIGSEGV. Reason is that the same
   SMDS_SpacePosition is shared by all nodes in different solids.
2010-08-04 12:02:49 +00:00
eap
cb58ff9fa4 untabify 2010-07-27 13:06:18 +00:00
eap
52be03b564 0020951: EDF 1501 SMESH: Conversion linear/quadratic with medium nodes on geometry fails with GHS3D
* Fix GetNodeUV() for a node on seam edge: enable projection of node in face
 * Fix GetMediumNode(): set a node in volume #1 as well
 * Fix QFace::GetLinkChain(), case of triangles
2010-07-27 13:05:28 +00:00
eap
4ea8012155 0020920: EDF 1478 SMESH: Conversion linear to quadratic fails (BLSURF Mesh)
* fix FixQuadraticElements(): ignore internal chains
2010-07-21 05:45:17 +00:00
eap
cc0f9654b4 0020919: EDF 1472 SMESH: Linear to quadratic conversion fails with hexaedron algorithm
* fix FixQuadraticElements()
2010-07-20 06:06:38 +00:00
eap
90bfbd9c1e improve comment 2010-07-20 06:05:22 +00:00
adam
92931e254a Patch from Anthony to be compliant with MED 2010-07-19 15:18:39 +00:00
eap
99adc043fe untabify 2010-07-19 07:57:32 +00:00
vsr
420d105fdb Issue 0020921: EDF 1462 SMESH: Regression in 5.1.4. a quadrangle meshing fails 2010-07-08 06:51:11 +00:00
vsr
32a86c1f4a 0020742: EDF 1270 SMESH : Delete Group with contents and remove Orphan Nodes 2010-07-07 05:32:15 +00:00
adam
3cd9dd3663 windows port 2010-07-06 10:17:30 +00:00
dmv
4d43188368 IPAL21820 TC6.1.0: Lost new nodes 2010-07-05 13:58:35 +00:00
dmv
e3ffb861ce IPAL21831 Can't load the Python dump after Export to MED 2010-06-30 11:40:12 +00:00
vsr
9862fa66b4 Bug IPAL21801: preferences for SMESH: color of Group name text should be added
EDF 703 SMESH VISU : Display Mesh Groups names in viewer (as a caption)
Additional fix: add preferences for the names groups color
2010-06-23 13:19:50 +00:00
vsr
8c1e153907 0020752: EDF 1303 SMESH : Add a 'Select All' button in Create Group dialog box 2010-06-22 15:24:40 +00:00
jfa
946f0a4e5c Mantis issue 0020812: Register() and Destroy() of the GenericObj. 2010-06-22 14:43:41 +00:00
ouv
e533bcb1d7 Issue 0020755: EDF 1279 MESH : 'Mesh to Pass Through a Point' enhancement 2010-06-21 10:30:03 +00:00
vsr
2343a5b385 Fix bug of NodeSearcher: search fails if point is outside the mesh on the distance more than octree node precision value. Version 2 with improved performance. 2010-06-21 07:29:04 +00:00
vsr
97577f2731 Fix bug of NodeSearcher: search fails if point is outside the mesh on the distance more than octree node precision value 2010-06-17 19:00:18 +00:00
vsr
6ea1e8f320 Merge from V5_1_4_BR (5_1_4rc2) 09/06/2010 2010-06-10 06:51:07 +00:00
eap
452d18f670 0020676: EDF 1212 GEOM: Partition operation creates vertices which causes mesh computation to fail with netgen
* In GetFaceWires(), create a separate wire for each internal edge
2010-06-08 11:33:26 +00:00
eap
dd4eae00e6 - return ( e && e->NbNodes() == ( e->IsQuadratic() ? 8 : 4 ));
+    return ( e && e->NbCornerNodes() == 4 );
2010-05-20 10:23:56 +00:00
eap
17aeb4f3c7 0020855: [CEA] Problem with ijk algo ---------- KO.med file 2010-05-20 10:04:19 +00:00
eap
5dad3ddd64 0020855: [CEA] Problem with ijk algo
* Fix detection of block corners
  * Fix selection of sides
2010-05-19 08:16:18 +00:00
eap
0611264223 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
## Computes the mesh and returns the status of the computation
+    #  @param discardModifs if True and the mesh has been edited since
+    #         a last total re-compute and that may prevent successful partial re-compute,
+    #         then the mesh is cleaned before Compute()
     #  @return True or False
     #  @ingroup l2_construct
-    def Compute(self, geom=0):
+    def Compute(self, geom=0, discardModifs=False):
2010-05-13 06:24:13 +00:00
eap
475c43c868 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
* set _isModified attribute of the mesh to true
2010-05-13 06:23:03 +00:00
eap
fdac3f59c5 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
* save/restore _isModified attribute of the mesh
2010-05-13 06:22:26 +00:00
eap
38824d786e 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
+    if ( myMesh->HasModificationsToDiscard() && // issue 0020693
+         SUIT_MessageBox::question( desktop(), tr( "SMESH_WARNING" ),
+                                    tr( "FULL_RECOMPUTE_QUESTION" ),
+                                    tr( "SMESH_BUT_YES" ), tr( "SMESH_BUT_NO" ), 1, 0 ) == 0 )
+      myMesh->Clear();
2010-05-13 06:20:35 +00:00
eap
a5103fc7f7 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
+            <source>FULL_RECOMPUTE_QUESTION</source>
+            <translation>
+The mesh has been edited since a last total re-compute
+that may prevent successful computation.
+Do you wish to re-compute the mesh totally to discard the modifications?
+            </translation>
+        </message>
+        <message>
2010-05-13 06:20:02 +00:00
eap
dc9f7a0708 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
+    /*!
+     * Return true if the mesh has been edited since a total re-compute
+     * and those modifications may prevent successful partial re-compute
+     */
+    boolean HasModificationsToDiscard()
+      raises (SALOME::SALOME_Exception);
2010-05-13 06:18:57 +00:00
eap
d0e4aacc56 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
+  void SetIsModified(bool isModified);
+  bool GetIsModified() const { return _isModified; }
+  bool HasModificationsToDiscard() const;
+  bool                       _isModified; //!< modified since last total re-compute, issue 0020693
2010-05-13 06:18:02 +00:00
vsr
6650dea1f8 Merge from V5_1_4_BR 07/05/2010 2010-05-07 15:08:23 +00:00
eap
4a1881f9c1 0020855: [CEA] Problem with ijk algo
* Fix difining sharing of block sides
  * Fix selection of adjacent side
2010-05-06 08:48:21 +00:00
eap
46390b4393 0020855: [CEA] Problem with ijk algo
* Fix uninitialized gravity center
-      gp_XYZ gc;
+      gp_XYZ gc(0,0,0);
2010-04-30 06:45:50 +00:00
eap
8ebb31bcc9 0020849: [CEA] Projection 2D fails
* project by transformation in case if TopoDS_TFace's are different
2010-04-26 10:39:30 +00:00
dmv
0fe4350ada IPAL21668 Call of Edit Group leads to Crash. 2010-04-08 07:52:18 +00:00
san
845309d919 Issue 0020580: improved validation in integer and double spin boxes, possibility to adjust input field precision through preferences 2010-04-05 11:43:42 +00:00
eap
da4a6470be Rename to avoid clash with same name class from GEOM_Engine
-class ObjectStates{
+class SMESH_ObjectStates{
2010-03-31 05:56:30 +00:00
eap
204b3f755c Remove useless extra dump in DEBUG mode 2010-03-31 05:55:11 +00:00
eap
a232cd7e03 0020672: EDF 1243 SMESH : Be able to transform mixed mesh
+    void SplitVolumesIntoTetra(in SMESH_IDSource elems, in short methodFlags)
2010-03-30 12:38:16 +00:00
eap
01d2cde96d 0020672: EDF 1243 SMESH : Be able to transform mixed mesh
* Add "Split into Tetrahedra" operation
2010-03-30 12:36:23 +00:00
eap
0e2bac7865 0020672: EDF 1243 SMESH : Be able to transform mixed mesh
+  virtual int  NbCornerNodes() const;
2010-03-30 12:33:10 +00:00
eap
1f50f137e3 0020672: EDF 1243 SMESH : Be able to transform mixed mesh
* Implement GetFaceNodesIndices() for polyhedrons
2010-03-30 12:32:41 +00:00
eap
2705c10eb5 Move #include "SMESH_Algo.hxx" from hxx to cxx 2010-03-30 12:30:12 +00:00
eap
1d2d0b2f0a Use TXyzIterator in Preparation() 2010-03-30 12:29:24 +00:00
eap
8abf245a59 /*!
+     * Returns nodes of given face (counted from zero) for given volumic element.
+     */
+    long_array GetElemFaceNodes(in long elemId, in short faceIndex);
+
+    /*!
+     * Returns an element based on all given nodes.
+     */
+    long FindElementByNodes(in long_array nodes);
2010-03-30 12:27:31 +00:00
ouv
fa7f73d6bd Bug IPAL21655 - Points representation works incorrectly with white background 2010-03-29 08:24:47 +00:00
eap
aa031dbe39 untabify 2010-03-25 14:51:26 +00:00
ouv
4d33eed28b Issue 0020613: EDF 1106 : Modify Node Marker in SMESH and VISU 2010-03-25 13:55:29 +00:00
eap
c3b2640450 Move StdMeshers_ProjectionUtils::IsSubShape() to SMESH_MesherHelper 2010-03-23 14:33:16 +00:00
eap
8951a46238 Move from StdMeshers_ProjectionUtils
+  static bool IsSubShape( const TopoDS_Shape& shape, const TopoDS_Shape& mainShape );
+
+  static bool IsSubShape( const TopoDS_Shape& shape, SMESH_Mesh* aMesh );
2010-03-23 14:32:26 +00:00
eap
3a82c6685b 020676: EDF 1212 GEOM: Partition operation creates vertices which causes mesh computation to fail with netgen
* Cash GeomAPI_ProjectPointOnSurf's
 * Make applyFunc() public under name applyIn2D()


+   * \brief Define a pointer to wrapper over a function of gp_XY class,
+   *       suitable to pass as xyFunPtr to applyIn2D().
+   *       For exaple gp_XY_FunPtr(Added) defines pointer gp_XY_Added to function
+   *       calling gp_XY::Added(gp_XY), which is to be used like following
+   *       applyIn2D(surf, uv1, uv2, gp_XY_Added)
+   */
+#define gp_XY_FunPtr(meth) \
+  static gp_XY __gpXY_##meth (const gp_XY& uv1, const gp_XY& uv2) { return uv1.meth( uv2 ); } \
+  static xyFunPtr gp_XY_##meth = & __gpXY_##meth

+  /*!
+   * \brief Perform given operation on two 2d points in parameric space of given surface.
+   *        It takes into account period of the surface. Use gp_XY_FunPtr macro
+   *        to easily define pointer to function of gp_XY class.
+   */
+  static gp_XY applyIn2D(const Handle(Geom_Surface)& surface,
+                         const gp_XY&                uv1,
+                         const gp_XY&                uv2,
+                         xyFunPtr                    fun,
+                         const bool                  resultInPeriod=true);
+
2010-03-23 08:04:58 +00:00
vsr
6468f538ec Issue 0020788: EDF 1339 SMESH : Crash after enabling "Auto Color" feature in attached MED file 2010-03-22 15:15:49 +00:00
vsr
e9aead38a5 Issue 0020788: EDF 1339 SMESH : Crash after enabling "Auto Color" feature in attached MED file 2010-03-22 15:08:53 +00:00
dmv
9e0ab432cc 0020799: [CEA] Smesh script fails 2010-03-22 14:48:33 +00:00
vsr
db9ba2e978 0020801: EDF 1343 SMESH : Segmentation violation during compound od Mesh with 0D elements 2010-03-22 14:30:36 +00:00
dmv
736b66759f 0020788: EDF 1339 SMESH : Crash after enabling "Auto Color" feature in attached MED file 2010-03-22 12:17:15 +00:00
eap
8a6ef93bb1 SMESH_IDSource can be not-published object
+    operator<<(SMESH::SMESH_IDSource_ptr theArg);
2010-03-19 14:56:03 +00:00
eap
43cfddbeaa 0020771: EDF 1322 SMESH : Quadratic/Linear conversion with Medium Nodes on Geometry issue
* Care of period when performing operations on points in parametric space
2010-03-19 14:21:48 +00:00
eap
d5768a3f63 0020676: EDF 1212 GEOM: Partition operation creates vertices which causes mesh computation to fail with netgen
* fix pb of CheckNodeUV() with INTERNAL shapes

+  /*!
+   * \brief Return iterator on ancestors of the given type
+   */
+  static PShapeIteratorPtr GetAncestors(const TopoDS_Shape& shape,
+                                        const SMESH_Mesh&   mesh,
+                                        TopAbs_ShapeEnum    ancestorType);
2010-03-18 09:47:58 +00:00
eap
b51a02ed24 0020676: EDF 1212 GEOM: Partition operation creates vertices which causes mesh computation to fail with netgen
-  TopoDS_Shape GetSubShape() const  { return myShape; }
+  const TopoDS_Shape& GetSubShape() const  { return myShape; }

+typedef SMDS_Iterator<const TopoDS_Shape*>  PShapeIterator;
+typedef boost::shared_ptr< PShapeIterator > PShapeIteratorPtr;

+  /*!
+   * \brief Return iterator on ancestors of the given type
+   */
+  static PShapeIteratorPtr GetAncestors(const TopoDS_Shape& shape,
+                                        const SMESH_Mesh&   mesh,
+                                        TopAbs_ShapeEnum    ancestorType);
2010-03-18 09:46:14 +00:00
eap
331cc524a8 0020676: EDF 1212 GEOM: Partition operation creates vertices which causes mesh computation to fail with netgen
* In GetOrderedEdges(), preview presence of the internal vertex within the face
2010-03-18 09:42:08 +00:00
dmv
6339de2d04 IPAL21631 Incorrect Help link. 2010-03-17 07:52:51 +00:00
ana
1839653e13 Windows compatibility 2010-03-16 13:04:00 +00:00
ana
a4a1062443 Windows compatibility 2010-03-15 14:45:59 +00:00
dmv
2f541de569 0020727: EDF 1276 SMESH : add a Method RadialQuadrangle to the Mesh class in smeshDC.py 2010-03-15 13:56:52 +00:00
vsr
e2018c0393 Fix compilation problem on Debian Sarge 2010-03-15 09:31:54 +00:00
eap
8baf98a974 +//=======================================================================
+/*!
+ * \brief SMESH_TLink knowing its orientation
+ */
+//=======================================================================
+
+struct SMESH_OrientedLink: public SMESH_TLink
+{
+  bool _reversed;
+  SMESH_OrientedLink(const SMDS_MeshNode* n1, const SMDS_MeshNode* n2 )
+    : SMESH_TLink( n1, n2 ), _reversed( n1 != node1() ) {}
+};
2010-03-12 08:30:20 +00:00
eap
22395fddea /*!
* \brief High level util for effective file reading and other file operations
 */
2010-03-12 08:26:13 +00:00