mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-01-17 22:28:16 +01:00
add polyhedra
This commit is contained in:
parent
f7e81a78e3
commit
d6affc1ff5
@ -7,4 +7,4 @@ to_do:
|
||||
|
||||
- doc: sf add convexity
|
||||
|
||||
- new: polyline_join, superellipsoid, select, dodecahedron, hexahedron, icosahedron, octahedron, tetrahedron
|
||||
- new: polyline_join, select, polyhedra/superellipsoid, polyhedra/dodecahedron, polyhedra/hexahedron, polyhedra/icosahedron, polyhedra/octahedron, polyhedra/tetrahedron
|
@ -1,8 +1,27 @@
|
||||
use <__comm__/_pt3_hash.scad>;
|
||||
use <util/map/hashmap.scad>;
|
||||
use <util/map/hashmap_put.scad>;
|
||||
use <util/map/hashmap_get.scad>;
|
||||
use <experimental/tri_subdivide.scad>;
|
||||
use <../../__comm__/_pt3_hash.scad>;
|
||||
use <../../util/map/hashmap.scad>;
|
||||
use <../../util/map/hashmap_put.scad>;
|
||||
use <../../util/map/hashmap_get.scad>;
|
||||
|
||||
function _tri_subdivide(points) =
|
||||
let(
|
||||
p0 = points[0],
|
||||
p1 = points[1],
|
||||
p2 = points[2],
|
||||
m0 = (p0 + p1) / 2,
|
||||
m1 = (p1 + p2) / 2,
|
||||
m2 = (p2 + p0) / 2
|
||||
)
|
||||
[
|
||||
[p0, m0, m2],
|
||||
[m0, p1, m1],
|
||||
[m1, p2, m2],
|
||||
[m0, m1, m2]
|
||||
];
|
||||
|
||||
function tri_subdivide(points, n = 1) =
|
||||
n == 1 ? _tri_subdivide(points) :
|
||||
[for(tri = tri_subdivide(points, n - 1)) each _tri_subdivide(tri)];
|
||||
|
||||
function _geom_prj2sphere(t, r) = [for(p = t) p / norm(p) * r];
|
||||
|
@ -1,4 +1,4 @@
|
||||
use <experimental/geom_dodecahedron.scad>;
|
||||
use <geom_dodecahedron.scad>;
|
||||
|
||||
module dodecahedron(radius, detail = 0, quick_mode = true) {
|
||||
points_faces = geom_dodecahedron(radius, detail, quick_mode);
|
@ -1,4 +1,4 @@
|
||||
use <experimental/_impl/_geom_platonic_polyhedra.scad>;
|
||||
use <_impl/_geom_platonic_polyhedra.scad>;
|
||||
|
||||
function geom_dodecahedron(radius, detail = 0, quick_mode = true) =
|
||||
let(
|
@ -1,4 +1,4 @@
|
||||
use <experimental/_impl/_geom_platonic_polyhedra.scad>;
|
||||
use <_impl/_geom_platonic_polyhedra.scad>;
|
||||
|
||||
function geom_hexahedron(radius, detail = 0, quick_mode = true) =
|
||||
let(
|
@ -1,4 +1,4 @@
|
||||
use <experimental/_impl/_geom_platonic_polyhedra.scad>;
|
||||
use <_impl/_geom_platonic_polyhedra.scad>;
|
||||
|
||||
function geom_icosahedron(radius, detail = 0, quick_mode = true) =
|
||||
let(
|
@ -1,4 +1,4 @@
|
||||
use <experimental/_impl/_geom_platonic_polyhedra.scad>;
|
||||
use <_impl/_geom_platonic_polyhedra.scad>;
|
||||
|
||||
function geom_octahedron(radius, detail = 0, quick_mode = true) =
|
||||
let(
|
@ -1,4 +1,4 @@
|
||||
use <experimental/_impl/_geom_platonic_polyhedra.scad>;
|
||||
use <_impl/_geom_platonic_polyhedra.scad>;
|
||||
|
||||
function geom_tetrahedron(radius, detail = 0, quick_mode = true) =
|
||||
let(
|
@ -1,4 +1,4 @@
|
||||
use <experimental/geom_hexahedron.scad>;
|
||||
use <geom_hexahedron.scad>;
|
||||
|
||||
module hexahedron(radius, detail = 0, quick_mode = true) {
|
||||
points_faces = geom_hexahedron(radius, detail, quick_mode);
|
@ -1,4 +1,4 @@
|
||||
use <experimental/geom_icosahedron.scad>;
|
||||
use <geom_icosahedron.scad>;
|
||||
|
||||
module icosahedron(radius, detail = 0, quick_mode = true) {
|
||||
points_faces = geom_icosahedron(radius, detail, quick_mode);
|
@ -1,5 +1,5 @@
|
||||
use <__comm__/__frags.scad>;
|
||||
use <sweep.scad>;
|
||||
use <../__comm__/__frags.scad>;
|
||||
use <../sweep.scad>;
|
||||
|
||||
// e = 0;
|
||||
// n = 0;
|
@ -1,4 +1,4 @@
|
||||
use <experimental/geom_tetrahedron.scad>;
|
||||
use <geom_tetrahedron.scad>;
|
||||
|
||||
module tetrahedron(radius, detail = 0, quick_mode = true) {
|
||||
points_faces = geom_tetrahedron(radius, detail, quick_mode);
|
Loading…
x
Reference in New Issue
Block a user