Trait implicit3d::Object
[−]
[src]
pub trait Object<S: Real + Float + From<f32>>: ObjectClone<S> + Debug + Sync + Send { fn bbox(&self) -> &BoundingBox<S>; fn set_bbox(&mut self, _: BoundingBox<S>) { ... } fn set_parameters(&mut self, _: &PrimitiveParameters<S>) { ... } fn approx_value(&self, _: Point3<S>, _: S) -> S { ... } fn normal(&self, _: Point3<S>) -> Vector3<S> { ... } fn translate(&self, v: Vector3<S>) -> Box<Object<S>> { ... } fn rotate(&self, r: Vector3<S>) -> Box<Object<S>> { ... } fn scale(&self, s: Vector3<S>) -> Box<Object<S>> { ... } }
Object is the basic trait for any 3d implicit function.
Required Methods
fn bbox(&self) -> &BoundingBox<S>
Get the Bounding Box of this Object.
Provided Methods
fn set_bbox(&mut self, _: BoundingBox<S>)
Explicitly set the Bounding Box.
fn set_parameters(&mut self, _: &PrimitiveParameters<S>)
Allows to set parameters.
fn approx_value(&self, _: Point3<S>, _: S) -> S
Value is 0 on object surfaces, negative inside and positive outside of objects. If positive, value is guarateed to be the minimum distance to the object surface. return some approximation (which is always larger then the proper value). Only do a proper calculation, for values smaller then slack.
fn normal(&self, _: Point3<S>) -> Vector3<S>
Evaluate the normal of self
at the given point.
ⓘImportant traits for Box<W>
fn translate(&self, v: Vector3<S>) -> Box<Object<S>>
Return a translated version of self
.
ⓘImportant traits for Box<W>
fn rotate(&self, r: Vector3<S>) -> Box<Object<S>>
Return a rotated version of self
.
ⓘImportant traits for Box<W>
fn scale(&self, s: Vector3<S>) -> Box<Object<S>>
Return a scaled version of self
.
Implementors
impl<S: Real + Float + From<f32>> Object<S> for AffineTransformer<S>
impl<S: Real + From<f32> + Float + FloatConst> Object<S> for Twister<S>
impl<S: Real + From<f32> + Float + FloatConst> Object<S> for Bender<S>
impl<S: Real + From<f32> + Float> Object<S> for Union<S>
impl<S: Real + From<f32> + Float> Object<S> for Intersection<S>
impl<S: Debug + Real + Float + From<f32>> Object<S> for Sphere<S>
impl<S: Debug + Real + From<f32> + Float> Object<S> for Cylinder<S>
impl<S: Debug + Real + From<f32> + Float> Object<S> for Cone<S>
impl<S: Real + Float + From<f64> + From<f32>> Object<S> for Mesh<S>