brep_kernel/abi/
primitives.rs1use super::*;
2
3#[wasm_bindgen]
4pub fn box_brep_json(
5 corner_x: f64,
6 corner_y: f64,
7 corner_z: f64,
8 size_x: f64,
9 size_y: f64,
10 size_z: f64,
11) -> Result<String, JsValue> {
12 let solid = make_box_brep(
13 Vec3::new(corner_x, corner_y, corner_z),
14 size_x,
15 size_y,
16 size_z,
17 )
18 .map_err(javascript_error)?;
19 serde_json::to_string(&solid).map_err(|error| javascript_error(error.to_string()))
20}
21
22#[wasm_bindgen]
23pub fn pyramid_brep_json(
24 corner_x: f64,
25 corner_y: f64,
26 corner_z: f64,
27 side_length: f64,
28 height: f64,
29 sides: u32,
30) -> Result<String, JsValue> {
31 let solid = make_pyramid_brep(
32 Vec3::new(corner_x, corner_y, corner_z),
33 side_length,
34 height,
35 sides as usize,
36 )
37 .map_err(javascript_error)?;
38 serde_json::to_string(&solid).map_err(|error| javascript_error(error.to_string()))
39}
40
41#[wasm_bindgen]
42pub fn cylinder_brep_json(
43 base_x: f64,
44 base_y: f64,
45 base_z: f64,
46 axis_x: f64,
47 axis_y: f64,
48 axis_z: f64,
49 radius: f64,
50 height: f64,
51) -> Result<String, JsValue> {
52 let solid = make_cylinder_brep(
53 Vec3::new(base_x, base_y, base_z),
54 Vec3::new(axis_x, axis_y, axis_z),
55 radius,
56 height,
57 )
58 .map_err(javascript_error)?;
59 serde_json::to_string(&solid).map_err(|error| javascript_error(error.to_string()))
60}
61
62#[wasm_bindgen]
63pub fn cone_brep_json(radius_bottom: f64, radius_top: f64, height: f64) -> Result<String, JsValue> {
64 let solid = make_cone_brep(
65 Vec3::default(),
66 Vec3::new(0.0, 1.0, 0.0),
67 radius_bottom,
68 radius_top,
69 height,
70 )
71 .map_err(javascript_error)?;
72 serde_json::to_string(&solid).map_err(|error| javascript_error(error.to_string()))
73}
74
75#[wasm_bindgen]
76pub fn sphere_brep_json(radius: f64) -> Result<String, JsValue> {
77 let solid = make_sphere_brep(Vec3::default(), radius, Vec3::new(0.0, 1.0, 0.0))
78 .map_err(javascript_error)?;
79 serde_json::to_string(&solid).map_err(|error| javascript_error(error.to_string()))
80}
81
82#[wasm_bindgen]
86pub fn import_step_json(step_text: &str) -> Result<String, JsValue> {
87 let solids = import_step(step_text).map_err(javascript_error)?;
88 serde_json::to_string(&solids).map_err(|error| javascript_error(error.to_string()))
89}
90
91#[wasm_bindgen]
92pub fn torus_brep_json(major_radius: f64, minor_radius: f64) -> Result<String, JsValue> {
93 let solid = make_torus_brep(
94 Vec3::default(),
95 Vec3::new(0.0, 1.0, 0.0),
96 major_radius,
97 minor_radius,
98 )
99 .map_err(javascript_error)?;
100 serde_json::to_string(&solid).map_err(|error| javascript_error(error.to_string()))
101}