Commit Graph

226 Commits

Author SHA1 Message Date
eap
20cf4f072b 0020832: EDF 1359 SMESH : Automatic meshing of boundary layers
+	SMESH_ProxyMesh.hxx
2011-01-18 11:01:28 +00:00
inv
2de294b09a Merge from V6_2_BR 23/12/2010 2010-12-24 08:18:34 +00:00
prascle
7013eafe2d PR: debug split into tetras 2010-12-05 22:57:20 +00:00
prascle
43a4d0b5c1 PR: debug polygons and merge nodes 2010-12-05 19:22:06 +00:00
prascle
45ed5d9a93 PR: fix Transform method with orphan nodes 2010-12-01 22:56:36 +00:00
prascle
2e16ca1281 PR: correct some warnings 2010-11-30 22:35:24 +00:00
prascle
8fa039a796 merge from branch BR_SMDS_MEMIMP 29 nov 2010 2010-11-29 13:20:53 +00:00
vsr
dd21629a81 Merge from V5_1_main 26/11/2010 2010-11-26 15:48:22 +00:00
vsr
d8f644ca3d Merge from V5_1_main branch 24/11/2010 2010-11-25 12:44:43 +00:00
vsr
3a40107689 Merge from V5_1_main 10/06/2010 2010-06-10 09:43:07 +00:00
vsr
9357f5c870 Merge from V5_1_main 14/05/2010 2010-05-14 15:32:37 +00:00
eap
a710674f83 020697: EDF 1248 SMESH: Sub-mesh on group of face not taken into account
* Correct adding geom groups into map of ansestors
2010-02-18 08:29:00 +00:00
eap
84dcc4efcf 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
* Add CheckNodeU()
* Compute parameters of created medium nodes even in force3d mode
* Leave doxygen-style comments of functions only in the header
2010-02-11 13:16:51 +00:00
eap
7be9f329c4 0020676: EDF 1212 GEOM: Partition operation creates vertices which causes mesh computation to fail with netgen
* Fix GetOrderedEdges(): workaroud for BRepTools_WireExplorer, which return no edges if they are internal
2010-02-11 08:25:06 +00:00
eap
2536cb0c1b Make TNodeXYZ public, which together with SMDS_StdIterator allows getting coordinates of all nodes of mesh element in a couple of lines of code:
typedef SMDS_StdIterator< SMESH_MeshEditor::TNodeXYZ, SMDS_ElemIteratorPtr > TXyzIterator;
  vector<gp_Pnt> coords( TXyzIterator( elem->nodesIterator()), TXyzIterator() );



class SMESH_EXPORT SMESH_MeshEditor
{
public:
+  //------------------------------------------
+  /*!
+   * \brief SMDS_MeshNode -> gp_XYZ convertor
+   */
+  //------------------------------------------
+  struct TNodeXYZ : public gp_XYZ
2010-02-09 11:13:23 +00:00
eap
a3b1bac8a0 020674: EDF 870 SMESH: Mesh generated by Netgen not usable by GHS3D
* Rename HasDegenenaratedEdges() -> HasDegeneratedEdges()
2010-02-01 14:26:09 +00:00
eap
696fa5df7f 020674: EDF 870 SMESH: Mesh generated by Netgen not usable by GHS3D
+   * \brief Check if the shape set through IsQuadraticSubMesh() or SetSubShape()
+   *        has a degenerated edges
+    * \retval bool - true if it has
+   */
+  bool HasDegenenaratedEdges() const { return !myDegenShapeIds.empty(); }
2010-02-01 14:19:06 +00:00
eap
8d99b0dffe 0019296: EDF 681 SMESH - Pre-evaluation of the number of elements before mesh
* Evaluate(): do not call algo->Evaluate() if needed submeshes failed to evaluate
2010-02-01 11:09:38 +00:00
eap
8726d7811f 0019296: EDF 681 SMESH - Pre-evaluation of the number of elements before mesh
Assure that this submesh is evaluated once
2010-01-27 10:09:15 +00:00
eap
6462277df0 shorten code 2010-01-22 11:29:51 +00:00
eap
9f57d8b5e9 initialize _nbSegments 2010-01-20 08:31:14 +00:00
dmv
7a8e3a50af Unstable warning in release mode, on creating radialQuadrangle1D2D meshes. 2010-01-12 15:34:12 +00:00
dmv
06f0c4f62f correct debug messages 2010-01-12 15:32:37 +00:00
dmv
85d94c3b51 0020635: EDF 1223 SMESH: Error message of RadialQuadrangle algorithm not precise 2010-01-12 08:07:50 +00:00
dmv
d316b3a623 0020635: EDF 1223 SMESH: Error message of RadialQuadrangle algorithm not precise 2010-01-11 15:14:52 +00:00
eap
163dc9b8fd 0020028: EDF 842 SMESH : Can't export to med a mesh with same names
for one group of nodes and one group of faces

avoid duplicated group names within one type of elements only
2009-12-25 11:22:10 +00:00
eap
e6e7b52bbf 0020618: EDF 1208 SMESH: problems with DoubleNodeElemGroup*InRegion
1) fix finding element center in isInside()
    2) add classifying on TopoDS_FAce
