Commit Graph

847 Commits

Author SHA1 Message Date
eap
3010de27c3 0022195: EDF SMESH: Mesh using existing elements.
To load the mesh owning source groups

-  const std::vector<SMESH_Group*>& GetGroups() const;
+  const std::vector<SMESH_Group*>& GetGroups(bool loaded=false) const;
2013-05-16 17:02:10 +00:00
eap
42491f3cb5 0022098: EDF 2036 SMESH: Create groups from none conected parts of a mesh
+#include "SMESH_MeshAlgos.hxx"
2013-05-16 16:58:08 +00:00
eap
f2160ad9de + subMeshOfSolid->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE ); 2013-05-16 16:55:53 +00:00
eap
22dd2b977a 0022100: EDF 2413 SMESH: Take into account TRIA7
0022098: EDF 2036 SMESH: Create groups from none conected parts of a mesh

+    def NbBiQuadTriangles(self):

+    def ClearLastCreated(self):

    def GetFilter(self,elementType,
                  CritType=FT_Undefined,
                  Compare=FT_EqualTo,
                  Threshold="",
                  UnaryOp=FT_Undefined,
                  Tolerance=1e-07,
+                 mesh=None):
2013-05-16 16:55:14 +00:00
eap
70fad16a15 0022100: EDF 2413 SMESH: Take into account TRIA7 2013-05-16 16:53:18 +00:00
eap
998c774c5d 0022100: EDF 2413 SMESH: Take into account TRIA7
+  CORBA::Long NbBiQuadTriangles()
2013-05-16 16:49:03 +00:00
eap
3a8dfa1bdb +#include "SMESH_MeshAlgos.hxx"
+// A macro used in SMESH_TryCatch.hxx,
+// it re-raises a CORBA SALOME exception thrown by SMESH_MeshEditor_i and caught by SMESH_CATCH
+#define SMY_OWN_CATCH \
+  catch ( SALOME::SALOME_Exception & e ) { throw e; }

+  void ClearLastCreated() throw (SALOME::SALOME_Exception);
2013-05-16 16:48:19 +00:00
eap
143bb6d8a6 + void ClearLastCreated() throw (SALOME::SALOME_Exception); 2013-05-16 16:46:57 +00:00
eap
b47c581141 0022098: EDF 2036 SMESH: Create groups from none conected parts of a mesh
+  class SMESH_I_EXPORT ConnectedElements_i: public virtual POA_SMESH::ConnectedElements,
+                                            public virtual Predicate_i

+    ConnectedElements_ptr     CreateConnectedElements();
2013-05-16 16:46:26 +00:00
eap
9be03d1b02 0022098: EDF 2036 SMESH: Create groups from none conected parts of a mesh 2013-05-16 16:45:34 +00:00
eap
765c100cd0 0022100: EDF 2413 SMESH: Take into account TRIA7
0022098: EDF 2036 SMESH: Create groups from none conected parts of a mesh
2013-05-16 16:44:02 +00:00
eap
45157dd914 0022100: EDF 2413 SMESH: Take into account TRIA7
+  aFilter->RegisterCellsWithType(VTK_BIQUADRATIC_TRIANGLE);
2013-05-16 16:41:58 +00:00
eap
7868270178 0022100: EDF 2413 SMESH: Take into account TRIA7
decompose bi-quadratic elements using the central node of face
2013-05-16 16:41:30 +00:00
eap
3e2ff42c86 1) Remove writing into stdout
2) Support all types of elements
2013-05-16 16:39:55 +00:00
eap
6d0acadd44 0022100: EDF 2413 SMESH: Take into account TRIA7 2013-05-16 16:38:48 +00:00
eap
101919845f 0022098: EDF 2036 SMESH: Create groups from none conected parts of a mesh
+#include "SMESH_MeshAlgos.hxx"

+    class SMESHCONTROLS_EXPORT ConnectedElements: public virtual Predicate
2013-05-16 16:36:26 +00:00
eap
b73a05d5ec 0022098: EDF 2036 SMESH: Create groups from none conected parts of a mesh
Move SMESH_ElementSearcher to from SMESH/SMESH_MeshEditor.hxx SMESHUtils/SMESH_MeshAlgos.hxx
in order to make SMESH_ElementSearcher accessible from Controls/SMESH_Controls.cxx

