From 6e1697da177b2ca532b6b7a6dbcad623c6fc244b Mon Sep 17 00:00:00 2001 From: eap Date: Wed, 28 Feb 2007 15:00:19 +0000 Subject: [PATCH] PAL13460 (PAL EDF 301 force the mesh to go through a point) get only unique nodes of SMDS_PolyhedralVolumeOfNodes --- src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx index b9554e306..cf05c1962 100644 --- a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx +++ b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx @@ -22,10 +22,10 @@ #include "DriverUNV_W_SMDS_Mesh.h" #include "SMDS_Mesh.hxx" -#include "SMESHDS_GroupBase.hxx" -//#include "SMESH_Group.hxx" #include "SMDS_QuadraticEdge.hxx" #include "SMDS_QuadraticFaceOfNodes.hxx" +#include "SMDS_PolyhedralVolumeOfNodes.hxx" +#include "SMESHDS_GroupBase.hxx" #include "utilities.h" @@ -158,9 +158,16 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() TElementLab aLabel = anElem->GetID(); int aNbNodes = anElem->NbNodes(); - aConnect.resize(aNbNodes); - SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator(); + if ( anElem->IsPoly() ) { + if ( const SMDS_PolyhedralVolumeOfNodes* ph = + dynamic_cast (anElem)) + { + aNbNodes = ph->NbUniqueNodes(); + aNodesIter = ph->uniqueNodesIterator(); + } + } + aConnect.resize(aNbNodes); GetConnect(aNodesIter,aConnect); int anId = -1;