Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
rtcore_geometry_user.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

typedef void(* RTCBoundsFunc) (void *ptr, size_t item, RTCBounds &bounds_o)
 
typedef void(* RTCBoundsFunc2) (void *userPtr, void *geomUserPtr, size_t item, RTCBounds *bounds_o)
 
typedef void(* RTCIntersectFunc) (void *ptr, RTCRay &ray, size_t item)
 
typedef void(* RTCIntersectFunc4) (const void *valid, void *ptr, RTCRay4 &ray, size_t item)
 
typedef void(* RTCIntersectFunc8) (const void *valid, void *ptr, RTCRay8 &ray, size_t item)
 
typedef void(* RTCIntersectFunc16) (const void *valid, void *ptr, RTCRay16 &ray, size_t item)
 
typedef void(* RTCOccludedFunc) (void *ptr, RTCRay &ray, size_t item)
 
typedef void(* RTCOccludedFunc4) (const void *valid, void *ptr, RTCRay4 &ray, size_t item)
 
typedef void(* RTCOccludedFunc8) (const void *valid, void *ptr, RTCRay8 &ray, size_t item)
 
typedef void(* RTCOccludedFunc16) (const void *valid, void *ptr, RTCRay16 &ray, size_t item)
 
RTCORE_API unsigned rtcNewUserGeometry (RTCScene scene, size_t numGeometries)
 
RTCORE_API unsigned rtcNewUserGeometry2 (RTCScene scene, size_t numGeometries, size_t numTimeSteps=1)
 
RTCORE_API void rtcSetBoundsFunction (RTCScene scene, unsigned geomID, RTCBoundsFunc bounds)
 
RTCORE_API void rtcSetBoundsFunction2 (RTCScene scene, unsigned geomID, RTCBoundsFunc2 bounds, void *userPtr)
 
RTCORE_API void rtcSetIntersectFunction (RTCScene scene, unsigned geomID, RTCIntersectFunc intersect)
 
RTCORE_API void rtcSetIntersectFunction4 (RTCScene scene, unsigned geomID, RTCIntersectFunc4 intersect4)
 
RTCORE_API void rtcSetIntersectFunction8 (RTCScene scene, unsigned geomID, RTCIntersectFunc8 intersect8)
 
RTCORE_API void rtcSetIntersectFunction16 (RTCScene scene, unsigned geomID, RTCIntersectFunc16 intersect16)
 
RTCORE_API void rtcSetOccludedFunction (RTCScene scene, unsigned geomID, RTCOccludedFunc occluded)
 
RTCORE_API void rtcSetOccludedFunction4 (RTCScene scene, unsigned geomID, RTCOccludedFunc4 occluded4)
 
RTCORE_API void rtcSetOccludedFunction8 (RTCScene scene, unsigned geomID, RTCOccludedFunc8 occluded8)
 
RTCORE_API void rtcSetOccludedFunction16 (RTCScene scene, unsigned geomID, RTCOccludedFunc16 occluded16)
 

Typedef Documentation

◆ RTCBoundsFunc

typedef void(* RTCBoundsFunc) (void *ptr, size_t item, RTCBounds &bounds_o)

Type of bounding function.

Parameters
ptrpointer to user data
itemitem to calculate bounds for
bounds_oreturns calculated bounds

◆ RTCBoundsFunc2

typedef void(* RTCBoundsFunc2) (void *userPtr, void *geomUserPtr, size_t item, RTCBounds *bounds_o)

Type of bounding function.

Parameters
userPtrpointer to user data
geomUserPtrpointer to geometry user data
itemitem to calculate bounds for
bounds_oreturns calculated bounds

◆ RTCIntersectFunc

typedef void(* RTCIntersectFunc) (void *ptr, RTCRay &ray, size_t item)

Type of intersect function pointer for single rays.

Parameters
ptrpointer to user data
rayray to intersect
itemitem to intersect

◆ RTCIntersectFunc16

typedef void(* RTCIntersectFunc16) (const void *valid, void *ptr, RTCRay16 &ray, size_t item)

Type of intersect function pointer for ray packets of size 16.

Parameters
validpointer to valid mask
ptrpointer to user data
rayray packet to intersect
itemitem to intersect

◆ RTCIntersectFunc4

typedef void(* RTCIntersectFunc4) (const void *valid, void *ptr, RTCRay4 &ray, size_t item)

Type of intersect function pointer for ray packets of size 4.

Parameters
validpointer to valid mask
ptrpointer to user data
rayray packet to intersect
itemitem to intersect

◆ RTCIntersectFunc8

typedef void(* RTCIntersectFunc8) (const void *valid, void *ptr, RTCRay8 &ray, size_t item)

Type of intersect function pointer for ray packets of size 8.

Parameters
validpointer to valid mask
ptrpointer to user data
rayray packet to intersect
itemitem to intersect

◆ RTCOccludedFunc

typedef void(* RTCOccludedFunc) (void *ptr, RTCRay &ray, size_t item)

Type of occlusion function pointer for single rays.

Parameters
ptrpointer to user data
rayray to test occlusion
itemitem to test for occlusion

◆ RTCOccludedFunc16

typedef void(* RTCOccludedFunc16) (const void *valid, void *ptr, RTCRay16 &ray, size_t item)

