Geometry: Highlight Clicked Parts
A highlighted part is shown with a white halo. This is useful for indicating for instance selection. The highlighting mechanism applies to all types of parts:
Data parts
Isosurfaces
Isovolumes
Cutting planes
Geometry parts (using halo effect)
This example shows how highlight parts as a response to a mouse press event.
Pick event
Send a notification when a pick has occurred.
Attach to the mouse pressed event in the viewer. Create a cee::Ray
object from the mouse
event coordinates and emit a picked signal using this ray.
void TutorialRunnerViewer::mousePressEvent(QMouseEvent* event)
{
cee::vis::View* theView = view();
if (!theView) return;
// Picking!
cee::Ray ray = theView->camera().rayFromWindowCoordinates(event->pos().x(), height() - event->pos().y());
m_mainWindow->pick(ray);
cee::vis::CameraInputHandler* inputHandler = theView->camera().inputHandler();
if (inputHandler)
{
cee::vis::MouseEvent me = cee::qt::UtilsGui::toMouseEvent(*this, *event);
cee::vis::MouseButton buttonPressed = cee::qt::UtilsGui::toMouseButton(event->button());
inputHandler->mousePressEvent(buttonPressed, me);
update();
}
}
Create the model and connection
Create a geometry model with four boxes.
Respond to a picking event sent from the viewer
Highlight the last hit box