mirror of
https://github.com/FULU-Foundation/OrcaSlicer-bambulab.git
synced 2026-05-24 19:40:23 -07:00
Ported TriangleMesh->size
This commit is contained in:
@@ -42,6 +42,8 @@ void TriangleMesh::ReadFromPerl(SV* vertices, SV* facets)
|
||||
|
||||
stl.facet_start[i] = facet;
|
||||
}
|
||||
|
||||
stl_get_size(&(this->stl));
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -181,3 +181,4 @@ static void stl_facet_stats(stl_file *stl, stl_facet facet, int first);
|
||||
static void stl_reallocate(stl_file *stl);
|
||||
static int stl_get_little_int(FILE *fp);
|
||||
static float stl_get_little_float(FILE *fp);
|
||||
extern void stl_get_size(stl_file *stl);
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
#include "stl.h"
|
||||
|
||||
static void stl_rotate(float *x, float *y, float angle);
|
||||
static void stl_get_size(stl_file *stl);
|
||||
static float get_area(stl_facet *facet);
|
||||
static float get_volume(stl_file *stl);
|
||||
|
||||
@@ -116,6 +115,11 @@ stl_scale(stl_file *stl, float factor)
|
||||
stl->stats.max.y *= factor;
|
||||
stl->stats.max.z *= factor;
|
||||
|
||||
// scale size
|
||||
stl->stats.size.x *= factor;
|
||||
stl->stats.size.y *= factor;
|
||||
stl->stats.size.z *= factor;
|
||||
|
||||
// scale volume
|
||||
if (stl->stats.volume > 0.0) {
|
||||
stl->stats.volume *= (factor * factor * factor);
|
||||
@@ -219,7 +223,7 @@ stl_rotate(float *x, float *y, float angle)
|
||||
*y = r * sin(theta + radian_angle);
|
||||
}
|
||||
|
||||
static void
|
||||
extern void
|
||||
stl_get_size(stl_file *stl)
|
||||
{
|
||||
int i;
|
||||
@@ -250,6 +254,14 @@ stl_get_size(stl_file *stl)
|
||||
stl->facet_start[i].vertex[j].z);
|
||||
}
|
||||
}
|
||||
stl->stats.size.x = stl->stats.max.x - stl->stats.min.x;
|
||||
stl->stats.size.y = stl->stats.max.y - stl->stats.min.y;
|
||||
stl->stats.size.z = stl->stats.max.z - stl->stats.min.z;
|
||||
stl->stats.bounding_diameter = sqrt(
|
||||
stl->stats.size.x * stl->stats.size.x +
|
||||
stl->stats.size.y * stl->stats.size.y +
|
||||
stl->stats.size.z * stl->stats.size.z
|
||||
);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user