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)

../_images/tut_highlight1.png

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