Struct embree4_rs::geometry::UserGeometry
source · pub struct UserGeometry { /* private fields */ }
Implementations§
source§impl UserGeometry
impl UserGeometry
sourcepub 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>
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
impl Drop for UserGeometry
source§impl Geometry for UserGeometry
impl Geometry for UserGeometry
source§fn geometry(&self) -> RTCGeometry
fn geometry(&self) -> RTCGeometry
Returns the handle of the geometry.
Auto Trait Implementations§
impl RefUnwindSafe for UserGeometry
impl !Send for UserGeometry
impl !Sync for UserGeometry
impl Unpin for UserGeometry
impl UnwindSafe for UserGeometry
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more