pub struct UserGeometry { /* private fields */ }

Implementations§

source§

impl UserGeometry

source

pub fn try_new<T>( device: &Device, data: &T, bounds_fn: unsafe extern "C" fn(args: *const RTCBoundsFunctionArguments), intersect_fn: unsafe extern "C" fn(args: *const RTCIntersectFunctionNArguments), occluded_fn: unsafe extern "C" fn(_args: *const RTCOccludedFunctionNArguments) ) -> Result<Self>

Creates a new UserGeometry object.

Arguments
  • device - The Embree device.
  • data - The user-defined data associated with the geometry.
  • bounds_fn - The function pointer to the bounds function.
  • intersect_fn - The function pointer to the intersect function.
  • occluded_fn - The function pointer to the occluded function.
Returns

A Result containing the UserGeometry object if successful, or an anyhow::Error if an error occurred.

Examples found in repository?
examples/user_geom.rs (line 19)
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
fn main() -> Result<()> {
    let config = Some("verbose=1");
    let device = Device::try_new(config)?;
    let scene = Scene::try_new(&device, Default::default())?;

    // For user geometry, the data must outlive the scene.
    let sphere = Sphere {
        center: (0.0, 0.0, 4.0),
        radius: 1.0,
    };
    let geom = UserGeometry::try_new(&device, &sphere, bounds_fn, intersect_fn, occluded_fn)?;

    scene.attach_geometry(&geom)?;

    let _scene = scene.commit()?;

    Ok(())
}

Trait Implementations§

source§

impl Drop for UserGeometry

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl Geometry for UserGeometry

source§

fn geometry(&self) -> RTCGeometry

Returns the handle of the geometry.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.