11 #include <vtkConeSource.h>
12 #include <vtkCubeSource.h>
13 #include <vtkCylinderSource.h>
14 #include <vtkDelaunay2D.h>
15 #include <vtkDoubleArray.h>
16 #include <vtkPointData.h>
17 #include <vtkPoints.h>
18 #include <vtkPolyData.h>
19 #include <vtkPolyDataMapper.h>
20 #include <vtkSmartPointer.h>
21 #include <vtkSphereSource.h>
30 #define VTK_CREATE(TYPE, NAME) \
31 vtkSmartPointer<TYPE> NAME = vtkSmartPointer<TYPE>::New()
35 class QVTKOpenGLNativeWidget;
36 class vtkPolyDataAlgorithm;
45 if (*obj ==
nullptr) *obj = T::New();
55 if (obj) obj->Delete();
59 vtkActor* actor = vtkActor::New();
61 mapper->SetInputConnection(algo->GetOutputPort());
62 actor->SetMapper(mapper);
79 void config(vtkSphereSource* source) {}
85 void config(vtkConeSource* source) {}
90 vtkActor* actor = vtkActor::New();
94 if (setter) setter->config(source);
97 mapper->SetInputConnection(source->GetOutputPort());
98 actor->SetMapper(mapper);
104 const QList<Point3F>&
points,
105 const QList<qreal>& scalars = QList<qreal>()) {
108 vtkpoints->InsertNextPoint(p3f.
x, p3f.
y, p3f.
z);
111 polyData->SetPoints(vtkpoints);
114 scalarArray->SetName(
"scalar");
115 foreach (qreal
scalar, scalars) scalarArray->InsertNextTuple1(
scalar);
119 vtkpoints->SetData(scalarArray);
122 del->SetInputData(polyData);
126 mapper->SetInputConnection(del->GetOutputPort());
128 vtkActor* actor = vtkActor::New();
129 actor->SetMapper(mapper);
134 template <
class DataObject,
class Mapper = vtkPolyDataMapper>
136 vtkActor* actor = vtkActor::New();
139 mapper->SetInputData(
data);
140 actor->SetMapper(mapper);
146 const QString& outfile);
void config(vtkConeSource *source)
void config(vtkSphereSource *source)
static vtkActor * createSourceActor(vtkPolyDataAlgorithm *algo)
void exportActorToFile(vtkActor *actor, const QString &outfile)
QImage vtkImageDataToQImage(vtkImageData *imageData)
void vtkInitOnce(T **obj)
void qImageToVtkImage(QImage &img, vtkImageData *imageData)
static vtkActor * createActorFromData(DataObject *data)
static vtkActor * createSurfaceActor(const QList< Point3F > &points, const QList< qreal > &scalars=QList< qreal >())
QImage vtkWidgetSnapshot(QVTKOpenGLNativeWidget *widget)
void vtkSafeDelete(T *obj)
#define QPCL_ENGINE_LIB_API
#define VTK_CREATE(TYPE, NAME)