pub struct ElevationRequest { /* private fields */ }Expand description
A request for the area of an object’s elevation that its cover leaves uncovered.
The elevation is the object projected onto the vertical plane through
axis (a plan direction, normalised here): positions along the axis
against heights. Only the part of each cover object within the object’s
own depth across the axis, widened by along_growth_metres on both
sides, is projected; that projection is grown by along_growth_metres
along the axis and vertical_growth_metres in height.
frame objects cover by the frame they form, not by their bodies: the
convex hull of their projected parts (a column at each end and a beam
over them enclose the bay between), grown the same way. An empty frame
adds nothing.
Implementations§
Source§impl ElevationRequest
impl ElevationRequest
Sourcepub fn try_new(
object: ObjectId,
axis: [f64; 2],
cover: &[ObjectId],
frame: &[ObjectId],
along_growth_metres: f64,
vertical_growth_metres: f64,
) -> Result<Self, PlanAreaError>
pub fn try_new( object: ObjectId, axis: [f64; 2], cover: &[ObjectId], frame: &[ObjectId], along_growth_metres: f64, vertical_growth_metres: f64, ) -> Result<Self, PlanAreaError>
The request, its cover and frame sorted and without repeats.
Refuses an axis that is not a finite plan direction, a growth that is negative or not finite, and an object in its own cover or frame.
Sourcepub fn along_growth_metres(&self) -> f64
pub fn along_growth_metres(&self) -> f64
Growth along the axis, and the depth added across it on each side.
Sourcepub fn vertical_growth_metres(&self) -> f64
pub fn vertical_growth_metres(&self) -> f64
Growth in height.