From 329364e8e2990740497db617c7a8f71bc268c853 Mon Sep 17 00:00:00 2001 From: "mhochsteger@cerbsim.com" Date: Tue, 7 Dec 2021 14:52:06 +0100 Subject: [PATCH] occ - set domin/domout for edges in 2d meshes --- libsrc/meshing/basegeom.cpp | 2 ++ libsrc/meshing/basegeom.hpp | 2 ++ libsrc/occ/occgeom.cpp | 11 +++++++++++ 3 files changed, 15 insertions(+) diff --git a/libsrc/meshing/basegeom.cpp b/libsrc/meshing/basegeom.cpp index 282541a3..dd108592 100644 --- a/libsrc/meshing/basegeom.cpp +++ b/libsrc/meshing/basegeom.cpp @@ -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()); diff --git a/libsrc/meshing/basegeom.hpp b/libsrc/meshing/basegeom.hpp index 90b0bd0f..e1e3016b 100644 --- a/libsrc/meshing/basegeom.hpp +++ b/libsrc/meshing/basegeom.hpp @@ -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; diff --git a/libsrc/occ/occgeom.cpp b/libsrc/occ/occgeom.cpp index 6ef0007a..290c4ece 100644 --- a/libsrc/occ/occgeom.cpp +++ b/libsrc/occ/occgeom.cpp @@ -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();