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

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/xs
diff options
context:
space:
mode:
authorbubnikv <bubnikv@gmail.com>2019-06-18 09:54:50 +0300
committerbubnikv <bubnikv@gmail.com>2019-06-18 09:54:50 +0300
commitc95a324c3f97bfed63a5fdf23ea0f032b566f66c (patch)
treef5bc9ca3b9e0e57a682375230c9a8b077935e93b /xs
parent5ee695b6291ffe7cce6153f509de0f78f22239aa (diff)
parent630883ad0f4d7f602e06773a8f333e65c1385e77 (diff)
Merge branch 'vb_admesh_fix'
Diffstat (limited to 'xs')
-rw-r--r--xs/xsp/Model.xsp2
-rw-r--r--xs/xsp/TriangleMesh.xsp25
2 files changed, 11 insertions, 16 deletions
diff --git a/xs/xsp/Model.xsp b/xs/xsp/Model.xsp
index a1c8890ef..6a2cc6080 100644
--- a/xs/xsp/Model.xsp
+++ b/xs/xsp/Model.xsp
@@ -253,7 +253,7 @@ ModelMaterial::attributes()
Ref<DynamicPrintConfig> config()
%code%{ RETVAL = &THIS->config; %};
Ref<TriangleMesh> mesh()
- %code%{ RETVAL = &THIS->mesh; %};
+ %code%{ RETVAL = &THIS->mesh(); %};
bool modifier()
%code%{ RETVAL = THIS->is_modifier(); %};
diff --git a/xs/xsp/TriangleMesh.xsp b/xs/xsp/TriangleMesh.xsp
index e519f9210..f3153665c 100644
--- a/xs/xsp/TriangleMesh.xsp
+++ b/xs/xsp/TriangleMesh.xsp
@@ -46,7 +46,6 @@ TriangleMesh::ReadFromPerl(vertices, facets)
SV* facets
CODE:
stl_file &stl = THIS->stl;
- stl.error = 0;
stl.stats.type = inmemory;
// count facets and allocate memory
@@ -99,20 +98,18 @@ SV*
TriangleMesh::vertices()
CODE:
if (!THIS->repaired) CONFESS("vertices() requires repair()");
-
- if (THIS->stl.v_shared == NULL)
- stl_generate_shared_vertices(&(THIS->stl));
+ THIS->require_shared_vertices();
// vertices
AV* vertices = newAV();
- av_extend(vertices, THIS->stl.stats.shared_vertices);
- for (int i = 0; i < THIS->stl.stats.shared_vertices; i++) {
+ av_extend(vertices, THIS->its.vertices.size());
+ for (size_t i = 0; i < THIS->its.vertices.size(); i++) {
AV* vertex = newAV();
av_store(vertices, i, newRV_noinc((SV*)vertex));
av_extend(vertex, 2);
- av_store(vertex, 0, newSVnv(THIS->stl.v_shared[i](0)));
- av_store(vertex, 1, newSVnv(THIS->stl.v_shared[i](1)));
- av_store(vertex, 2, newSVnv(THIS->stl.v_shared[i](2)));
+ av_store(vertex, 0, newSVnv(THIS->its.vertices[i](0)));
+ av_store(vertex, 1, newSVnv(THIS->its.vertices[i](1)));
+ av_store(vertex, 2, newSVnv(THIS->its.vertices[i](2)));
}
RETVAL = newRV_noinc((SV*)vertices);
@@ -123,9 +120,7 @@ SV*
TriangleMesh::facets()
CODE:
if (!THIS->repaired) CONFESS("facets() requires repair()");
-
- if (THIS->stl.v_shared == NULL)
- stl_generate_shared_vertices(&(THIS->stl));
+ THIS->require_shared_vertices();
// facets
AV* facets = newAV();
@@ -134,9 +129,9 @@ TriangleMesh::facets()
AV* facet = newAV();
av_store(facets, i, newRV_noinc((SV*)facet));
av_extend(facet, 2);
- av_store(facet, 0, newSVnv(THIS->stl.v_indices[i].vertex[0]));
- av_store(facet, 1, newSVnv(THIS->stl.v_indices[i].vertex[1]));
- av_store(facet, 2, newSVnv(THIS->stl.v_indices[i].vertex[2]));
+ av_store(facet, 0, newSVnv(THIS->its.indices[i][0]));
+ av_store(facet, 1, newSVnv(THIS->its.indices[i][1]));
+ av_store(facet, 2, newSVnv(THIS->its.indices[i][2]));
}
RETVAL = newRV_noinc((SV*)facets);