From 83ffa89fbf1cc71503edc7985f20604c0aefb272 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Fri, 30 Jul 2021 15:29:59 +0200 Subject: [PATCH] arb:: valence known --- arbitrile.cpp | 9 +++++++++ cell.cpp | 1 + 2 files changed, 10 insertions(+) diff --git a/arbitrile.cpp b/arbitrile.cpp index 84a2d531..1abfb8a9 100644 --- a/arbitrile.cpp +++ b/arbitrile.cpp @@ -83,6 +83,8 @@ struct arbi_tiling { ld floor_scale; ld boundary_ratio; string filename; + + int min_valence, max_valence; geometryinfo1& get_geometry(); eGeometryClass get_class() { return get_geometry().kind; } @@ -364,6 +366,13 @@ EX void compute_vertex_valence() { if(debugflags & DF_GEOM) println(hlog, "computed vertex_valence of ", i, " as ", ac.shapes[i].vertex_valence); } + + ac.min_valence = UNKNOWN; ac.max_valence = 0; + for(auto& sh: ac.shapes) + for(auto& val: sh.vertex_valence) { + if(val < ac.min_valence) ac.min_valence = val; + if(val > ac.max_valence) ac.max_valence = val; + } } EX void load(const string& fname, bool after_sliding IS(false)) { diff --git a/cell.cpp b/cell.cpp index b2fbb42b..6126ea3e 100644 --- a/cell.cpp +++ b/cell.cpp @@ -1417,6 +1417,7 @@ EX int valence() { #if CAP_ARCM if(arcm::in()) return arcm::valence(); #endif + if(arb::in()) return arb::current.min_valence; return S3; }