BVHTriangle¶

-
class
BVHTriangle¶ Bases:
rumba.ValueA bounding volume hierarchy to quickly intersect 3d triangles.
Constructors
__init__Methods
closest(position)Find the closest triangle. intersect_closest(position)Find the closest intersection of a ray against the triangles. -
closest(position: Imath.V3f, d: float, closest_pos: Imath.V3f, st: Imath.V2f) → int¶ Find the closest triangle.
Return the triangle index if an intersection has been found. Returns -1 if no intersection has been found. If the function returns a positive value, d is filled with the distance to the closest triangle and if closest_pos is not null, *closest_pos is filled with the closest position. The function considers only the triangle closer than d.
The returned integer is a triangle index, and not a polygon index.
Parameters: - position (Imath.V3f) – The position where to look for the closest triangle
- d (float) – The maximum search distance. In return, d is filled with the closest triangle distance
- closest_pos (Imath.V3f) – If not null and if a closest triangle has been found, closest_pos is filled with the closest triangle position.
- st (Imath.V2f) – If not null and if a closest triangle has been found, st is filled with the closest triangle barycenric coordinates.
Return type: int
-
intersect_closest(position: Imath.V3f, direction: Imath.V3f, tnear: float, tfar: float, st: Imath.V2f) → int¶ Find the closest intersection of a ray against the triangles.
Return the triangle index if an intersection has been found. Returns -1 if no intersection has been found. If the function returns a positive value, tfar is filled with the intersection parameter. The hit position is then position+direction*tfar. The function considers only the intersections with a t between [tnear, tfar[ .
Please note the returned integer is a triangle index, and not a polygon index.
Parameters: - position (Imath.V3f) – The position from where the ray starts
- direction (Imath.V3f) – The direction of the ray
- tnear (float) – The near t parameter before which no intersection are tested
- tfar (float) – The far t parameter after which no intersection are tested. If an intersection has been found, tfar get in return the t parameter of the closest hit.
- st (Imath.V2f) – If not null and if a triangle has been hit, st is filled with the hit point triangle barycenric coordinates.
Return type: int
-