for (ac->InitTraversal(ait); vtkActor* actor = ac->GetNextActor(ait); )
for (actor->InitPathTraversal(); vtkAssemblyPath* path = actor->GetNextPath(); )
{
- vtkActor* apart = reinterpret_cast <vtkActor*>(path->GetLastNode()->GetViewProp());
+ vtkActor* apart = vtkActor::SafeDownCast(path->GetLastNode()->GetViewProp());
apart->GetProperty()->SetRepresentationToPoints();
}
break;
for (ac->InitTraversal(ait); vtkActor* actor = ac->GetNextActor(ait); )
for (actor->InitPathTraversal(); vtkAssemblyPath* path = actor->GetNextPath(); )
{
- vtkActor* apart = reinterpret_cast <vtkActor*>(path->GetLastNode()->GetViewProp());
+ vtkActor* apart = vtkActor::SafeDownCast(path->GetLastNode()->GetViewProp());
float psize = apart->GetProperty()->GetPointSize();
if (psize < 63.0f)
apart->GetProperty()->SetPointSize(psize + 1.0f);
for (ac->InitTraversal(ait); vtkActor* actor = ac->GetNextActor(ait); )
for (actor->InitPathTraversal(); vtkAssemblyPath* path = actor->GetNextPath(); )
{
- vtkActor* apart = static_cast<vtkActor*>(path->GetLastNode()->GetViewProp());
+ vtkActor* apart = vtkActor::SafeDownCast(path->GetLastNode()->GetViewProp());
float psize = apart->GetProperty()->GetPointSize();
if (psize > 1.0f)
apart->GetProperty()->SetPointSize(psize - 1.0f);
else
{
AnimState = VTKIS_ANIM_ON;
- vtkAssemblyPath *path = NULL;
Interactor->GetPicker()->Pick(Interactor->GetEventPosition()[0], Interactor->GetEventPosition()[1], 0.0, CurrentRenderer);
- vtkAbstractPropPicker *picker;
- if ((picker = vtkAbstractPropPicker::SafeDownCast(Interactor->GetPicker())))
- path = picker->GetPath();
- if (path != NULL)
- Interactor->FlyTo(CurrentRenderer, picker->GetPickPosition());
+ vtkSmartPointer<vtkAbstractPropPicker> picker = vtkAbstractPropPicker::SafeDownCast(Interactor->GetPicker());
+ if (picker)
+ if (picker->GetPath())
+ Interactor->FlyTo(CurrentRenderer, picker->GetPickPosition());
AnimState = VTKIS_ANIM_OFF;
}
break;
{
if (alt)
{
- int stereo_render = Interactor->GetRenderWindow()->GetStereoRender();
- if (!stereo_render)
+ vtkSmartPointer<vtkRenderWindow> window = Interactor->GetRenderWindow();
+ if (!window->GetStereoRender())
{
- if (stereo_anaglyph_mask_default_)
- {
- Interactor->GetRenderWindow()->SetAnaglyphColorMask(4, 3);
- stereo_anaglyph_mask_default_ = false;
- }
- else
- {
- Interactor->GetRenderWindow()->SetAnaglyphColorMask(2, 5);
- stereo_anaglyph_mask_default_ = true;
- }
+ static Vec2i default_mask(4, 3), alternative_mask(2, 5);
+ window->SetAnaglyphColorMask (stereo_anaglyph_mask_default_ ? default_mask.val : alternative_mask.val);
+ stereo_anaglyph_mask_default_ = !stereo_anaglyph_mask_default_;
}
- Interactor->GetRenderWindow()->SetStereoRender(!stereo_render);
- Interactor->GetRenderWindow()->Render();
+ window->SetStereoRender(!window->GetStereoRender());
Interactor->Render();
}
else
{
vtkSmartPointer<vtkCamera> cam = CurrentRenderer->GetActiveCamera();
cam->SetParallelProjection(!cam->GetParallelProjection());
- CurrentRenderer->SetActiveCamera(cam);
CurrentRenderer->Render();
break;
}
break;
}
- static WidgetActorMap::iterator it = widget_actor_map_->begin();
+ WidgetActorMap::iterator it = widget_actor_map_->begin();
// it might be that some actors don't have a valid transformation set -> we skip them to avoid a seg fault.
- bool found_transformation = false;
-
- for (size_t idx = 0; idx < widget_actor_map_->size(); ++idx, ++it)
+ for (; it != widget_actor_map_->end(); ++it)
{
- if (it == widget_actor_map_->end())
- it = widget_actor_map_->begin();
-
vtkProp3D * actor = vtkProp3D::SafeDownCast(it->second);
if (actor && actor->GetUserMatrix())
- {
- found_transformation = true;
break;
- }
}
vtkSmartPointer<vtkCamera> cam = CurrentRenderer->GetActiveCamera();
// if a valid transformation was found, use it otherwise fall back to default view point.
- if (found_transformation)
+ if (it != widget_actor_map_->end())
{
vtkMatrix4x4* m = vtkProp3D::SafeDownCast(it->second)->GetUserMatrix();
}
KeyboardEvent event(KeyboardEvent::KEY_DOWN, Interactor->GetKeySym(), Interactor->GetKeyCode(), getModifiers());
- // Check if there is a keyboard callback registered
if (keyboardCallback_)
keyboardCallback_(event, keyboard_callback_cookie_);
-
- renderer_->Render();
Interactor->Render();
}
void cv::viz::InteractorStyle::OnKeyUp()
{
KeyboardEvent event(KeyboardEvent::KEY_UP, Interactor->GetKeySym(), Interactor->GetKeyCode(), getModifiers());
- // Check if there is a keyboard callback registered
if (keyboardCallback_)
keyboardCallback_(event, keyboard_callback_cookie_);
-
Superclass::OnKeyUp();
}
{
Vec2i p(Interactor->GetEventPosition());
MouseEvent event(MouseEvent::MouseScrollUp, MouseEvent::VScroll, p, getModifiers());
- // If a mouse callback registered, call it!
if (mouseCallback_)
mouseCallback_(event, mouse_callback_cookie_);
if (Interactor->GetRepeatCount() && mouseCallback_)
cam->SetViewAngle(opening_angle);
cam->Modified();
- CurrentRenderer->SetActiveCamera(cam);
CurrentRenderer->ResetCameraClippingRange();
CurrentRenderer->Modified();
CurrentRenderer->Render();
- renderer_->Render();
Interactor->Render();
}
else
{
Vec2i p(Interactor->GetEventPosition());
MouseEvent event(MouseEvent::MouseScrollDown, MouseEvent::VScroll, p, getModifiers());
- // If a mouse callback registered, call it!
if (mouseCallback_)
mouseCallback_(event, mouse_callback_cookie_);
cam->SetViewAngle(opening_angle);
cam->Modified();
- CurrentRenderer->SetActiveCamera(cam);
CurrentRenderer->ResetCameraClippingRange();
CurrentRenderer->Modified();
CurrentRenderer->Render();
- renderer_->Render();
Interactor->Render();
}
else
{
CV_Assert("Interactor style not initialized." && init_);
CV_Assert("Renderer has not been set." && renderer_);
- renderer_->Render();
Interactor->Render();
}