diff options
author | bubnikv <bubnikv@gmail.com> | 2019-06-10 12:04:09 +0300 |
---|---|---|
committer | bubnikv <bubnikv@gmail.com> | 2019-06-10 12:04:09 +0300 |
commit | 025f86ca3f14e35d617ddb6c76dc5d463d5bf11e (patch) | |
tree | 5eaa417b8f0a7164f518faddbab913c79579f097 /src/admesh | |
parent | 7dd842b2942dd6a5d6da21a79a4217814e17f65c (diff) |
Fix of the previous refactoring.
Diffstat (limited to 'src/admesh')
-rw-r--r-- | src/admesh/connect.cpp | 8 | ||||
-rw-r--r-- | src/admesh/shared.cpp | 3 | ||||
-rw-r--r-- | src/admesh/util.cpp | 5 |
3 files changed, 12 insertions, 4 deletions
diff --git a/src/admesh/connect.cpp b/src/admesh/connect.cpp index b99f93f3d..d35c48aba 100644 --- a/src/admesh/connect.cpp +++ b/src/admesh/connect.cpp @@ -837,10 +837,12 @@ void stl_add_facet(stl_file *stl, const stl_facet *new_facet) { if (stl->error) return; - ++ stl->stats.facets_added; - ++ stl->stats.number_of_facets; - stl->facet_start.emplace_back(*new_facet); + assert(stl->facet_start.size() == stl->stats.number_of_facets); + assert(stl->neighbors_start.size() == stl->stats.number_of_facets); + stl->facet_start.emplace_back(*new_facet); // note that the normal vector is not set here, just initialized to 0. stl->facet_start[stl->stats.number_of_facets].normal = stl_normal::Zero(); stl->neighbors_start.emplace_back(); + ++ stl->stats.facets_added; + ++ stl->stats.number_of_facets; } diff --git a/src/admesh/shared.cpp b/src/admesh/shared.cpp index 8162c6a8d..bc264ee96 100644 --- a/src/admesh/shared.cpp +++ b/src/admesh/shared.cpp @@ -33,6 +33,7 @@ void stl_invalidate_shared_vertices(stl_file *stl) { stl->v_indices.clear(); stl->v_shared.clear(); + stl->stats.shared_vertices = 0; } void stl_generate_shared_vertices(stl_file *stl) @@ -46,7 +47,7 @@ void stl_generate_shared_vertices(stl_file *stl) // 3 indices to vertex per face stl->v_indices.assign(stl->stats.number_of_facets, v_indices_struct()); // Shared vertices (3D coordinates) - stl->v_shared.assign(stl->stats.number_of_facets / 2, stl_vertex()); + stl->v_shared.reserve(stl->stats.number_of_facets / 2); stl->stats.shared_vertices = 0; // A degenerate mesh may contain loops: Traversing a fan will end up in an endless loop diff --git a/src/admesh/util.cpp b/src/admesh/util.cpp index 61e0d11e7..d8640e575 100644 --- a/src/admesh/util.cpp +++ b/src/admesh/util.cpp @@ -456,11 +456,16 @@ bool stl_validate(stl_file *stl) assert(! stl->error); assert(stl->fp == nullptr); assert(! stl->facet_start.empty()); + assert(stl->facet_start.size() == stl->stats.number_of_facets); + assert(stl->neighbors_start.size() == stl->stats.number_of_facets); + assert(stl->facet_start.size() == stl->neighbors_start.size()); assert(stl->heads.empty()); assert(stl->tail == nullptr); assert(! stl->neighbors_start.empty()); assert((stl->v_indices.empty()) == (stl->v_shared.empty())); assert(stl->stats.number_of_facets > 0); + assert(stl->v_shared.size() == stl->stats.shared_vertices); + assert(stl->v_shared.empty() || stl->v_indices.size() == stl->stats.number_of_facets); #ifdef _DEBUG // Verify validity of neighborship data. |