X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHUtils%2FSMESH_TypeDefs.hxx;h=edb0f247f8e0a1a81f0d75e6938913cfab4719a4;hb=a3a6c690baad8a568546cceff02dad9af440e9ca;hp=63ecd6bffc6633139eb640f5a42af2fdc1d95bb5;hpb=24df7fa1abf1fb224675fb6d640c01a862600c12;p=modules%2Fsmesh.git diff --git a/src/SMESHUtils/SMESH_TypeDefs.hxx b/src/SMESHUtils/SMESH_TypeDefs.hxx index 63ecd6bff..edb0f247f 100644 --- a/src/SMESHUtils/SMESH_TypeDefs.hxx +++ b/src/SMESHUtils/SMESH_TypeDefs.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 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 @@ -60,6 +60,12 @@ namespace SMESHUtils TVECTOR v2; vec.swap( v2 ); } + template + void CompactVector(TVECTOR& vec) + { + TVECTOR v2( vec ); + vec.swap( v2 ); + } } //======================================================================= @@ -99,11 +105,13 @@ struct SMESH_OrientedLink: public SMESH_TLink 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) { if (e) { assert( e->GetType() == SMDSAbs_Node ); _node = static_cast(e); - SetCoord( _node->X(), _node->Y(), _node->Z() ); + _node->GetXYZ(_xyz); // - thread safe getting coords + SetCoord( _xyz[0], _xyz[1], _xyz[2] ); } } double Distance(const SMDS_MeshNode* n) const { return (SMESH_TNodeXYZ( n )-*this).Modulus(); }