webots-proto-schema 0.1.2

Versioned schemas, typed nodes, and validation for Webots PROTO.
Documentation
use super::Node;
use crate::types::*;
use derive_new::new;
use derive_setters::Setters;
use serde::{Deserialize, Serialize};

define_node!(
    /// The `Shape` node is the fundamental visual node in VRML/Webots.
    ///
    /// See [Webots Reference](https://cyberbotics.com/doc/reference/shape?version=R2025a).
    Shape {
    /// Default: NULL
    appearance: Box<Node>,
    /// Default: NULL
    geometry: Box<Node>,
    /// Default: TRUE
    cast_shadows: SFBool,
    /// Default: TRUE
    is_pickable: SFBool,
});

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_shape_new() {
        let shape = Shape::new();
        assert!(shape.cast_shadows.is_none());
    }
}