Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbubnikv <bubnikv@gmail.com>2019-06-10 12:04:09 +0300
committerbubnikv <bubnikv@gmail.com>2019-06-10 12:04:09 +0300
commit025f86ca3f14e35d617ddb6c76dc5d463d5bf11e (patch)
tree5eaa417b8f0a7164f518faddbab913c79579f097 /src/admesh
parent7dd842b2942dd6a5d6da21a79a4217814e17f65c (diff)
Fix of the previous refactoring.
Diffstat (limited to 'src/admesh')
-rw-r--r--src/admesh/connect.cpp8
-rw-r--r--src/admesh/shared.cpp3
-rw-r--r--src/admesh/util.cpp5
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.