+ // int nbShapes = 0;
+ // for ( size_t iS = 0; iS < edgesByGeom.size(); ++iS )
+ // {
+ // nbShapes += ( edgesByGeom[iS]._edges.size() > 0 );
+ // }
+ // data._edgesOnShape.reserve( nbShapes );
+
+ // // first we put _LayerEdge's on shapes to smooth (EGDEs go first)
+ // vector< _LayerEdge* > edges;
+ // list< TGeomID >::iterator gIt = shapesToSmooth.begin();
+ // for ( ; gIt != shapesToSmooth.end(); ++gIt )
+ // {
+ // _EdgesOnShape& eos = edgesByGeom[ *gIt ];
+ // if ( eos._edges.empty() ) continue;
+ // eos._edges.swap( edges ); // avoid copying array
+ // eos._toSmooth = true;
+ // data._edgesOnShape.push_back( eos );
+ // data._edgesOnShape.back()._edges.swap( edges );
+ // }
+
+ // // then the rest _LayerEdge's
+ // for ( size_t iS = 0; iS < edgesByGeom.size(); ++iS )
+ // {
+ // _EdgesOnShape& eos = edgesByGeom[ *gIt ];
+ // if ( eos._edges.empty() ) continue;
+ // eos._edges.swap( edges ); // avoid copying array
+ // eos._toSmooth = false;
+ // data._edgesOnShape.push_back( eos );
+ // data._edgesOnShape.back()._edges.swap( edges );
+ // }
+
+ return ok;
+}
+
+//================================================================================
+/*!
+ * \brief initialize data of _EdgesOnShape
+ */
+//================================================================================
+
+void _ViscousBuilder::setShapeData( _EdgesOnShape& eos,
+ SMESH_subMesh* sm,
+ _SolidData& data )
+{
+ if ( !eos._shape.IsNull() ||
+ sm->GetSubShape().ShapeType() == TopAbs_WIRE )
+ return;
+
+ SMESH_MesherHelper helper( *_mesh );
+
+ eos._subMesh = sm;
+ eos._shapeID = sm->GetId();
+ eos._shape = sm->GetSubShape();
+ if ( eos.ShapeType() == TopAbs_FACE )
+ eos._shape.Orientation( helper.GetSubShapeOri( data._solid, eos._shape ));
+ eos._toSmooth = false;
+
+ // set _SWOL
+ map< TGeomID, TopoDS_Shape >::const_iterator s2s =
+ data._shrinkShape2Shape.find( eos._shapeID );
+ if ( s2s != data._shrinkShape2Shape.end() )
+ eos._sWOL = s2s->second;
+
+ // set _hyp