use shared::core::{ light::Light, material::Material, medium::MediumInterface, primitive::{GeometricPrimitive, SimplePrimitive}, shape::Shape, }; use shared::utils::Ptr; pub trait CreateSimplePrimitive { fn new(shape: Ptr, material: Ptr) -> SimplePrimitive { SimplePrimitive { shape, material } } } impl CreateSimplePrimitive for SimplePrimitive {} pub trait CreateGeometricPrimitive { fn new( shape: Ptr, material: Ptr, area_light: Ptr, medium_interface: MediumInterface, alpha: Ptr, ) -> GeometricPrimitive { GeometricPrimitive { shape, material, area_light, medium_interface, alpha, } } } impl CreateGeometricPrimitive for GeometricPrimitive {}