From dd46634c83a850c568661e9121f8049c9fbfbeee Mon Sep 17 00:00:00 2001 From: Christopher Lackner Date: Tue, 29 Aug 2023 16:43:25 +0200 Subject: [PATCH] gui draw segment and surfacelement numbers --- libsrc/visualization/vispar.hpp | 2 ++ libsrc/visualization/vsmesh.cpp | 39 ++++++++++++++++++++++++++++++--- ng/dialog.tcl | 9 +++++++- ng/ngpkg.cpp | 4 ++++ ng/onetcl.cpp | 9 ++++++++ ng/variables.tcl | 2 ++ 6 files changed, 61 insertions(+), 4 deletions(-) diff --git a/libsrc/visualization/vispar.hpp b/libsrc/visualization/vispar.hpp index 93d4425d..de2e3ccc 100644 --- a/libsrc/visualization/vispar.hpp +++ b/libsrc/visualization/vispar.hpp @@ -58,6 +58,8 @@ public: int drawedgenumbers; int drawfacenumbers; int drawelementnumbers; + int drawsurfaceelementnumbers; + int drawsegmentnumbers; int drawdomainsurf; int drawtets; int drawtetsdomain; diff --git a/libsrc/visualization/vsmesh.cpp b/libsrc/visualization/vsmesh.cpp index 1bbe25e8..b8aa8509 100644 --- a/libsrc/visualization/vsmesh.cpp +++ b/libsrc/visualization/vsmesh.cpp @@ -209,6 +209,8 @@ namespace netgen if (vispar.drawpointnumbers || vispar.drawedgenumbers || vispar.drawfacenumbers || + vispar.drawsegmentnumbers || + vispar.drawsurfaceelementnumbers || vispar.drawelementnumbers) glCallList (pointnumberlist); @@ -366,6 +368,8 @@ namespace netgen if (vispar.drawpointnumbers || vispar.drawedgenumbers || vispar.drawfacenumbers || + vispar.drawsegmentnumbers || + vispar.drawsurfaceelementnumbers || vispar.drawelementnumbers) { // glEnable (GL_COLOR_MATERIAL); @@ -427,8 +431,18 @@ namespace netgen } + if (vispar.drawsegmentnumbers) + { + for (auto si : Range(mesh->LineSegments())) { + const auto& seg = (*mesh)[si]; + Point<3> c = Center((*mesh)[seg[0]], (*mesh)[seg[1]]); + glRasterPos3d (c[0], c[1], c[2]); + snprintf (buf, size(buf), "%d", int(si)); + MyOpenGLText (buf); + } + } - if (vispar.drawfacenumbers) + if (vispar.drawfacenumbers) { const MeshTopology & top = mesh->GetTopology(); NgArray v; @@ -458,9 +472,28 @@ namespace netgen } } + if (vispar.drawsurfaceelementnumbers) + { + for (auto sei : Range(mesh->SurfaceElements())) + { + const auto & sel = (*mesh)[sei]; + Point<3> c; + if(sel.GetNV() == 3) + c = Center((*mesh)[sel[0]], + (*mesh)[sel[1]], + (*mesh)[sel[2]]); + else + c = Center((*mesh)[sel[0]], + (*mesh)[sel[1]], + (*mesh)[sel[2]], + (*mesh)[sel[3]]); + glRasterPos3d (c[0], c[1], c[2]); + snprintf (buf, size(buf), "%d", int(sei)); + MyOpenGLText (buf); + } + } - - if (vispar.drawelementnumbers) + if (vispar.drawelementnumbers) { NgArray v; for (int i = 1; i <= mesh->GetNE(); i++) diff --git a/ng/dialog.tcl b/ng/dialog.tcl index 3d118574..482e333d 100644 --- a/ng/dialog.tcl +++ b/ng/dialog.tcl @@ -1214,6 +1214,12 @@ proc viewingoptionsdialog { } { ttk::checkbutton $f.showelementnumbers -text "Show Element-numbers" \ -variable viewoptions.drawelementnumbers \ -command { Ng_SetVisParameters; redraw } + ttk::checkbutton $f.showsegmentnumbers -text "Show Segment-numbers" \ + -variable viewoptions.drawsegmentnumbers \ + -command { Ng_SetVisParameters; redraw } + ttk::checkbutton $f.showsurfaceelementnumbers -text "Show Surfaceelement-numbers" \ + -variable viewoptions.drawsurfaceelementnumbers \ + -command { Ng_SetVisParameters; redraw } # label $f.showdomainlab -text "Domain Surface" # scale $f.showdomain -orient horizontal -length 100 -from 0 -to 50 \ @@ -1281,7 +1287,8 @@ proc viewingoptionsdialog { } { grid $f.showfilledtrigs $f.showoutline -sticky nw grid $f.showedges $f.showbadels -sticky nw grid $f.showpointnumbers $f.showedgenumbers -sticky nw - grid $f.showfacenumbers $f.showelementnumbers -sticky nw + grid $f.showfacenumbers $f.showelementnumbers -sticky nw + grid $f.showsurfaceelementnumbers $f.showsegmentnumbers -sticky nw grid $f.showmetispartition $f.showidentified -sticky nw grid $f.showcolor $f.showpyramids -sticky nw grid $f.showprisms $f.showhexes -sticky nw diff --git a/ng/ngpkg.cpp b/ng/ngpkg.cpp index 12bdeaef..e3778cf4 100644 --- a/ng/ngpkg.cpp +++ b/ng/ngpkg.cpp @@ -2644,6 +2644,10 @@ void PlayAnimFile(const char* name, int speed, int maxcnt) atoi (Tcl_GetVar (interp, "::viewoptions.drawfacenumbers", TCL_GLOBAL_ONLY)); vispar.drawelementnumbers = atoi (Tcl_GetVar (interp, "::viewoptions.drawelementnumbers", TCL_GLOBAL_ONLY)); + vispar.drawsurfaceelementnumbers = + atoi (Tcl_GetVar (interp, "::viewoptions.drawsurfaceelementnumbers", TCL_GLOBAL_ONLY)); + vispar.drawsegmentnumbers = + atoi (Tcl_GetVar (interp, "::viewoptions.drawsegmentnumbers", TCL_GLOBAL_ONLY)); vispar.drawdomainsurf = atoi (Tcl_GetVar (interp, "::viewoptions.drawdomainsurf", TCL_GLOBAL_ONLY)); diff --git a/ng/onetcl.cpp b/ng/onetcl.cpp index d25549e4..63d7f085 100644 --- a/ng/onetcl.cpp +++ b/ng/onetcl.cpp @@ -145,6 +145,8 @@ DLL_HEADER const char * ngscript[] = {"" ,"set viewoptions.drawedgenumbers 0\n" ,"set viewoptions.drawfacenumbers 0\n" ,"set viewoptions.drawelementnumbers 0\n" +,"set viewoptions.drawsegmentnumbers 0\n" +,"set viewoptions.drawsurfaceelementnumbers 0\n" ,"set viewoptions.drawdomainsurf 0\n" ,"set viewoptions.drawededges 1\n" ,"set viewoptions.drawedpoints 1\n" @@ -2183,6 +2185,12 @@ DLL_HEADER const char * ngscript[] = {"" ,"ttk::checkbutton $f.showelementnumbers -text \"Show Element-numbers\" \\\n" ,"-variable viewoptions.drawelementnumbers \\\n" ,"-command { Ng_SetVisParameters; redraw }\n" +,"ttk::checkbutton $f.showsegmentnumbers -text \"Show Segment-numbers\" \\\n" +,"-variable viewoptions.drawsegmentnumbers \\\n" +,"-command { Ng_SetVisParameters; redraw }\n" +,"ttk::checkbutton $f.showsurfaceelementnumbers -text \"Show Surfaceelement-numbers\" \\\n" +,"-variable viewoptions.drawsurfaceelementnumbers \\\n" +,"-command { Ng_SetVisParameters; redraw }\n" ,"ttk::frame $f.frametets\n" ,"ttk::checkbutton $f.frametets.showtets -text \"\" \\\n" ,"-variable viewoptions.drawtets \\\n" @@ -2212,6 +2220,7 @@ DLL_HEADER const char * ngscript[] = {"" ,"grid $f.showedges $f.showbadels -sticky nw\n" ,"grid $f.showpointnumbers $f.showedgenumbers -sticky nw\n" ,"grid $f.showfacenumbers $f.showelementnumbers -sticky nw\n" +,"grid $f.showsurfaceelementnumbers $f.showsegmentnumbers -sticky nw\n" ,"grid $f.showmetispartition $f.showidentified -sticky nw\n" ,"grid $f.showcolor $f.showpyramids -sticky nw\n" ,"grid $f.showprisms $f.showhexes -sticky nw\n" diff --git a/ng/variables.tcl b/ng/variables.tcl index cc7042fc..e2748ecc 100644 --- a/ng/variables.tcl +++ b/ng/variables.tcl @@ -112,6 +112,8 @@ set viewoptions.drawpointnumbers 0 set viewoptions.drawedgenumbers 0 set viewoptions.drawfacenumbers 0 set viewoptions.drawelementnumbers 0 +set viewoptions.drawsegmentnumbers 0 +set viewoptions.drawsurfaceelementnumbers 0 set viewoptions.drawdomainsurf 0 set viewoptions.drawededges 1