2009-12-18 10:36:52 +00:00
eap
339e2f0051 0020139: EDF 944 SMESH : Get 2D/3D element with X, Y, Z coordinates
fix isOut()
2009-12-16 08:27:50 +00:00
eap
e7952c1e1e 0020427: EDF 868 SMESH : Be able to define the submeshing order
fix SortByMeshOrder(), forgot to increment iterator
2009-12-14 09:23:56 +00:00
eap
5e7f07d3da untabify 2009-12-10 14:52:59 +00:00
eap
f2c45dcff7 0020427: EDF 868 SMESH : Be able to define the submeshing order
fix SortByMeshOrder(), which replaces a submesh of lower priority
  by one of higher priority even if the last one is not in
  theListToSort
2009-12-10 09:55:48 +00:00
vsr
b03a1e6001 Merge from BR_phase16 branch (09/12/09) 2009-12-09 15:46:26 +00:00
vsr
2daa321efa Merge from V5_1_3_BR branch (07/12/09) 2009-12-08 13:11:42 +00:00
eap
388cb7d58d 0020139: EDF 944 SMESH : Get 2D/3D element with X, Y, Z coordinates
fix isOut()
2009-11-11 14:58:39 +00:00
eap
4cd62d7138 untabify 2009-10-07 13:14:47 +00:00
eap
6510081be2 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;
2009-10-02 16:20:31 +00:00
eap
692b18b251 untabify 2009-10-02 13:09:52 +00:00
eap
69aebe3a10 untabify 2009-09-17 12:22:15 +00:00
eap
794e4ede5b untabify 2009-09-17 07:27:34 +00:00
eap
fd8513f94e untabify 2009-09-15 16:18:08 +00:00
dmv
a448c25876 IPAL21346 After Quadrangle Algorithm failed, visualisation of mesh is bad. Regress to 5.1.2 2009-09-15 15:27:58 +00:00
eap
a269dcbbdf 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)
       {
2009-09-15 13:24:04 +00:00
eap
8d7286fc5d untabify 2009-09-15 08:46:22 +00:00
eap
0244669837 untabify 2009-09-10 15:29:29 +00:00
ptv
a44eb77228 0020105: EDF 862 SMESH : Creation of the skin elements (2D) of a 3D Mesh 2009-09-10 12:40:55 +00:00
eap
525249fdfb unatbify 2009-09-10 11:06:18 +00:00
eap
99e3564a09 0020464: EDF 1100 SMESH: Performance issue of the function MoveNode
+#include <limits>
2009-09-10 08:10:41 +00:00
ptv
35c05cab65 0020105: EDF 862 SMESH : Creation of the skin elements (2D) of a 3D Mesh 2009-09-10 06:59:27 +00:00
eap
7512099966 0020464: EDF 1100 SMESH: Performance issue of the function MoveNode
0020139: EDF 944 SMESH : Get 2D/3D element with X, Y, Z coordinates

optimize for performance
2009-09-10 05:49:16 +00:00
eap
0f2c407672 0020464: EDF 1100 SMESH: Performance issue of the function MoveNode
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;
 };

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;
+};
2009-09-10 05:29:55 +00:00
eap
ec71bd93d2 untabify 2009-09-09 06:17:26 +00:00
ptv
2fa6f3c92b remove compilation error on Windows 2009-09-01 06:56:48 +00:00
ptv
8a7fc527d7 remove compilation error on Windows 2009-09-01 03:53:08 +00:00
eap
db647c3bf2 unused variables 2009-08-27 14:09:43 +00:00
eap
30aaa793b9 fix GetSubMesh()
if ( it.More() )
+    {
       index = _myMeshDS->AddCompoundSubmesh( aSubShape, it.Value().ShapeType() );
+      if ( index > _nbSubShapes ) _nbSubShapes = index; // not to create sm for this group again
+    }
   }
