From 1871f6cae44565f6658fa3671a88a2c7fad8a69e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20R=C3=B6ger?= Date: Sat, 11 Jan 2025 16:33:05 +0100 Subject: [PATCH] feat(rtlisp): clean up rt lisp functions - sin/cos - scene-add proxy --- src/raytracer/lisp.rs | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/raytracer/lisp.rs b/src/raytracer/lisp.rs index b83ee64..aee6e60 100644 --- a/src/raytracer/lisp.rs +++ b/src/raytracer/lisp.rs @@ -165,6 +165,16 @@ pub fn render( } } +#[native_lisp_function(eval)] +pub fn sin(x: f64) -> Result { + Ok(x.sin()) +} + +#[native_lisp_function(eval)] +pub fn cos(x: f64) -> Result { + Ok(x.cos()) +} + #[native_lisp_function] pub fn vadd_vv( a: ForeignDataWrapper, @@ -261,16 +271,11 @@ pub fn mk_raytrace(layer: &mut EnvironmentLayer) { ); layer.set("sphere".to_string(), Expression::Function(sphere)); layer.set("scene".to_string(), Expression::Function(scene)); - layer.set( - "scene-add-object".to_string(), - Expression::Function(scene_add_object), - ); - layer.set( - "scene-add-light".to_string(), - Expression::Function(scene_add_light), - ); + layer.set("scene-add".to_string(), Expression::Function(scene_add)); layer.set("camera".to_string(), Expression::Function(camera)); layer.set("render".to_string(), Expression::Function(render)); + layer.set("sin".to_string(), Expression::Function(sin)); + layer.set("cos".to_string(), Expression::Function(cos)); layer.set("vadd".to_string(), Expression::Function(vadd)); layer.set("vsub".to_string(), Expression::Function(vsub)); layer.set("vmul".to_string(), Expression::Function(vmul));