pub enum Membership {
Circular {
radius: Angle,
},
Rectangle {
fov: (Angle, Angle),
},
Rotated {
fov: (Angle, Angle),
position_angle: Angle,
},
}Expand description
The shape that decides whether an object is “in frame”.
Usually built for you by a Constraint constructor; pass one directly to
is_framed to test a single object.
§Example
use skymath::{Angle, Equatorial, ParseMode};
use target_match::{is_framed, Membership, SkyObject};
struct Target {
ra: f64,
dec: f64,
}
impl SkyObject for Target {
fn position(&self) -> Equatorial {
Equatorial::j2000(Angle::from_degrees(self.ra), Angle::from_degrees(self.dec)).unwrap()
}
}
let m31 = Target { ra: 10.6847, dec: 41.2688 };
let pointing = Equatorial::parse_j2000("00:42:44.3", "+41:16:09", ParseMode::Strict).unwrap();
let shape = Membership::Circular { radius: Angle::from_degrees(1.0) };
assert!(is_framed(pointing, &m31, shape).in_frame);Variants§
Circular
Pure angular distance: in frame iff separation ≤ radius.
Rectangle
Axis-aligned rectangle of the given width×height field of view.
Rotated
Rectangle rotated by a camera position angle (degrees East of North).
Trait Implementations§
Source§impl Clone for Membership
impl Clone for Membership
Source§fn clone(&self) -> Membership
fn clone(&self) -> Membership
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for Membership
Source§impl Debug for Membership
impl Debug for Membership
Source§impl<'de> Deserialize<'de> for Membership
impl<'de> Deserialize<'de> for Membership
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for Membership
impl PartialEq for Membership
Source§impl Serialize for Membership
impl Serialize for Membership
impl StructuralPartialEq for Membership
Auto Trait Implementations§
impl Freeze for Membership
impl RefUnwindSafe for Membership
impl Send for Membership
impl Sync for Membership
impl Unpin for Membership
impl UnsafeUnpin for Membership
impl UnwindSafe for Membership
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
Mutably borrows from an owned value. Read more