2009-08-27 13:58:53 +00:00
ptv
40b2818f18 0019296: EDF 681 SMESH - Pre-evaluation of the number of elements before mesh
Replace hard coded values of element types by new enumeration (added in advanced mesh info Improvement)
2009-08-25 05:18:16 +00:00
eap
57781aac7a 0020452: EDF 1056 SMESH : 2D Projection Issue
static int GetOrderedEdges (const TopoDS_Face&        theFace,
                               TopoDS_Vertex             theFirstVertex,
                               std::list< TopoDS_Edge >& theEdges,
-                              std::list< int >  &       theNbVertexInWires);
+                              std::list< int >  &       theNbVertexInWires,
+                              const bool                theShapeAnalysisAlgo=false);
2009-08-20 07:35:09 +00:00
vsr
2e5ccf9f57 Issue 0020194: EDF 977 ALL: Get rid of warnings PACKAGE_VERSION already defined 2009-08-13 05:50:13 +00:00
ptv
787fff0067 IMP20439 Create hole by element and nodes duplication 2009-08-11 12:01:49 +00:00
vsr
a4d61a7b6f Fix compilation problems on Windows 2009-07-31 13:52:22 +00:00
skl
6a950222ba Changes for bug 0020381 from Mantis. 2009-07-28 11:38:26 +00:00
skl
55510e5ccd Implementation of Quadrangle (Mapping) for faces built on 3 edges (0018911 from Mantis). 2009-07-22 09:13:29 +00:00
adam
90c6367e0c Fix compilation of gcc 4.3.2 2009-07-20 13:11:57 +00:00
jfa
4592fecfcf IMP 0020089: Take into account 0D elements (MED_POINT1) 2009-07-16 13:33:03 +00:00
vsr
686a864564 Merge from V5_1_2_BR branch (14 July 2009) 2009-07-15 08:11:22 +00:00
skl
bb0c89d5a8 Implememtation of evaluation for improvement 0019296. 2009-06-29 13:26:16 +00:00
eap
8735b17bdc 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);
2009-06-18 12:44:50 +00:00
eap
3232c8723f 0020128: EDF SMESH 926 : Quadratic conversion of BLSURF mesh
struct SMESH_TLink: public NLink {
+  const SMDS_MeshNode* node1() const { return first; }
+  const SMDS_MeshNode* node2() const { return second; }
};
2009-06-18 12:42:13 +00:00
eap
47e62a030c 0020128: EDF SMESH 926 : Quadratic conversion of BLSURF mesh
in ConvertToQuadratic()
+  if ( !theForce3d ) {
+    aHelper.SetSubShape(0); // apply to the whole mesh
+    aHelper.FixQuadraticElements();
+  }
2009-06-18 12:40:22 +00:00
skl
34fb01e7b5 Implementation of new version ExtrusionAlongPath (20003 from Mantis). 2009-06-10 07:09:15 +00:00
eap
c7b8fb12f3 0020145: EDF 666 SMESH: Modifications of GEOM groups are not taken into account
allow changing shape to mesh in case of shape being group
2009-05-25 11:20:50 +00:00
eap
60009bb9da 0020279: [CEA 334] control the "random" use when using mesh algorithms
For stability of StdMeshers_CompositeSegment_1D:
+  bool IsAlwaysComputed() { return _alwaysComputed; }
2009-05-19 15:27:52 +00:00
eap
aa8faf765a #include SMESH_MeshEditor.hxx via SMESH_MesherHelper.hxx 2009-05-19 15:26:34 +00:00
eap
c50dcca3fe +#include "SMESH_MeshEditor.hxx" // needed for many meshers 2009-05-19 15:20:28 +00:00
eap
b6c9c862b4 0020279: [CEA 334] control the "random" use when using mesh algorithms
fix IsQuadraticSubMesh() to work on mesh w/o shape
2009-05-19 15:19:52 +00:00
eap
b632539159 move struct TIDCompare to SMDS_MeshElement.hxx 2009-05-19 15:17:19 +00:00
eap
eb1ffbdba2 static const SMDS_MeshNode* VertexNode(const TopoDS_Vertex& V,
-                                         SMESHDS_Mesh*        meshDS);
+                                         const SMESHDS_Mesh* meshDS);
2009-05-19 15:16:37 +00:00
eap
24f41d7b2b in GetNodeParamOnEdge(), take into account that nodes on vertices not
always present, e.g. when Composite side discretisation is used
2009-05-19 15:16:23 +00:00
eap
b6986ac1b1 GetNode(int index) no longer wraps index, rather GetNodeWrap(int index) does 2009-05-19 15:12:54 +00:00
eap
fd97cbec7c 0020340: EDF 1022 SMESH : Crash with FindNodeClosestTo in a second new study
notify node searcher on mesh destruction
2009-05-06 13:17:33 +00:00
eap
9266dd32f0 0020210: EDF SMESH 976: Update of a smesh group after modification of the associated geom group
void SMESH_Mesh::ShapeToMesh(const TopoDS_Shape & aShape)
{
 ...
+  else
+  {
+    _isShapeToMesh = false;
+    _shapeDiagonal = 0.0;
+    _myMeshDS->ShapeToMesh( PseudoShape() );
+  }
2009-04-03 14:11:19 +00:00
jfa
c113b9f92e Bug 0020185: EDF SMESH 967 : Anomaly in Merge Nodes. 2009-04-03 08:54:51 +00:00
eap
95f31e3a95 fix the previous modification
-      std::swap( iAfterSame, iAfterSame );
+      std::swap( iBeforeSame, iAfterSame );
2009-03-24 08:29:44 +00:00
eap
73a829efdf simply code 2009-03-23 08:00:51 +00:00
eap
bebf85204e 0020206: EDF SMESH 987: Netgen1D2D3D +submesh
clear mesh if an added local algorithm hides a global all-dimensional one
2009-03-11 15:19:39 +00:00
eap
7462200bee 0020206: EDF SMESH 987: Netgen1D2D3D +submesh
clear mesh if an added local algorithm hides a global all-dimensional one
2009-03-11 15:18:03 +00:00
eap
e49d9ab359 0020206: EDF SMESH 987: Netgen1D2D3D +submesh
in GetSubMesh(), fix detection of SMESHDS_SubMesh'es of geom groups
2009-03-11 15:09:46 +00:00
eap
6f2fdeb795 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
2009-03-11 14:58:44 +00:00
adam
c9cb7f7c5d Test EXPORTS definition with target name as suggested by cmake 2009-03-06 16:00:11 +00:00
eap
d27067784a 0020184: EDF SMESH 952: Projection 2D does not work
use ShapeAnalysis::OuterWire() insead of BRepTools::OuterWire()
2009-03-03 08:38:05 +00:00
jfa
2bd83d5b0b Bug 0020185: EDF SMESH 967 : Anomaly in Merge Nodes. 2009-03-02 14:57:00 +00:00
eap
df4afe2d50 0019929: EDF 772 SMESH : script readability
+
+  operator char*() const {
+    return (char*)c_str();
+  }
2009-02-24 14:52:58 +00:00
adam
d5dd2d9628 compatibility windows compilation with cmake 2009-02-24 09:27:39 +00:00
adam
efe3598bba compatibility compilation with cmake 2009-02-24 09:25:26 +00:00
vsr
18711ecd04 Merge from BR_V5_DEV 17Feb09 2009-02-17 06:55:16 +00:00
vsr
0635c9fc80 Merge from BR_V5_DEV 16Feb09 2009-02-17 05:27:49 +00:00
jfa
79b1ac2b6d Join modifications from BR_Dev_For_4_0 tag V4_1_1. 2008-03-07 07:47:05 +00:00
nge
984c4ffdd7 PAL 14158 Add the Octree and OctreeNode classes to accelerate detection of close nodes. Octree is virtual pure, OctreeNode inherites from Octree. 2007-01-22 15:14:44 +00:00
jfa
c63ee099ad Join modifications from branch BR_DEBUG_3_2_0b1 2006-06-01 11:39:17 +00:00
jfa
57b43b4d01 Join modifications from branch OCC_debug_for_3_2_0b1 2006-05-06 08:51:48 +00:00