Skip to main content

BlendedSpace

Struct BlendedSpace 

Source
pub struct BlendedSpace<A, B, F>
where A: Space<Point = Vec3, Vector = Vec3>, B: Space<Point = Vec3, Vector = Vec3>, F: BlendingField,
{ pub a: A, pub b: B, pub field: F, }
Expand description

Metric g = (1 − α)·g_A + α·g_B, with a spatially varying BlendingField.

Fields§

§a: A§b: B§field: F

Implementations§

Source§

impl<A, B, F> BlendedSpace<A, B, F>
where A: Space<Point = Vec3, Vector = Vec3>, B: Space<Point = Vec3, Vector = Vec3>, F: BlendingField,

Source

pub fn new(a: A, b: B, field: F) -> Self

Trait Implementations§

Source§

impl<A, B, F> ConformallyFlat for BlendedSpace<A, B, F>
where A: Space<Point = Vec3, Vector = Vec3> + ConformallyFlat, B: Space<Point = Vec3, Vector = Vec3> + ConformallyFlat, F: BlendingField,

Source§

fn conformal_factor(&self, p: Vec3) -> f32

May return f32::INFINITY at the chart boundary.
Source§

fn conformal_log_half_gradient(&self, p: Vec3) -> Vec3

Source§

fn scalar_curvature(&self, p: Vec3) -> f32

R = −(4/f)·[∇²φ + |∇φ|²/2]; the default is finite-difference.
Source§

fn conformal_log_half(&self, p: Vec3) -> f32

Source§

impl<A, B, F> Space for BlendedSpace<A, B, F>
where A: Space<Point = Vec3, Vector = Vec3> + ConformallyFlat, B: Space<Point = Vec3, Vector = Vec3> + ConformallyFlat, F: BlendingField,

Source§

type Point = Vec3

Source§

type Vector = Vec3

Source§

type Frame = Mat3

Source§

fn frame_at(&self, at: Vec3) -> Mat3

Source§

fn distance(&self, a: Vec3, b: Vec3) -> f32

Source§

fn exp(&self, at: Vec3, v: Vec3) -> Vec3

Advances for unit time along the geodesic with initial velocity v.
Source§

fn log(&self, from: Vec3, to: Vec3) -> Vec3

Source§

fn parallel_transport(&self, from: Vec3, to: Vec3, v: Vec3) -> Vec3

Source§

fn chart_envelope(&self) -> f32

Geodesic distance from the chart origin beyond which Self::valid_point refuses a point.
Source§

fn valid_point(&self, p: Vec3) -> bool

Finite, inside the chart, and within Self::chart_envelope of the origin.
Source§

fn parallel_transport_along( &self, path: &[Self::Point], v: Self::Vector, ) -> Self::Vector

Composes transport along consecutive points; fewer than two points leave v unchanged.
Source§

fn is_chart_flat(&self) -> bool

True when chart arithmetic respects the global geometry, including identifications.
Source§

impl WgslSpace for BlendedSpace<EuclideanR3, HyperbolicH3, LinearBlendX>

Source§

fn wgsl_impl(&self) -> Cow<'static, str>

Emits loam_distance, loam_origin_distance, loam_exp, loam_log, loam_geodesic_step, and LOAM_MAX_ARC over the space’s point type.
Source§

fn wgsl_accuracy(&self) -> WgslAccuracy

Auto Trait Implementations§

§

impl<A, B, F> Freeze for BlendedSpace<A, B, F>
where A: Freeze, B: Freeze, F: Freeze,

§

impl<A, B, F> RefUnwindSafe for BlendedSpace<A, B, F>

§

impl<A, B, F> Send for BlendedSpace<A, B, F>
where A: Send, B: Send,

§

impl<A, B, F> Sync for BlendedSpace<A, B, F>
where A: Sync, B: Sync,

§

impl<A, B, F> Unpin for BlendedSpace<A, B, F>
where A: Unpin, B: Unpin, F: Unpin,

§

impl<A, B, F> UnsafeUnpin for BlendedSpace<A, B, F>

§

impl<A, B, F> UnwindSafe for BlendedSpace<A, B, F>
where A: UnwindSafe, B: UnwindSafe, F: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more