///|
// Represents an ORIENTED_EDGE entity.
// Example from simple-box.step:
// ORIENTED_EDGE('',*,*,#90,.T.)
// Note: STEP uses the 2nd and 3rd args for edge_start/edge_end; in the fixture these are `*`.
pub struct OrientedEdge {
name : String
edge_start : String
edge_end : String
edge_element : @step.Ref
orientation : Bool
}
///|
pub fn OrientedEdge::new(
name : String,
edge_start : String,
edge_end : String,
edge_element : @step.Ref,
orientation : Bool,
) -> OrientedEdge {
OrientedEdge::{ name, edge_start, edge_end, edge_element, orientation, }
}
///|
pub impl @step.Entity for OrientedEdge with fn to_step(self) {
let edge_element_str = "#\{self.edge_element.id.value}"
let ori_str = bool_to_step(self.orientation)
"ORIENTED_EDGE(\{step_str_or_dollar(self.name)},\{self.edge_start},\{self.edge_end},\{edge_element_str},\{ori_str})"
}