occ - set domin/domout for edges in 2d meshes

This commit is contained in:
mhochsteger@cerbsim.com 2021-12-07 14:52:06 +01:00
parent b8b802de6b
commit 329364e8e2
3 changed files with 15 additions and 0 deletions

View File

@ -574,6 +574,8 @@ namespace netgen
seg.epgeominfo[1].edgenr = edgenr;
seg.singedge_left = edge->properties.hpref;
seg.singedge_right = edge->properties.hpref;
seg.domin = edge->domin+1;
seg.domout = edge->domout+1;
mesh.AddSegment(seg);
}
mesh.SetCD2Name(edgenr+1, edge->properties.GetName());

View File

@ -71,6 +71,8 @@ namespace netgen
class DLL_HEADER GeometryEdge : public GeometryShape
{
public:
int domin=-1, domout=-1;
virtual const GeometryVertex& GetStartVertex() const = 0;
virtual const GeometryVertex& GetEndVertex() const = 0;
virtual double GetLength() const = 0;

View File

@ -1148,9 +1148,20 @@ namespace netgen
if(global_shape_properties.count(tshape)>0)
occ_face->properties = global_shape_properties[tshape];
faces.Append(std::move(occ_face));
if(dimension==2)
for(auto e : GetEdges(f))
{
auto & edge = *edges[edge_map[e.TShape()]];
if(e.Orientation() == TopAbs_REVERSED)
edge.domout = k;
else
edge.domin = k;
}
}
}
for(auto s : GetSolids(shape))
{
auto tshape = s.TShape();