Salome HOME
Regression of XSMESH_TEST/SMESHCOMMON/SMESH_TEST/Grids/smesh/bugs12/M6
[modules/smesh.git] / src / SMESHUtils / SMESH_TypeDefs.hxx
index edb0f247f8e0a1a81f0d75e6938913cfab4719a4..2555cc371e6581ba8f0c9b870639b71fda071ef8 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -39,7 +39,9 @@
 #include <cassert>
 
 typedef std::map<const SMDS_MeshElement*,
-                 std::list<const SMDS_MeshElement*> >        TElemOfElemListMap;
+                 std::list<const SMDS_MeshElement*>, TIDCompare > TElemOfElemListMap;
+typedef std::map<const SMDS_MeshElement*,
+                 std::list<const SMDS_MeshNode*>,    TIDCompare > TElemOfNodeListMap;
 typedef std::map<const SMDS_MeshNode*, const SMDS_MeshNode*> TNodeNodeMap;
 
 //!< Set of elements sorted by ID, to be used to assure predictability of edition
@@ -48,6 +50,9 @@ typedef std::set< const SMDS_MeshNode*,    TIDCompare >      TIDSortedNodeSet;
 
 typedef std::pair< const SMDS_MeshNode*, const SMDS_MeshNode* >   NLink;
 
+struct faceQuadStruct; // defined in StdMeshers_Quadrangle_2D.hxx
+typedef boost::shared_ptr<faceQuadStruct> TFaceQuadStructPtr;
+
 
 namespace SMESHUtils
 {
@@ -106,7 +111,7 @@ struct SMESH_TNodeXYZ : public gp_XYZ
 {
   const SMDS_MeshNode* _node;
   double               _xyz[3];
-  SMESH_TNodeXYZ( const SMDS_MeshElement* e):gp_XYZ(0,0,0),_node(0) {
+  SMESH_TNodeXYZ( const SMDS_MeshElement* e=0):gp_XYZ(0,0,0),_node(0) {
     if (e) {
       assert( e->GetType() == SMDSAbs_Node );
       _node = static_cast<const SMDS_MeshNode*>(e);
@@ -119,6 +124,28 @@ struct SMESH_TNodeXYZ : public gp_XYZ
   bool operator==(const SMESH_TNodeXYZ& other) const { return _node == other._node; }
 };
 
+//--------------------------------------------------
+/*!
+ * \brief Data of a node generated on FACE boundary
+ */
+//--------------------------------------------------
+typedef struct uvPtStruct
+{
+  double param;
+  double normParam;
+  double u, v; // original 2d parameter
+  double x, y; // 2d parameter, normalized [0,1]
+  const SMDS_MeshNode * node;
+
+  struct NodeAccessor // accessor to iterate on nodes in UVPtStructVec
+  {
+    static const SMDS_MeshNode* value(std::vector< uvPtStruct >::const_iterator it)
+    { return it->node; }
+  };
+} UVPtStruct;
+
+typedef std::vector< UVPtStruct > UVPtStructVec;
+
 // --------------------------------------------------------------------------------
 // class SMESH_SequenceOfElemPtr
 #include <NCollection_DefineSequence.hxx>