mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-12 17:54:18 +02:00
refactor
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
use <experimental/_impl/_sf_square_surfaces.scad>;
|
||||||
use <experimental/sf_solidify.scad>;
|
use <experimental/sf_solidify.scad>;
|
||||||
use <experimental/tf_sphere.scad>;
|
use <experimental/tf_sphere.scad>;
|
||||||
|
|
||||||
@@ -9,38 +10,22 @@ use <experimental/tf_sphere.scad>;
|
|||||||
invert: inverts how the gray levels are translated into height values.
|
invert: inverts how the gray levels are translated into height values.
|
||||||
*/
|
*/
|
||||||
module sf_sphere(levels, radius, thickness, angle = [180, 360], invert = false) {
|
module sf_sphere(levels, radius, thickness, angle = [180, 360], invert = false) {
|
||||||
|
surface = _sf_square_surfaces(levels, thickness, invert);
|
||||||
rows = len(levels);
|
rows = len(levels);
|
||||||
columns = len(levels[0]);
|
columns = len(levels[0]);
|
||||||
size = [columns - 1, rows - 1];
|
size = [columns - 1, rows - 1];
|
||||||
|
|
||||||
surface1 = [
|
|
||||||
for(r = [0:rows - 1])
|
|
||||||
[
|
|
||||||
for(c = [0:columns - 1])
|
|
||||||
let(lv = invert ? 255 - levels[rows - r - 1][c] : levels[rows - r - 1][c])
|
|
||||||
[c, r, lv / 255 * thickness]
|
|
||||||
]
|
|
||||||
];
|
|
||||||
|
|
||||||
surface2 = [
|
|
||||||
for(r = [0:rows - 1])
|
|
||||||
[
|
|
||||||
for(c = [0:columns - 1])
|
|
||||||
[c, r, 0]
|
|
||||||
]
|
|
||||||
];
|
|
||||||
|
|
||||||
offset_z = invert ? thickness : 0;
|
offset_z = invert ? thickness : 0;
|
||||||
sf_solidify(
|
sf_solidify(
|
||||||
[
|
[
|
||||||
for(row = surface1)
|
for(row = surface[0])
|
||||||
[
|
[
|
||||||
for(p = row) tf_sphere(size, p, radius + offset_z, angle)
|
for(p = row) tf_sphere(size, p, radius + offset_z, angle)
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
,
|
,
|
||||||
[
|
[
|
||||||
for(row = surface2)
|
for(row = surface[1])
|
||||||
[
|
[
|
||||||
for(p = row) tf_sphere(size, p, radius, angle)
|
for(p = row) tf_sphere(size, p, radius, angle)
|
||||||
]
|
]
|
||||||
|
Reference in New Issue
Block a user