pkgsrc/graphics/pcl/patches/patch-apps_modeler_src_cloud__mesh__item.cpp
thor 93ca69daa3 graphics/pcl: enable visualization using VTK
This is a very common use-case and thus VTK is on by default. As there
are cases where you just need PCL for the data formats and algorithms,
it can be disabled.

There is another change pending to add Qt support to VTK, which will
be inherited here, as I am told the (a?) standard use case for VTK is via
Qt. The option is: Either just computations (headless) or the full
visualization stuff.
2021-05-07 11:36:29 +00:00

35 lines
1.6 KiB
C++

$NetBSD: patch-apps_modeler_src_cloud__mesh__item.cpp,v 1.1 2021/05/07 11:36:29 thor Exp $
Support VTK 9, from PR 4262
--- apps/modeler/src/cloud_mesh_item.cpp.orig 2020-08-14 12:23:03.000000000 +0000
+++ apps/modeler/src/cloud_mesh_item.cpp
@@ -156,12 +156,13 @@ void
pcl::modeler::CloudMeshItem::createChannels()
{
RenderWindowItem* render_window_item = dynamic_cast<RenderWindowItem*>(parent());
- addChild(new PointsActorItem(
- this, cloud_mesh_, render_window_item->getRenderWindow()->GetRenderWindow()));
- addChild(new NormalsActorItem(
- this, cloud_mesh_, render_window_item->getRenderWindow()->GetRenderWindow()));
- addChild(new SurfaceActorItem(
- this, cloud_mesh_, render_window_item->getRenderWindow()->GetRenderWindow()));
+ vtkRenderWindow* win =
+ getRenderWindowCompat(*(render_window_item->getRenderWindow()));
+
+ addChild(new PointsActorItem(this, cloud_mesh_, win));
+ addChild(new NormalsActorItem(this, cloud_mesh_, win));
+ addChild(new SurfaceActorItem(this, cloud_mesh_, win));
+
for (int i = 0, i_end = childCount(); i < i_end; ++i) {
ChannelActorItem* child_item = dynamic_cast<ChannelActorItem*>(child(i));
child_item->init();
@@ -242,7 +243,7 @@ pcl::modeler::CloudMeshItem::updateRende
for (int i = 0, i_end = childCount(); i < i_end; ++i) {
ChannelActorItem* child_item = dynamic_cast<ChannelActorItem*>(child(i));
child_item->switchRenderWindow(
- render_window_item->getRenderWindow()->GetRenderWindow());
+ getRenderWindowCompat(*render_window_item->getRenderWindow()));
}
render_window_item->getRenderWindow()->updateAxes();