Trait truck_rendimpl::modeling::Surface[]

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

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

type Vector

The derivation vector of the curve.

type Curve: Curve

The boundary curve

Loading content...

Required methods

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

Substitutes the parameter (u, v).

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

Returns the derivation by u.

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

Returns the derivation by v.

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

Returns the normal vector at (u, v).

pub fn parameter_range(&self) -> ((f64, f64), (f64, f64))

The range of the parameter of the surface.

pub fn inverse(&self) -> Self

Returns the inverse of the surface.

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

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

Loading content...

Implementations on Foreign Types

impl Surface for ()

Implementation for the test of topological methods.

type Point = ()

type Vector = ()

type Curve = ()

impl Surface for BSplineSurface<Vector2<f64>>

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

zero identity

impl Surface for BSplineSurface<Vector3<f64>>

type Point = Point3<f64>

type Vector = Vector3<f64>

type Curve = BSplineCurve<Vector3<f64>>

impl Surface for NURBSSurface<Vector3<f64>>

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

zero identity

impl Surface for NURBSSurface<Vector4<f64>>

type Point = Point3<f64>

type Vector = Vector3<f64>

type Curve = NURBSCurve<Vector4<f64>>

Loading content...

Implementors

Loading content...