+	SMESH_MeshAlgos.cxx
2013-05-16 16:35:18 +00:00
eap
f377659e82 0022100: EDF 2413 SMESH: Take into account TRIA7
Fix AddNode() for the case if a node already in
2013-05-16 16:33:34 +00:00
eap
30c56009c3 0022100: EDF 2413 SMESH: Take into account TRIA7
-  void SetNodeInVolume(SMDS_MeshNode * aNode, const TopoDS_Shell & S);
+  void SetNodeInVolume(const SMDS_MeshNode * aNode, const TopoDS_Shell & S);

-  void MoveNode(const SMDS_MeshNode *, double x, double y, double z);
+  virtual void MoveNode(const SMDS_MeshNode *, double x, double y, double z);

+  // biquadratic triangle of 7 nodes
+  virtual SMDS_MeshFace* AddFaceWithID(int n1, int n2, int n3,
+                                       int n12,int n23,int n31, int nCenter, int ID);
2013-05-16 16:32:39 +00:00
eap
6cc3a49ea9 0022100: EDF 2413 SMESH: Take into account TRIA7 2013-05-16 16:30:18 +00:00
eap
f0c8a5c35a 0022100: EDF 2413 SMESH: Take into account TRIA7
+  inline void AddBiQuadTriasWithID(SMDS_Mesh* theMesh,
+                                   SMESH::log_array_var theSeq,
+                                   CORBA::Long theId)
2013-05-16 16:29:56 +00:00
eap
96862daa25 arrange #include 2013-05-16 16:29:29 +00:00
eap
098ecf81c2 0022100: EDF 2413 SMESH: Take into account TRIA7
+  const SMDS_MeshNode* GetCentralNode(const SMDS_MeshNode* n1,
+                                      const SMDS_MeshNode* n2,
+                                      const SMDS_MeshNode* n3,
+                                      const SMDS_MeshNode* n12,
+                                      const SMDS_MeshNode* n23,
+                                      const SMDS_MeshNode* n31,
+                                      bool                 force3d);
2013-05-16 16:28:40 +00:00
eap
664ae5e033 1) 0022100: EDF 2413 SMESH: Take into account TRIA7
2) 0022098: EDF 2036 SMESH: Create groups from none conected parts of a mesh

Move SMESH_ElementSearcher to from SMESH/SMESH_MeshEditor.hxx SMESHUtils/SMESH_MeshAlgos.hxx
in order to make SMESH_ElementSearcher accessible from Controls/SMESH_Controls.cxx

