pub struct Cone { /* private fields */ }Expand description
An unbounded circular cone.
The frame’s z is the axis and its origin sits on the reference circle, of
radius Cone::reference_radius. The radius grows in +z for a positive
half angle. The apex is the point where it reaches zero.
Implementations§
Source§impl Cone
impl Cone
Sourcepub fn new(
frame: Frame,
reference_radius: f64,
half_angle: f64,
tol: Tolerances,
) -> OgeomResult<Self>
pub fn new( frame: Frame, reference_radius: f64, half_angle: f64, tol: Tolerances, ) -> OgeomResult<Self>
A cone with the given reference radius and half angle.
The reference circle lies in frame’s xy plane. A positive half angle
widens the cone in +z.
§Errors
OgeomError::Construction if
reference_radius is negative or non-finite, or if half_angle is not
strictly between 0 and pi/2. At zero the cone is a cylinder and at
pi/2 it is a plane; both are different surfaces with their own types,
and admitting them here would produce a cone whose apex is at infinity.
Sourcepub const fn reference_radius(&self) -> f64
pub const fn reference_radius(&self) -> f64
The radius of the circle in the frame’s xy plane.
Sourcepub const fn half_angle(&self) -> f64
pub const fn half_angle(&self) -> f64
The half angle at the apex, in (0, pi/2).
Sourcepub fn radius_at(&self, z: f64) -> f64
pub fn radius_at(&self, z: f64) -> f64
The radius at signed distance z along the axis from the frame origin.
Sourcepub fn distance_to(&self, p: Point) -> f64
pub fn distance_to(&self, p: Point) -> f64
The distance from p to the surface, ignoring the far nappe.
A double cone extends both sides of its apex; this measures to the surface as a whole, which is what a surface query means.
Sourcepub fn contains(&self, p: Point, tol: Tolerances) -> bool
pub fn contains(&self, p: Point, tol: Tolerances) -> bool
Whether p lies on the surface within tol.confusion().
Sourcepub fn transformed(&self, t: &Transform, tol: Tolerances) -> OgeomResult<Self>
pub fn transformed(&self, t: &Transform, tol: Tolerances) -> OgeomResult<Self>
Trait Implementations§
impl Copy for Cone
impl StructuralPartialEq for Cone
Auto Trait Implementations§
impl Freeze for Cone
impl RefUnwindSafe for Cone
impl Send for Cone
impl Sync for Cone
impl Unpin for Cone
impl UnsafeUnpin for Cone
impl UnwindSafe for Cone
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> Scalar for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.