diff --git a/docs/kcl/std.json b/docs/kcl/std.json index d1faedf6d..059740d4a 100644 --- a/docs/kcl/std.json +++ b/docs/kcl/std.json @@ -57252,6 +57252,62 @@ "unpublished": false, "deprecated": false }, + { + "name": "to_degrees", + "summary": "Converts a number from radians to degrees.", + "description": "", + "tags": [], + "args": [ + { + "name": "num", + "type": "number", + "schema": { + "type": "number", + "format": "double" + }, + "required": true + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "type": "number", + "format": "double" + }, + "required": true + }, + "unpublished": false, + "deprecated": false + }, + { + "name": "to_radians", + "summary": "Converts a number from degrees to radians.", + "description": "", + "tags": [], + "args": [ + { + "name": "num", + "type": "number", + "schema": { + "type": "number", + "format": "double" + }, + "required": true + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "type": "number", + "format": "double" + }, + "required": true + }, + "unpublished": false, + "deprecated": false + }, { "name": "xLine", "summary": "Draw a line on the x-axis.", diff --git a/docs/kcl/std.md b/docs/kcl/std.md index 548a04a83..fc3a9423c 100644 --- a/docs/kcl/std.md +++ b/docs/kcl/std.md @@ -65,6 +65,8 @@ * [`tangentialArc`](#tangentialArc) * [`tangentialArcTo`](#tangentialArcTo) * [`tau`](#tau) + * [`to_degrees`](#to_degrees) + * [`to_radians`](#to_radians) * [`xLine`](#xLine) * [`xLineTo`](#xLineTo) * [`yLine`](#yLine) @@ -10147,6 +10149,46 @@ tau() -> number +### to_degrees + +Converts a number from radians to degrees. + + + +``` +to_degrees(num: number) -> number +``` + +#### Arguments + +* `num`: `number` (REQUIRED) + +#### Returns + +* `number` + + + +### to_radians + +Converts a number from degrees to radians. + + + +``` +to_radians(num: number) -> number +``` + +#### Arguments + +* `num`: `number` (REQUIRED) + +#### Returns + +* `number` + + + ### xLine Draw a line on the x-axis. diff --git a/src/wasm-lib/kcl/src/std/math.rs b/src/wasm-lib/kcl/src/std/math.rs index 40530618b..91bec3731 100644 --- a/src/wasm-lib/kcl/src/std/math.rs +++ b/src/wasm-lib/kcl/src/std/math.rs @@ -375,3 +375,35 @@ pub async fn tau(args: Args) -> Result { fn inner_tau() -> Result { Ok(std::f64::consts::TAU) } + +/// Converts a number from degrees to radians. +pub async fn deg_to_rad(args: Args) -> Result { + let num = args.get_number()?; + let result = inner_deg_to_rad(num)?; + + args.make_user_val_from_f64(result) +} + +/// Converts a number from degrees to radians. +#[stdlib { + name = "to_radians", +}] +fn inner_deg_to_rad(num: f64) -> Result { + Ok(num.to_radians()) +} + +/// Converts a number from radians to degrees. +pub async fn rad_to_deg(args: Args) -> Result { + let num = args.get_number()?; + let result = inner_rad_to_deg(num)?; + + args.make_user_val_from_f64(result) +} + +/// Converts a number from radians to degrees. +#[stdlib { + name = "to_degrees", +}] +fn inner_rad_to_deg(num: f64) -> Result { + Ok(num.to_degrees()) +} diff --git a/src/wasm-lib/kcl/src/std/mod.rs b/src/wasm-lib/kcl/src/std/mod.rs index 4757701f5..1a21fa07e 100644 --- a/src/wasm-lib/kcl/src/std/mod.rs +++ b/src/wasm-lib/kcl/src/std/mod.rs @@ -100,6 +100,8 @@ lazy_static! { Box::new(crate::std::math::Log2), Box::new(crate::std::math::Log10), Box::new(crate::std::math::Ln), + Box::new(crate::std::math::ToDegrees), + Box::new(crate::std::math::ToRadians), ]; }