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