MeVisLab Scripting Reference
|
#include <mlWEMBoundingVolumeHierarchyWrapper.h>
Inherits MLRefCountedBaseWrapper.
Public Types | |
enum | IntersectionMode { AllHits = ml::WEMIntersectionMode::AllHits , RemoveDuplicateHits = ml::WEMIntersectionMode::RemoveDuplicateHits } |
Public Slots | |
bool | rayOccluded (const QList< double > &position, const QList< double > &direction, float rayNear=0.f, float rayFar=ML_FLOAT_MAX) |
MLWEMIntersectionWrapper * | rayIntersectClosest (const QList< double > &position, const QList< double > &direction, float rayNear=0.f, float rayFar=ML_FLOAT_MAX) |
QList< MLWEMIntersectionWrapper * > | rayIntersect (const QList< double > &position, const QList< double > &direction, IntersectionMode mode=AllHits, float rayNear=0.f, float rayFar=ML_FLOAT_MAX) |
Static Public Member Functions | |
static ml::RefCountedBase * | createObject (const QVariantList &arguments) |
A class that wraps WEMBoundingVolumeHierarchy objects for fast ray intersection.
The precision of the ray intersection is only float precision, since the underlying Embree library does not (yet?) support double precision.
|
static |
Create new WEMBoundingVolumeHierarchy object; this is used by MLAB.createMLBaseObject to create a WEMBoundingVolumeHierarchy.
If the arguments is a list with a single WEM wrapper, a new WEMBoundingVolumeHierarchy will be returned.
|
slot |
Intersects the triangles with the given ray (position, direction) between rayNear and rayFar and returns the hit sorted by the nearest hit.
|
slot |
Intersects the triangles with the given ray (position, direction) between rayNear and rayFar and returns the nearest hit (or None if there is no hit).
|
slot |
Intersects the triangles with the given ray (position, direction) between rayNear and rayFar and returns if the ray hits anything (is occluded).
(direction has to be normalized!)