pub struct Point<T: CoordinateScalar, const D: usize, Cs: CoordinateSystem = Cartesian> { /* private fields */ }Expand description
Default Point — a [T; D] array plus a phantom CS tag.
Mirrors boost::geometry::model::point<CoordinateType, DimensionCount, CoordinateSystem> from boost/geometry/geometries/point.hpp. The
#[repr(transparent)] annotation guarantees the in-memory layout
matches the underlying [T; D], so callers can safely treat the
point as an array of coordinates when interfacing with FFI or SIMD
code — the same invariant Boost relies on for its
m_values[DimensionCount] member.
Implementations§
Source§impl<T: CoordinateScalar, Cs: CoordinateSystem> Point<T, 1, Cs>
impl<T: CoordinateScalar, Cs: CoordinateSystem> Point<T, 1, Cs>
Source§impl<T: CoordinateScalar, Cs: CoordinateSystem> Point<T, 2, Cs>
impl<T: CoordinateScalar, Cs: CoordinateSystem> Point<T, 2, Cs>
Source§impl<T: CoordinateScalar, Cs: CoordinateSystem> Point<T, 3, Cs>
impl<T: CoordinateScalar, Cs: CoordinateSystem> Point<T, 3, Cs>
Trait Implementations§
Source§impl<T: Clone + CoordinateScalar, const D: usize, Cs: Clone + CoordinateSystem> Clone for Point<T, D, Cs>
impl<T: Clone + CoordinateScalar, const D: usize, Cs: Clone + CoordinateSystem> Clone for Point<T, D, Cs>
impl<T: Copy + CoordinateScalar, const D: usize, Cs: Copy + CoordinateSystem> Copy for Point<T, D, Cs>
Source§impl<T: Debug + CoordinateScalar, const D: usize, Cs: Debug + CoordinateSystem> Debug for Point<T, D, Cs>
impl<T: Debug + CoordinateScalar, const D: usize, Cs: Debug + CoordinateSystem> Debug for Point<T, D, Cs>
Source§impl<T: CoordinateScalar, const D: usize, Cs: CoordinateSystem> Default for Point<T, D, Cs>
impl<T: CoordinateScalar, const D: usize, Cs: CoordinateSystem> Default for Point<T, D, Cs>
impl<T: Eq + CoordinateScalar, const D: usize, Cs: Eq + CoordinateSystem> Eq for Point<T, D, Cs>
Source§impl<T: CoordinateScalar, const D: usize, Cs: CoordinateSystem> Geometry for Point<T, D, Cs>
Tag this concrete type as a Point. Mirrors the
traits::tag<model::point<...>> specialisation at
boost/geometry/geometries/point.hpp:241-244.
impl<T: CoordinateScalar, const D: usize, Cs: CoordinateSystem> Geometry for Point<T, D, Cs>
Tag this concrete type as a Point. Mirrors the
traits::tag<model::point<...>> specialisation at
boost/geometry/geometries/point.hpp:241-244.
Source§impl<T: PartialEq + CoordinateScalar, const D: usize, Cs: PartialEq + CoordinateSystem> PartialEq for Point<T, D, Cs>
impl<T: PartialEq + CoordinateScalar, const D: usize, Cs: PartialEq + CoordinateSystem> PartialEq for Point<T, D, Cs>
Source§impl<T: CoordinateScalar, const D: usize, Cs: CoordinateSystem> Point for Point<T, D, Cs>
Wire the Point concept up. Collapses the four trait specialisations
at boost/geometry/geometries/point.hpp:246-299
(coordinate_type, coordinate_system, dimension, access)
into one Rust impl.
impl<T: CoordinateScalar, const D: usize, Cs: CoordinateSystem> Point for Point<T, D, Cs>
Wire the Point concept up. Collapses the four trait specialisations
at boost/geometry/geometries/point.hpp:246-299
(coordinate_type, coordinate_system, dimension, access)
into one Rust impl.