diff --git a/src/nodes/field.rs b/src/nodes/field.rs index 941cc69..6aec116 100644 --- a/src/nodes/field.rs +++ b/src/nodes/field.rs @@ -169,6 +169,10 @@ impl BoxField { node.borrow().spatial.is_some(), "Node does not have a spatial attached!" ); + ensure!( + node.borrow().field.is_none(), + "Node already has a field attached!" + ); let box_field = BoxField { space: node.borrow().spatial.as_ref().unwrap().clone(), size: Cell::new(size), @@ -226,6 +230,10 @@ impl CylinderField { node.borrow().spatial.is_some(), "Node does not have a spatial attached!" ); + ensure!( + node.borrow().field.is_none(), + "Node already has a field attached!" + ); let cylinder_field = CylinderField { space: node.borrow().spatial.as_ref().unwrap().clone(), length: Cell::new(length), @@ -289,6 +297,10 @@ impl SphereField { node.borrow().spatial.is_some(), "Node does not have a spatial attached!" ); + ensure!( + node.borrow().field.is_none(), + "Node already has a field attached!" + ); let sphere_field = SphereField { space: node.borrow().spatial.as_ref().unwrap().clone(), radius: Cell::new(radius),