1extern crate manifold_rs;
2
3use manifold_rs::output::WritePly;
4use manifold_rs::*;
5
6fn main() -> std::io::Result<()> {
7 {
9 let size = 10.0;
10 let manifold = Manifold::cube(size, size, size);
11 manifold.write_ply_to_file("cube.ply")?;
12 }
13
14 {
16 let size = 10.0;
17 let manifold = Manifold::cube(size, size, size).calculate_normals(0, 30.0);
18 manifold.write_ply_to_file("cube_normals.ply")?;
19 }
20
21 {
23 let size = 10.0;
24 let manifold = Manifold::cube(size, size, size)
25 .translate(-size / 2.0, -size / 2.0, -size / 2.0)
26 .intersection(&Manifold::sphere(size / 2.0_f64.sqrt(), 64));
27
28 let manifold = manifold
29 .calculate_normals(0, 40.0)
30 .refine_to_length(0.2)
31 .smooth_out(40.0, 1.0);
32
33 manifold.write_ply_to_file("dice.ply")?;
34 }
35
36 {
38 let inner_radius = 0.3;
39 let outer_radius = 1.0;
40 let height = 2.0;
41
42 let manifold = Manifold::cylinder(outer_radius, outer_radius, height, 32)
43 .difference(&Manifold::cylinder(inner_radius, inner_radius, height, 32));
44 let manifold = manifold.calculate_normals(0, 40.0);
45
46 manifold.write_ply_to_file("tube_normals.ply")?;
47 }
48
49 Ok(())
50}