X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHUtils%2FSMESH_TypeDefs.hxx;h=6e5bda2a523c08584bb425a22c886229b8bc8433;hp=edb0f247f8e0a1a81f0d75e6938913cfab4719a4;hb=f7aba4830d53719b963fdb7fccc98b760fdef2d1;hpb=bd4e115a78b52e3fbc016e5e30bb0e19b2a9e7d6 diff --git a/src/SMESHUtils/SMESH_TypeDefs.hxx b/src/SMESHUtils/SMESH_TypeDefs.hxx index edb0f247f..6e5bda2a5 100644 --- a/src/SMESHUtils/SMESH_TypeDefs.hxx +++ b/src/SMESHUtils/SMESH_TypeDefs.hxx @@ -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 @@ -29,9 +29,10 @@ #include "SMESH_Utils.hxx" -#include +#include "SMDS_MeshNode.hxx" #include +#include #include #include @@ -39,8 +40,10 @@ #include typedef std::map > TElemOfElemListMap; -typedef std::map TNodeNodeMap; + std::list, TIDCompare > TElemOfElemListMap; +typedef std::map, TIDCompare > TElemOfNodeListMap; +typedef std::map TNodeNodeMap; //!< Set of elements sorted by ID, to be used to assure predictability of edition typedef std::set< const SMDS_MeshElement*, TIDCompare > TIDSortedElemSet; @@ -48,6 +51,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 TFaceQuadStructPtr; + namespace SMESHUtils { @@ -106,7 +112,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(e); @@ -119,6 +125,32 @@ 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; + + uvPtStruct(): node(NULL) {} + + inline gp_XY UV() const { return gp_XY( u, v ); } + + 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