kcl-lib 0.2.186

KittyCAD Language implementation and tools
Documentation
use super::types::SketchVisualizationError;
use super::types::SketchVisualizationPoint;
use crate::front::Number;
use crate::front::Object;
use crate::front::ObjectId;
use crate::front::Point2d;

pub(super) fn object_by_id(scene_objects: &[Object], id: ObjectId) -> Result<&Object, SketchVisualizationError> {
    scene_objects
        .get(id.0)
        .filter(|object| object.id == id)
        .or_else(|| scene_objects.iter().find(|object| object.id == id))
        .ok_or(SketchVisualizationError::MissingObject { id: id.0 })
}

pub(super) fn position_to_point(point: &Point2d<Number>) -> SketchVisualizationPoint {
    SketchVisualizationPoint {
        x: point.x.value,
        y: point.y.value,
    }
}