Hi!

There isn’t a direct component available to do so but it is possible to translate screen space to world space coordinates using the math and mesh utility functions. The blobtrace demo uses this to calculate the position of the mouse cursor on a 3 dimensional plane. You could do the same using a bounding box or vertices of your object. blobtraceapp.cpp -> doTrace()

```
// World space camera position
glm::vec3 cam_pos = math::extractPosition(camera_xform.getGlobalTransform());
// Used by intersection call
TriangleData<glm::vec3> tri_vertices;
// Create the triangle iterator
TriangleIterator triangle_it(mesh);
// Perform intersection test, walk over every triangle in the mesh.
// In this case only 2, nice and fast. When there is a hit use the returned barycentric coordinates
// to get the interpolated (triangulated) uv attribute value at point of intersection
while (!triangle_it.isDone())
{
// Use the indices to get the vertex positions
Triangle triangle = triangle_it.next();
tri_vertices[0] = (math::objectToWorld(vertices[triangle[0]], world_xform.getGlobalTransform()));
tri_vertices[1] = (math::objectToWorld(vertices[triangle[1]], world_xform.getGlobalTransform()));
tri_vertices[2] = (math::objectToWorld(vertices[triangle[2]], world_xform.getGlobalTransform()));
glm::vec3 bary_coord;
if (utility::intersect(cam_pos, screen_to_world_ray, tri_vertices, bary_coord))
{
TriangleData<glm::vec3> uv_triangle_data = triangle.getVertexData(uvs);
mMouseUvPosition = utility::interpolateVertexAttr<glm::vec3>(uv_triangle_data, bary_coord);
break;
}
}
```

Alternatively you can use opengl calls to read and write to the stencil buffer. If you have any ideas on how to add a new component or functionality to support your request I’d love to hear it!