Trait truck_geometry::base::traits::ParametricSurface

source ·
pub trait ParametricSurface: Clone {
    type Point;
    type Vector;

    // Required methods
    fn subs(&self, u: f64, v: f64) -> Self::Point;
    fn uder(&self, u: f64, v: f64) -> Self::Vector;
    fn vder(&self, u: f64, v: f64) -> Self::Vector;
    fn uuder(&self, u: f64, v: f64) -> Self::Vector;
    fn uvder(&self, u: f64, v: f64) -> Self::Vector;
    fn vvder(&self, u: f64, v: f64) -> Self::Vector;

    // Provided methods
    fn parameter_range(
        &self,
    ) -> ((Bound<f64>, Bound<f64>), (Bound<f64>, Bound<f64>)) { ... }
    fn try_range_tuple(&self) -> (Option<(f64, f64)>, Option<(f64, f64)>) { ... }
    fn u_period(&self) -> Option<f64> { ... }
    fn v_period(&self) -> Option<f64> { ... }
}
Expand description

Parametric surface

Required Associated Types§

source

type Point

The surface is in the space of Self::Point.

source

type Vector

The derivation vector of the curve.

Required Methods§

source

fn subs(&self, u: f64, v: f64) -> Self::Point

Substitutes the parameter (u, v).

source

fn uder(&self, u: f64, v: f64) -> Self::Vector

Returns the derivation by u.

source

fn vder(&self, u: f64, v: f64) -> Self::Vector

Returns the derivation by v.

source

fn uuder(&self, u: f64, v: f64) -> Self::Vector

Returns the 2nd-order derivation by u.

source

fn uvder(&self, u: f64, v: f64) -> Self::Vector

Returns the 2nd-order derivation by both u and v.

source

fn vvder(&self, u: f64, v: f64) -> Self::Vector

Returns the 2nd-order derivation by v.

Provided Methods§

source

fn parameter_range( &self, ) -> ((Bound<f64>, Bound<f64>), (Bound<f64>, Bound<f64>))

The range of the parameter of the surface.

source

fn try_range_tuple(&self) -> (Option<(f64, f64)>, Option<(f64, f64)>)

Return the ends of parameter_range by tuple. If the range is unbounded, return `None``.

source

fn u_period(&self) -> Option<f64>

None in default; Some(period) if periodic w.r.t. parameter u.

source

fn v_period(&self) -> Option<f64>

None in default; Some(period) if periodic w.r.t. parameter v.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl ParametricSurface for ()

Implementation for the test of topological methods.

source§

type Point = ()

source§

type Vector = ()

source§

fn subs(&self, _: f64, _: f64) -> <() as ParametricSurface>::Point

source§

fn uder(&self, _: f64, _: f64) -> <() as ParametricSurface>::Vector

source§

fn vder(&self, _: f64, _: f64) -> <() as ParametricSurface>::Vector

source§

fn uuder(&self, _: f64, _: f64) -> <() as ParametricSurface>::Vector

source§

fn uvder(&self, _: f64, _: f64) -> <() as ParametricSurface>::Vector

source§

fn vvder(&self, _: f64, _: f64) -> <() as ParametricSurface>::Vector

source§

fn parameter_range( &self, ) -> ((Bound<f64>, Bound<f64>), (Bound<f64>, Bound<f64>))

source§

impl<'a, S> ParametricSurface for &'a S

source§

impl<S> ParametricSurface for Box<S>

source§

type Point = <S as ParametricSurface>::Point

source§

type Vector = <S as ParametricSurface>::Vector

source§

fn subs(&self, u: f64, v: f64) -> <Box<S> as ParametricSurface>::Point

source§

fn uder(&self, u: f64, v: f64) -> <Box<S> as ParametricSurface>::Vector

source§

fn vder(&self, u: f64, v: f64) -> <Box<S> as ParametricSurface>::Vector

source§

fn uuder(&self, u: f64, v: f64) -> <Box<S> as ParametricSurface>::Vector

source§

fn uvder(&self, u: f64, v: f64) -> <Box<S> as ParametricSurface>::Vector

source§

fn vvder(&self, u: f64, v: f64) -> <Box<S> as ParametricSurface>::Vector

source§

fn parameter_range( &self, ) -> ((Bound<f64>, Bound<f64>), (Bound<f64>, Bound<f64>))

source§

fn u_period(&self) -> Option<f64>

source§

fn v_period(&self) -> Option<f64>

Implementors§