mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-31 09:02:53 +00:00
Ported TriangleMesh->scale
This commit is contained in:
@@ -102,4 +102,9 @@ TriangleMesh::WriteOBJFile(char* output_file) {
|
||||
stl_write_obj(&stl, output_file);
|
||||
}
|
||||
|
||||
void TriangleMesh::scale(float factor)
|
||||
{
|
||||
stl_scale(&(this->stl), factor);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ class TriangleMesh
|
||||
void ReadFromPerl(SV* vertices, SV* facets);
|
||||
void Repair();
|
||||
void WriteOBJFile(char* output_file);
|
||||
void scale(float factor);
|
||||
stl_file stl;
|
||||
};
|
||||
|
||||
|
||||
@@ -106,6 +106,7 @@ stl_scale(stl_file *stl, float factor)
|
||||
int i;
|
||||
int j;
|
||||
|
||||
// scale extents
|
||||
stl->stats.min.x *= factor;
|
||||
stl->stats.min.y *= factor;
|
||||
stl->stats.min.z *= factor;
|
||||
@@ -113,6 +114,11 @@ stl_scale(stl_file *stl, float factor)
|
||||
stl->stats.max.y *= factor;
|
||||
stl->stats.max.z *= factor;
|
||||
|
||||
// scale volume
|
||||
if (stl->stats.volume > 0.0) {
|
||||
stl->stats.volume *= (factor * factor * factor);
|
||||
}
|
||||
|
||||
for(i = 0; i < stl->stats.number_of_facets; i++)
|
||||
{
|
||||
for(j = 0; j < 3; j++)
|
||||
|
||||
Reference in New Issue
Block a user