///|
// Represents a SHELL_BASED_SURFACE_MODEL entity.
// Example:
// SHELL_BASED_SURFACE_MODEL('name', (#10, #20))
// where #10 and #20 are OPEN_SHELL or CLOSED_SHELL entities.
pub struct ShellBasedSurfaceModel {
name : String
sbsm_boundary : Array[@step.Ref]
}
///|
pub fn ShellBasedSurfaceModel::new(
name : String,
sbsm_boundary : Array[@step.Ref],
) -> ShellBasedSurfaceModel {
ShellBasedSurfaceModel::{ name, sbsm_boundary, }
}
///|
pub impl @step.Entity for ShellBasedSurfaceModel with fn to_step(self) {
let bounds_str = self.sbsm_boundary.map(fn(r) { "#\{r.id.value}" }).join(",")
"SHELL_BASED_SURFACE_MODEL(\{@step.step_str(self.name)},(\{bounds_str}))"
}