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:
authorLukas Matena <lukasmatena@seznam.cz>2021-03-12 12:29:17 +0300
committerLukas Matena <lukasmatena@seznam.cz>2021-05-28 17:44:13 +0300
commit97b7ef7dc0e3d5185eae67edc2d14236a8b659a1 (patch)
treecb1a3b581782810f28ffd26e629cb6bc1f156cba /src/libslic3r
parent0c7095d807efd960fb779a26b2647ec6e1e45c02 (diff)
Removed GLU calls from all the gizmos
Diffstat (limited to 'src/libslic3r')
-rw-r--r--src/libslic3r/TriangleMesh.cpp27
-rw-r--r--src/libslic3r/TriangleMesh.hpp4
2 files changed, 28 insertions, 3 deletions
diff --git a/src/libslic3r/TriangleMesh.cpp b/src/libslic3r/TriangleMesh.cpp
index fba1429ea..99f2c9641 100644
--- a/src/libslic3r/TriangleMesh.cpp
+++ b/src/libslic3r/TriangleMesh.cpp
@@ -1014,6 +1014,33 @@ TriangleMesh make_cylinder(double r, double h, double fa)
return mesh;
}
+
+TriangleMesh make_cone(double r, double h, double fa)
+{
+ Pointf3s vertices;
+ std::vector<Vec3i> facets;
+ vertices.reserve(3+size_t(2*PI/fa));
+ vertices.reserve(3+2*size_t(2*PI/fa));
+
+ vertices = { Vec3d::Zero(), Vec3d(0., 0., h) }; // base center and top vertex
+ size_t i = 0;
+ for (double angle=0; angle<2*PI; angle+=fa) {
+ vertices.emplace_back(r*std::cos(angle), r*std::sin(angle), 0.);
+ if (angle > 0.) {
+ facets.emplace_back(0, i+2, i+1);
+ facets.emplace_back(1, i+1, i+2);
+ }
+ ++i;
+ }
+ facets.emplace_back(0, 2, i+1); // close the shape
+ facets.emplace_back(1, i+1, 2);
+
+ TriangleMesh mesh(std::move(vertices), std::move(facets));
+ mesh.repair();
+ return mesh;
+}
+
+
// Generates mesh for a sphere centered about the origin, using the generated angle
// to determine the granularity.
// Default angle is 1 degree.
diff --git a/src/libslic3r/TriangleMesh.hpp b/src/libslic3r/TriangleMesh.hpp
index 49b11465e..24447d896 100644
--- a/src/libslic3r/TriangleMesh.hpp
+++ b/src/libslic3r/TriangleMesh.hpp
@@ -122,10 +122,8 @@ Polygon its_convex_hull_2d_above(const indexed_triangle_set &its, const Matrix3f
Polygon its_convex_hull_2d_above(const indexed_triangle_set &its, const Transform3f &t, const float z);
TriangleMesh make_cube(double x, double y, double z);
-
-// Generate a TriangleMesh of a cylinder
TriangleMesh make_cylinder(double r, double h, double fa=(2*PI/360));
-
+TriangleMesh make_cone(double r, double h, double fa=(2*PI/360));
TriangleMesh make_sphere(double rho, double fa=(2*PI/360));
}