Type of occlusion function pointer for ray packets of size 16.

Parameters
ptrpointer to valid mask pointer to user data
rayRay packet to test occlusion.
itemitem to test for occlusion

◆ RTCOccludedFunc4

typedef void(* RTCOccludedFunc4) (const void *valid, void *ptr, RTCRay4 &ray, size_t item)

Type of occlusion function pointer for ray packets of size 4.

Parameters
ptrpointer to valid mask pointer to user data
rayRay packet to test occlusion.
itemitem to test for occlusion

◆ RTCOccludedFunc8

typedef void(* RTCOccludedFunc8) (const void *valid, void *ptr, RTCRay8 &ray, size_t item)

Type of occlusion function pointer for ray packets of size 8.

Parameters
ptrpointer to valid mask pointer to user data
rayRay packet to test occlusion.
itemitem to test for occlusion

Function Documentation

◆ rtcNewUserGeometry()

RTCORE_API unsigned rtcNewUserGeometry ( RTCScene  scene,
size_t  numGeometries 
)

Creates a new user geometry object. This feature makes it possible to add arbitrary types of geometry to the scene by providing appropiate bounding, intersect and occluded functions. A user geometry object is a set of user geometries. As the rtcIntersect and rtcOccluded functions support different ray packet sizes, the user also has to provide different versions of intersect and occluded function pointers for these packet sizes. However, the ray packet size of the called function pointer always matches the packet size of the originally invoked rtcIntersect and rtcOccluded functions. A user data pointer, that points to a user specified representation of the geometry, is passed to each intersect and occluded function invokation, as well as the index of the geometry of the set to intersect.

Parameters
scenethe scene the user geometry set is created in
numGeometriesthe number of geometries contained in the set

◆ rtcNewUserGeometry2()

RTCORE_API unsigned rtcNewUserGeometry2 ( RTCScene  scene,
size_t  numGeometries,
size_t  numTimeSteps = 1 
)
Parameters
scenethe scene the user geometry set is created in
numGeometriesthe number of geometries contained in the set
numTimeStepsnumber of motion blur time steps

◆ rtcSetBoundsFunction()

RTCORE_API void rtcSetBoundsFunction ( RTCScene  scene,
unsigned  geomID,
RTCBoundsFunc  bounds 
)

Sets the bounding function to calculate bounding boxes of the user geometry items when building spatial index structures. The calculated bounding box have to be conservative and should be tight.

◆ rtcSetBoundsFunction2()

RTCORE_API void rtcSetBoundsFunction2 ( RTCScene  scene,
unsigned  geomID,
RTCBoundsFunc2  bounds,
void userPtr 
)

Sets the bounding function to calculate bounding boxes of the user geometry items when building spatial index structures. The calculated bounding box have to be conservative and should be tight.

◆ rtcSetIntersectFunction()

RTCORE_API void rtcSetIntersectFunction ( RTCScene  scene,
unsigned  geomID,
RTCIntersectFunc  intersect 
)

Set intersect function for single rays. The rtcIntersect function will call the passed function for intersecting the user geometry.

◆ rtcSetIntersectFunction16()

RTCORE_API void rtcSetIntersectFunction16 ( RTCScene  scene,
unsigned  geomID,
RTCIntersectFunc16  intersect16 
)

Set intersect function for ray packets of size 16. The rtcIntersect16 function will call the passed function for intersecting the user geometry.

◆ rtcSetIntersectFunction4()

RTCORE_API void rtcSetIntersectFunction4 ( RTCScene  scene,
unsigned  geomID,
RTCIntersectFunc4  intersect4 
)

Set intersect function for ray packets of size 4. The rtcIntersect4 function will call the passed function for intersecting the user geometry.

◆ rtcSetIntersectFunction8()

RTCORE_API void rtcSetIntersectFunction8 ( RTCScene  scene,
unsigned  geomID,
RTCIntersectFunc8  intersect8 
)

Set intersect function for ray packets of size 8. The rtcIntersect8 function will call the passed function for intersecting the user geometry.

◆ rtcSetOccludedFunction()

RTCORE_API void rtcSetOccludedFunction ( RTCScene  scene,
unsigned  geomID,
RTCOccludedFunc  occluded 
)

Set occlusion function for single rays. The rtcOccluded function will call the passed function for intersecting the user geometry.

◆ rtcSetOccludedFunction16()

RTCORE_API void rtcSetOccludedFunction16 ( RTCScene  scene,
unsigned  geomID,
RTCOccludedFunc16  occluded16 
)

Set occlusion function for ray packets of size 16. The rtcOccluded16 function will call the passed function for intersecting the user geometry.

◆ rtcSetOccludedFunction4()

RTCORE_API void rtcSetOccludedFunction4 ( RTCScene  scene,
unsigned  geomID,
RTCOccludedFunc4  occluded4 
)

Set occlusion function for ray packets of size 4. The rtcOccluded4 function will call the passed function for intersecting the user geometry.

◆ rtcSetOccludedFunction8()

RTCORE_API void rtcSetOccludedFunction8 ( RTCScene  scene,
unsigned  geomID,
RTCOccludedFunc8  occluded8 
)

Set occlusion function for ray packets of size 8. The rtcOccluded8 function will call the passed function for intersecting the user geometry.