MeVisLab Scripting Reference
|
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 |
Creates a 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).
The direction
has to be normalized!