pub trait Deformation {
// Required methods
fn point(&self, p: &Vector3) -> GeopResult<Vector3>;
fn curve(
&self,
curve: &NurbCurve3D,
at: &dyn Fn() -> GeopResult<Vector3>,
) -> GeopResult<NurbCurve3D>;
fn surface(
&self,
surface: &NurbSurface3D,
at: &dyn Fn() -> GeopResult<Vector3>,
) -> GeopResult<NurbSurface3D>;
fn mirrors(&self) -> bool;
fn affine(&self) -> bool;
}Expand description
A map of space as it moves geometry: points, curves and surfaces, each
keeping its parametrization, so a pcurve on a moved face still traces
it. at gives a point of the curve or of the face the surface bounds,
asked for only by a map made of pieces where the geometry’s control
points straddle two of them: the piece that holds at moves it.
Required Methods§
Sourcefn point(&self, p: &Vector3) -> GeopResult<Vector3>
fn point(&self, p: &Vector3) -> GeopResult<Vector3>
The point p moved.
Sourcefn curve(
&self,
curve: &NurbCurve3D,
at: &dyn Fn() -> GeopResult<Vector3>,
) -> GeopResult<NurbCurve3D>
fn curve( &self, curve: &NurbCurve3D, at: &dyn Fn() -> GeopResult<Vector3>, ) -> GeopResult<NurbCurve3D>
The curve curve moved.
Sourcefn surface(
&self,
surface: &NurbSurface3D,
at: &dyn Fn() -> GeopResult<Vector3>,
) -> GeopResult<NurbSurface3D>
fn surface( &self, surface: &NurbSurface3D, at: &dyn Fn() -> GeopResult<Vector3>, ) -> GeopResult<NurbSurface3D>
The surface surface moved.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".