Trait truck_modeling::base::Surface[][src]

pub trait Surface: Clone {
    type Point;
    type Vector;
    type Curve: Curve;
    pub fn subs(&self, u: f64, v: f64) -> Self::Point;
pub fn uder(&self, u: f64, v: f64) -> Self::Vector;
pub fn vder(&self, u: f64, v: f64) -> Self::Vector;
pub fn normal(&self, u: f64, v: f64) -> Self::Vector;
pub fn parameter_range(&self) -> ((f64, f64), (f64, f64));
pub fn inverse(&self) -> Self;
pub fn include(&self, curve: &Self::Curve) -> bool; }

Parametric surface

Associated Types

type Point[src]

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

type Vector[src]

The derivation vector of the curve.

type Curve: Curve[src]

The boundary curve

Loading content...

Required methods

pub fn subs(&self, u: f64, v: f64) -> Self::Point[src]

Substitutes the parameter (u, v).

pub fn uder(&self, u: f64, v: f64) -> Self::Vector[src]

Returns the derivation by u.

pub fn vder(&self, u: f64, v: f64) -> Self::Vector[src]

Returns the derivation by v.

pub fn normal(&self, u: f64, v: f64) -> Self::Vector[src]

Returns the normal vector at (u, v).

pub fn parameter_range(&self) -> ((f64, f64), (f64, f64))[src]

The range of the parameter of the surface.

pub fn inverse(&self) -> Self[src]

Returns the inverse of the surface.

pub fn include(&self, curve: &Self::Curve) -> bool[src]

Returns whether the curve curve is included in the surface self.

Loading content...

Implementations on Foreign Types

impl Surface for ()[src]

Implementation for the test of topological methods.

type Point = ()

type Vector = ()

type Curve = ()

impl Surface for NURBSSurface<Vector3<f64>>[src]

type Point = Point2<f64>

type Vector = Vector2<f64>

type Curve = NURBSCurve<Vector3<f64>>

pub fn normal(
    &self,
    f64,
    f64
) -> <NURBSSurface<Vector3<f64>> as Surface>::Vector
[src]

zero identity

impl Surface for NURBSSurface<Vector4<f64>>[src]

type Point = Point3<f64>

type Vector = Vector3<f64>

type Curve = NURBSCurve<Vector4<f64>>

impl Surface for BSplineSurface<Vector2<f64>>[src]

type Point = Point2<f64>

type Vector = Vector2<f64>

type Curve = BSplineCurve<Vector2<f64>>

pub fn normal(
    &self,
    f64,
    f64
) -> <BSplineSurface<Vector2<f64>> as Surface>::Vector
[src]

zero identity

impl Surface for BSplineSurface<Vector3<f64>>[src]

type Point = Point3<f64>

type Vector = Vector3<f64>

type Curve = BSplineCurve<Vector3<f64>>

Loading content...

Implementors

Loading content...