fix segfault
This commit is contained in:
@@ -1,36 +1,29 @@
|
|||||||
#include "vtkViewport.h"
|
#include "vtkViewport.h"
|
||||||
|
|
||||||
#include <vtkAxes.h>
|
|
||||||
#include <vtkAxesActor.h>
|
|
||||||
#include <vtkCamera.h>
|
#include <vtkCamera.h>
|
||||||
#include <vtkCameraOrientationWidget.h>
|
|
||||||
#include <vtkInteractorStyleTrackballCamera.h>
|
#include <vtkInteractorStyleTrackballCamera.h>
|
||||||
#include <vtkObjectFactory.h>
|
#include <vtkObjectFactory.h>
|
||||||
#include <vtkPlaneSource.h>
|
|
||||||
#include <vtkRenderWindow.h>
|
#include <vtkRenderWindow.h>
|
||||||
#include <vtkRenderWindowInteractor.h>
|
#include <vtkRenderWindowInteractor.h>
|
||||||
#include <vtkSmartPointer.h>
|
|
||||||
#include <vtkNew.h>
|
#include <vtkNew.h>
|
||||||
#include <vtkTextProperty.h>
|
#include <vtkTextProperty.h>
|
||||||
|
|
||||||
#include <vtkPolyDataMapper.h>
|
#include <vtkPolyDataMapper.h>
|
||||||
|
|
||||||
#include <vtkNamedColors.h>
|
|
||||||
#include <vtkProperty.h>
|
#include <vtkProperty.h>
|
||||||
#include <vtkCallbackCommand.h>
|
#include <vtkCallbackCommand.h>
|
||||||
#include <vtkMath.h>
|
#include <vtkMath.h>
|
||||||
#include <vtkActor.h>
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
namespace uLib {
|
namespace uLib {
|
||||||
namespace Vtk {
|
namespace Vtk {
|
||||||
|
|
||||||
Viewport::Viewport()
|
Viewport::Viewport()
|
||||||
: m_Renderer(vtkRenderer::New())
|
: m_Renderer(vtkSmartPointer<vtkRenderer>::New())
|
||||||
, m_Annotation(vtkCornerAnnotation::New())
|
, m_Annotation(vtkSmartPointer<vtkCornerAnnotation>::New())
|
||||||
, m_Marker(vtkOrientationMarkerWidget::New())
|
, m_Marker(vtkSmartPointer<vtkOrientationMarkerWidget>::New())
|
||||||
, m_CameraWidget(nullptr)
|
, m_CameraWidget(nullptr)
|
||||||
, m_Colors(vtkNamedColors::New())
|
, m_Colors(vtkSmartPointer<vtkNamedColors>::New())
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,14 +31,7 @@ Viewport::~Viewport()
|
|||||||
{
|
{
|
||||||
if (m_Renderer) {
|
if (m_Renderer) {
|
||||||
m_Renderer->RemoveAllViewProps();
|
m_Renderer->RemoveAllViewProps();
|
||||||
m_Renderer->Clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_Annotation) m_Annotation->Delete();
|
|
||||||
if (m_Marker) m_Marker->Delete();
|
|
||||||
if (m_CameraWidget) m_CameraWidget->Delete();
|
|
||||||
if (m_Renderer) m_Renderer->Delete();
|
|
||||||
if (m_Colors) m_Colors->Delete();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Viewport::SetupPipeline(vtkRenderWindowInteractor* iren)
|
void Viewport::SetupPipeline(vtkRenderWindowInteractor* iren)
|
||||||
@@ -112,7 +98,7 @@ void Viewport::SetupPipeline(vtkRenderWindowInteractor* iren)
|
|||||||
|
|
||||||
// Camera-orientation widget (VTK >= 9)
|
// Camera-orientation widget (VTK >= 9)
|
||||||
#if VTK_MAJOR_VERSION >= 9
|
#if VTK_MAJOR_VERSION >= 9
|
||||||
m_CameraWidget = vtkCameraOrientationWidget::New();
|
m_CameraWidget = vtkSmartPointer<vtkCameraOrientationWidget>::New();
|
||||||
m_CameraWidget->SetParentRenderer(m_Renderer);
|
m_CameraWidget->SetParentRenderer(m_Renderer);
|
||||||
m_CameraWidget->SetInteractor(iren);
|
m_CameraWidget->SetInteractor(iren);
|
||||||
m_CameraWidget->On();
|
m_CameraWidget->On();
|
||||||
|
|||||||
@@ -7,16 +7,20 @@
|
|||||||
#include <vtkRenderer.h>
|
#include <vtkRenderer.h>
|
||||||
#include <vtkSmartPointer.h>
|
#include <vtkSmartPointer.h>
|
||||||
#include <vtkVersion.h>
|
#include <vtkVersion.h>
|
||||||
|
#include <vtkRenderer.h>
|
||||||
|
#include <vtkCornerAnnotation.h>
|
||||||
|
#include <vtkOrientationMarkerWidget.h>
|
||||||
|
#include <vtkCameraOrientationWidget.h>
|
||||||
|
#include <vtkNamedColors.h>
|
||||||
|
#include <vtkAxes.h>
|
||||||
|
#include <vtkAxesActor.h>
|
||||||
|
#include <vtkPlaneSource.h>
|
||||||
|
#include <vtkActor.h>
|
||||||
|
|
||||||
class vtkAxes;
|
|
||||||
class vtkProp;
|
class vtkProp;
|
||||||
class vtk3DWidget;
|
class vtk3DWidget;
|
||||||
class vtkRenderWindow;
|
class vtkRenderWindow;
|
||||||
class vtkRenderWindowInteractor;
|
class vtkRenderWindowInteractor;
|
||||||
class vtkCameraOrientationWidget;
|
|
||||||
class vtkPlaneSource;
|
|
||||||
class vtkActor;
|
|
||||||
class vtkNamedColors;
|
|
||||||
class vtkCamera;
|
class vtkCamera;
|
||||||
|
|
||||||
namespace uLib {
|
namespace uLib {
|
||||||
@@ -57,17 +61,17 @@ protected:
|
|||||||
|
|
||||||
void UpdateGrid();
|
void UpdateGrid();
|
||||||
|
|
||||||
vtkRenderer* m_Renderer;
|
vtkSmartPointer<vtkRenderer> m_Renderer;
|
||||||
vtkCornerAnnotation* m_Annotation;
|
vtkSmartPointer<vtkCornerAnnotation> m_Annotation;
|
||||||
vtkOrientationMarkerWidget* m_Marker;
|
vtkSmartPointer<vtkOrientationMarkerWidget> m_Marker;
|
||||||
vtkCameraOrientationWidget* m_CameraWidget;
|
vtkSmartPointer<vtkCameraOrientationWidget> m_CameraWidget;
|
||||||
|
|
||||||
vtkSmartPointer<vtkPlaneSource> m_GridSource;
|
vtkSmartPointer<vtkPlaneSource> m_GridSource;
|
||||||
vtkSmartPointer<vtkActor> m_GridActor;
|
vtkSmartPointer<vtkActor> m_GridActor;
|
||||||
vtkSmartPointer<vtkAxes> m_OriginAxes;
|
vtkSmartPointer<vtkAxes> m_OriginAxes;
|
||||||
vtkSmartPointer<vtkActor> m_OriginAxesActor;
|
vtkSmartPointer<vtkActor> m_OriginAxesActor;
|
||||||
|
|
||||||
vtkNamedColors* m_Colors;
|
vtkSmartPointer<vtkNamedColors> m_Colors;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Vtk
|
} // namespace Vtk
|
||||||
|
|||||||
Reference in New Issue
Block a user