-struct SMESH_NodeSearcher
-{
-struct SMESH_ElementSearcher
-{
-  SMESH_NodeSearcher* GetNodeSearcher();
-  SMESH_ElementSearcher* GetElementSearcher();
-  SMESH_ElementSearcher* GetElementSearcher( SMDS_ElemIteratorPtr elemIt );
-  static bool IsOut( const SMDS_MeshElement* element, const gp_Pnt& point, double tol );
-  static double GetDistance( const SMDS_MeshFace* face, const gp_Pnt& point );
-  static const SMDS_MeshElement* FindFaceInSet(const SMDS_MeshNode*    n1,
2013-05-16 16:27:06 +00:00
eap
68683b462f 0022100: EDF 2413 SMESH: Take into account TRIA7
+  int NbBiQuadTriangles() const throw(SALOME_Exception);
2013-05-16 16:23:11 +00:00
eap
36f9a5cb34 0022098: EDF 2036 SMESH: Create groups from none conected parts of a mesh
Move SMESH_ElementSearcher to from SMESH/SMESH_MeshEditor.hxx SMESHUtils/SMESH_MeshAlgos.hxx
in order to make SMESH_ElementSearcher accessible from Controls/SMESH_Controls.cxx

-  static bool FaceNormal(const SMDS_MeshElement* F, gp_XYZ& normal, bool normalized=true);
-  static std::vector< const SMDS_MeshNode*> GetCommonNodes(const SMDS_MeshElement* e1,
-                                                           const SMDS_MeshElement* e2);
2013-05-16 16:22:25 +00:00
eap
c2c0a21343 - virtual SMDS_ElemIteratorPtr nodesIteratorToUNV() const;
-  virtual SMDS_ElemIteratorPtr interlacedNodesElemIterator() const;
+  virtual SMDS_NodeIteratorPtr nodesIteratorToUNV() const;
+  virtual SMDS_NodeIteratorPtr interlacedNodesIterator() const;
2013-05-16 16:17:16 +00:00
eap
1267641d31 0022100: EDF 2413 SMESH: Take into account TRIA7
Now  SMDS_VtkCellIteratorToUNV inherits from SMDS_NodeIterator and
hence next() returns a node

-class SMDS_VtkCellIteratorToUNV: public SMDS_VtkCellIterator
+class SMDS_VtkCellIteratorToUNV: public SMDS_NodeIterator, protected SMDS_VtkCellIterator
 {
 public:
   SMDS_VtkCellIteratorToUNV(SMDS_Mesh* mesh, int vtkCellId, SMDSAbs_EntityType aType);
+  virtual const SMDS_MeshNode* next();
+  virtual bool more();
   virtual ~SMDS_VtkCellIteratorToUNV();
 };
2013-05-16 16:16:22 +00:00
eap
5030955be8 Make IsFreeFace() fast, the old implementation of IsFreeFace() is renamed -> IsFreeFaceAdv()
bool IsFreeFace(  int faceIndex, const SMDS_MeshElement** otherVol=0 ) const;
-  // Check that all volumes built on the face nodes lays on one side
+  // Fast check that only one volume is built on nodes of a given face
+  // otherVol returns another volume sharing the given facet
+
+  bool IsFreeFaceAdv(  int faceIndex, const SMDS_MeshElement** otherVol=0 ) const;
+  // Thorough check that all volumes built on the face nodes lays on one side

+  bool IsPoly() const { return myPolyedre; }
2013-05-16 16:14:01 +00:00
eap
580dfddb72 0022100: EDF 2413 SMESH: Take into account TRIA7 2013-05-16 16:11:35 +00:00
eap
c448c8ff74 - SMDS_ElemIteratorPtr interlacedNodesElemIterator() const; 2013-05-16 16:10:37 +00:00
eap
010ee1ec71 0022100: EDF 2413 SMESH: Take into account TRIA7
+  int NbBiQuadTriangles() const { return myNbBiQuadTriangles; }
2013-05-16 16:08:36 +00:00
eap
24d5088297 - virtual SMDS_ElemIteratorPtr nodesIteratorToUNV() const;
+  virtual SMDS_NodeIteratorPtr nodeIterator() const;
+  virtual SMDS_NodeIteratorPtr interlacedNodesIterator() const;
+  virtual SMDS_NodeIteratorPtr nodesIteratorToUNV() const;
2013-05-16 16:08:00 +00:00
eap
90925ba7c0 0022100: EDF 2413 SMESH: Take into account TRIA7
+  virtual SMDS_MeshFace* AddFace(const SMDS_MeshNode * n1,
+                                 const SMDS_MeshNode * n2,
+                                 const SMDS_MeshNode * n3,
+                                 const SMDS_MeshNode * n12,
+                                 const SMDS_MeshNode * n23,
+                                 const SMDS_MeshNode * n31,
+                                 const SMDS_MeshNode * nCenter);

+  virtual void MoveNode(const SMDS_MeshNode *n, double x, double y, double z);
2013-05-16 16:06:21 +00:00
eap
77bf33663f indentation 2013-05-16 16:04:50 +00:00
eap
7cd54f6b75 0022100: EDF 2413 SMESH: Take into account TRIA7
+      _cellDimension[VTK_BIQUADRATIC_TRIANGLE] = 2;
2013-05-16 16:04:30 +00:00
eap
42462cd3f9 0022100: EDF 2413 SMESH: Take into account TRIA7
+  SMDSEntity_BiQuad_Triangle,
2013-05-16 16:04:10 +00:00
pnoyret
b1f8e808d5 specification des unités de chordal deviation 2013-05-16 13:31:34 +00:00
pnoyret
bed33c76b7 Pour prise en compte de la bonne valeur par defaut du chordal deviation 2013-05-16 13:24:39 +00:00
eap
89682777f7 0022202: EDF SMESH: Regression in a script meshing prisms and hexaedrons
Fix notifyListenersOnEvent() for the case of removing an EventListener (attempt No.2)
2013-04-29 14:18:32 +00:00
eap
36550205e6 0022202: EDF SMESH: Regression in a script meshing prisms and hexaedrons
Fix notifyListenersOnEvent() for the case of removing an EventListener
2013-04-29 12:00:40 +00:00
eap
55e345e578 Regression of SMESH_TEST/Grids/smesh/imps7/H6
Unreachable deep idea

           bool subComputed = false, subFailed = false;
           if (!algo->OnlyUnaryInput()) {
-            if ( event == COMPUTE &&
-                 ( algo->NeedDiscreteBoundary() || algo->SupportSubmeshes() ))
+            if ( event == COMPUTE /*&&
+                 ( algo->NeedDiscreteBoundary() || algo->SupportSubmeshes() )*/)
               shape = getCollection( gen, algo, subComputed, subFailed );
             else
               subComputed = SubMeshesComputed( & subFailed );
2013-04-26 15:53:34 +00:00
eap
adde8edd1b Regression of SMESH_TEST/Grids/smesh/imps7/H5
Fix position of medium nodes that are set to FACE by
StdMeshers_Projection_2D, since EDGEs are discreteized later than FACE.
2013-04-26 14:43:46 +00:00
eap
65c45fcb35 Regression of XSMESH_TEST/SMESHCOMMON/SMESH_TEST/Grids/smesh/bugs12/M6
Fix the ensuring stability of SMESH_MeshEditor::makeWalls().
2013-04-26 11:47:26 +00:00
eap
250c4f2244 Regression of XSMESH_TEST/SMESHCOMMON/SMESH_TEST/Grids/smesh/bugs12/M6
Fix the ensuring stability of SMESH_MeshEditor::makeWalls(). Allow
storing both nodes and cells in one map sorted by ID.


struct TIDCompare {
   bool operator () (const SMDS_MeshElement* e1, const SMDS_MeshElement* e2) const
-  { return e1->GetID() < e2->GetID(); }
+  { return e1->GetType() == e2->GetType() ? e1->GetID() < e2->GetID() : e1->GetType() < e2->GetType(); }
2013-04-26 11:46:58 +00:00
eap
e1fe293459 0022202: EDF SMESH: Regression in a script meshing prisms and hexaedrons
-  for ( int iF = 1; iF < faceToSolids.Extent(); ++iF )
+  for ( int iF = 1; iF <= faceToSolids.Extent(); ++iF )
2013-04-26 10:21:24 +00:00
akl
866063cabb Call 'Location' with correct indices only to avoid exception. 2013-04-24 13:25:21 +00:00
akl
436838c202 Fix to avoid dependence of mesh on itself (it leaded to cycle in 'SetRemovedFromStudy'). 2013-04-24 13:13:40 +00:00
eap
85cd604381 Regression of XSMESH_TEST/SMESHCOMMON/SMESH_TEST/Grids/smesh/bugs12/M6
To assure stability of makeWalls(), use maps sorted by ID, that are
declared in SMESH_TypeDefs.hxx

-typedef map<const SMDS_MeshElement*, list<const SMDS_MeshNode*> >    TElemOfNodeListMap;
-typedef map<const SMDS_MeshElement*, list<const SMDS_MeshElement*> > TElemOfElemListMap;
2013-04-24 12:59:33 +00:00
eap
180deae521 Regression of XSMESH_TEST/SMESHCOMMON/SMESH_TEST/Grids/smesh/bugs12/M6
typedef std::map<const SMDS_MeshElement*,
-                 std::list<const SMDS_MeshElement*> >             TElemOfElemListMap;
+                 std::list<const SMDS_MeshElement*>, TIDCompare > TElemOfElemListMap;
2013-04-24 12:56:57 +00:00