Commit Graph

761 Commits

Author SHA1 Message Date
akl
e69867dda8 Fix to take into account qudratic edges also. 2013-05-17 12:26:06 +00:00
eap
7c9cf53741 untabify 2013-05-16 17:18:39 +00:00
eap
0e9e37a6e8 0022098: EDF 2036 SMESH: Create groups from none conected parts of a mesh
0022100: EDF 2413 SMESH: Take into account TRIA7
2013-05-16 17:18:28 +00:00
eap
9791c651e7 0022100: EDF 2413 SMESH: Take into account TRIA7 2013-05-16 17:17:56 +00:00
eap
7c9baff7a5 indentation 2013-05-16 17:16:44 +00:00
eap
50e4126336 0022100: EDF 2413 SMESH: Take into account TRIA7
+  case 4137:     // BIQUADRATIC TRIANGLE

Support all types of elements in DAT format files
2013-05-16 17:15:56 +00:00
eap
a41cfa6771 + void ClearLastCreated() raises (SALOME::SALOME_Exception); 2013-05-16 17:14:15 +00:00
eap
ab30b9ea23 0022098: EDF 2036 SMESH: Create groups from none conected parts of a mesh
+    FT_ConnectedElements,

+  interface ConnectedElements : Predicate {
2013-05-16 17:14:04 +00:00
eap
7eb6b6fa33 0022100: EDF 2413 SMESH: Take into account TRIA7
+    Entity_BiQuad_Triangle,
2013-05-16 17:13:13 +00:00
eap
241299efee 0022100: EDF 2413 SMESH: Take into account TRIA7
+	mesh_biquad_triangle.png \
2013-05-16 17:12:43 +00:00
eap
22353257e1 0022098: EDF 2036 SMESH: Create groups from none conected parts of a mesh 2013-05-16 17:12:15 +00:00
eap
b93c19aaa2 untabify 2013-05-16 17:09:28 +00:00
eap
8df43f2a70 0022195: EDF SMESH: Mesh using existing elements. 2013-05-16 17:08:45 +00:00
eap
9b739aaa01 0022195: EDF SMESH: Mesh using existing elements.
In Compute() call assure the source mesh is loaded:
_sourceHyp->GetGroups(/*loaded=*/true);

In getMaps(), do not clear n2n map to assure sharing nodes on EDGEs
for adjacent FACEs
2013-05-16 17:06:42 +00:00
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