Evaluates intersections between a ray and a polygon object. The ray is defined by a point, a ray and length. In the following example a ray intersects a cube.
- c4d.utils.GeRayCollider
Return type: | GeRayCollider |
---|---|
Returns: | A new ray collider. |
Initalizes the ray collider with the object specified by goal.
Parameters: |
|
---|---|
Return type: |
bool |
Returns: |
True if successful, otherwise False. |
Checks if the line segment specified by ray_p to ray_p + ray_dir*ray_length intersects the object.
Parameters: |
|
---|---|
Return type: |
bool |
Returns: |
True if there was in intersection, otherwise False |
eturns the number of intersections found by Intersect().
Return type: | int |
---|---|
Returns: | Number of intersections. |
Retrieves the intersection, found by GeRayCollider.Intersect(), by index:
intersection = rc.GetIntersection(id)
intersect["face_id"] # The polygon index, int
intersect["tri_face_id"] # If first half of quad or triangle face_id + 1, else -(face_id + 1), int
intersect["hitpos"] # Position of the intersection, c4d.Vector
intersect["distance"] # Distance to the intersection, float
intersect["f_normal"] # Face normal. (Not normalized.), c4d.Vector
intersect["barrycoords"] #Barrycentric coordinates of the intersection. (x = u, y = v, z = d), c4d.Vector
intersect["backface"] # True if the intersected face's normal points away from the camera, otherwise False, bool
Parameters: | number (int) – Intersection index, 0 <= number < GetIntersectionCount(). |
---|---|
Raises IndexError: | |
Raise if intersection index is out of range. | |
Return type: | dict |
Returns: | The intersection. |
Retrieves the intersection, found by Intersect(), closest to the start of the ray.
Return type: | dict |
---|---|
Returns: | The nearest intersection or None if there was no intersection. |