Mercurial > hg > kwantix
annotate src/vtkplot.cpp @ 31:9a2279c9d003
Minor issues with stray namespace changes
author | Jordi Gutiérrez Hermoso <jordigh@gmail.com> |
---|---|
date | Wed, 03 Feb 2010 19:40:34 -0600 |
parents | 24f3c4ed5c84 |
children | 22f78a6faa3e |
rev | line source |
---|---|
29
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
1 #include <vtkPoints.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
2 #include <vtkPointData.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
3 #include <vtkDelaunay2D.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
4 #include <vtkLookupTable.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
5 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
6 #include <vtkPolyData.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
7 #include <vtkPolyDataNormals.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
8 #include <vtkPolyDataMapper.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
9 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
10 #include <vtkWarpScalar.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
11 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
12 #include <vtkCamera.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
13 #include <vtkActor.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
14 #include <vtkRenderWindow.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
15 #include <vtkRenderWindowInteractor.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
16 #include <vtkRenderer.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
17 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
18 #include <vtkInteractorStyleTerrain.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
19 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
20 #include <vtkSmartPointer.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
21 #include <vtkDoubleArray.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
22 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
23 #include <vtkGraphicsFactory.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
24 #include <vtkImagingFactory.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
25 #include <vtkWindowToImageFilter.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
26 #include <vtkPNGWriter.h> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
27 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
28 #include <string> |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
29 using std::string; |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
30 |
31
9a2279c9d003
Minor issues with stray namespace changes
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
29
diff
changeset
|
31 #include "include/linalg.hpp" |
29
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
32 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
33 typedef double (*Func3d)(double, double); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
34 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
35 void InitOffscreen(bool offscreen); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
36 vtkSmartPointer<vtkDelaunay2D> TriangulateTerrain(Func3d func); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
37 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
38 void PlotPoints(vtkSmartPointer<vtkDelaunay2D> delaunay, |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
39 bool offscreen=true, |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
40 const string& filename="vtkscreenshot.png"); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
41 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
42 double F(double x, double y) |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
43 { |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
44 return atan(x*y*sin(y)); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
45 } |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
46 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
47 int main (int argc, char ** argv) |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
48 { |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
49 auto delaunay = TriangulateTerrain(&F); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
50 PlotPoints(delaunay,true); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
51 return 0; |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
52 } |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
53 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
54 void InitOffscreen(bool offscreen) |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
55 { |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
56 // Graphics Factory |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
57 vtkSmartPointer<vtkGraphicsFactory> graphics_factory |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
58 = vtkGraphicsFactory::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
59 graphics_factory->SetOffScreenOnlyMode( offscreen ); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
60 graphics_factory->SetUseMesaClasses( offscreen ); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
61 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
62 // Imaging Factory |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
63 vtkSmartPointer<vtkImagingFactory> imaging_factory |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
64 = vtkImagingFactory::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
65 imaging_factory->SetUseMesaClasses( offscreen ); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
66 } |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
67 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
68 vtkSmartPointer<vtkDelaunay2D> TriangulateTerrain(Func3d func) |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
69 { |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
70 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
71 vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
72 vtkSmartPointer<vtkDoubleArray> scalars = vtkSmartPointer<vtkDoubleArray>::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
73 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
74 unsigned int GridSize = 50; |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
75 for(double x = -3; x < 3; x += 6.0/GridSize) |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
76 { |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
77 for(double y = -3; y < 3; y += 6.0/GridSize) |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
78 { |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
79 double z = func(x,y); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
80 vtkIdType idx = points->InsertNextPoint(x, y, z); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
81 scalars -> InsertTuple(idx, &z); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
82 } |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
83 } |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
84 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
85 //add the grid points to a polydata object |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
86 vtkSmartPointer<vtkPolyData> polydata = vtkPolyData::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
87 polydata->SetPoints(points); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
88 polydata->GetPointData() -> SetScalars(scalars); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
89 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
90 //triangulate the grid points |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
91 vtkSmartPointer<vtkDelaunay2D> delaunay = vtkDelaunay2D::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
92 delaunay->SetInput(polydata); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
93 delaunay->Update(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
94 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
95 return delaunay; |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
96 } |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
97 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
98 void PlotPoints(vtkSmartPointer<vtkDelaunay2D> delaunay, |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
99 bool offscreen, |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
100 const string& filename) |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
101 { |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
102 InitOffscreen(offscreen); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
103 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
104 //Normals for Gourad shading |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
105 vtkSmartPointer<vtkPolyDataNormals> normals = vtkPolyDataNormals::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
106 normals -> SetInputConnection(delaunay ->GetOutputPort() ); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
107 normals -> SetFeatureAngle(60); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
108 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
109 //Set the colours for the rendering |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
110 vtkSmartPointer<vtkLookupTable> lut = vtkLookupTable::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
111 lut -> SetHueRange(0.66667, 0.0); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
112 lut -> SetNumberOfColors(256); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
113 lut -> SetRampToLinear(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
114 lut -> Build(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
115 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
116 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
117 // map the contours to graphical primitives |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
118 vtkSmartPointer<vtkPolyDataMapper> contMapper = vtkPolyDataMapper::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
119 contMapper->SetInput(normals -> GetOutput() ); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
120 contMapper->SetScalarRange(0,1); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
121 contMapper->SetLookupTable(lut); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
122 contMapper->ImmediateModeRenderingOn(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
123 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
124 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
125 // create an actor for the contours |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
126 vtkSmartPointer<vtkActor> contActor = vtkActor::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
127 contActor->SetMapper(contMapper); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
128 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
129 // a renderer and render window |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
130 vtkSmartPointer<vtkRenderer> ren1 = vtkRenderer::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
131 vtkSmartPointer<vtkRenderWindow> renWin = vtkRenderWindow::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
132 if(offscreen) |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
133 { |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
134 renWin->SetOffScreenRendering(1); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
135 } |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
136 renWin->AddRenderer(ren1); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
137 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
138 // an interactor |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
139 vtkSmartPointer<vtkRenderWindowInteractor> iren |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
140 = vtkRenderWindowInteractor::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
141 iren->SetRenderWindow(renWin); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
142 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
143 // add the actors to the scene |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
144 ren1->SetBackground(0.0,0.0,0.0); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
145 ren1->GetActiveCamera()->SetViewUp(0,0,1); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
146 ren1->GetActiveCamera()->SetPosition(1, 1, 1); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
147 ren1->GetActiveCamera()->SetParallelProjection(1); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
148 ren1->AddActor(contActor); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
149 ren1->ResetCamera(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
150 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
151 // render an image (lights and cameras are created automatically) |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
152 renWin->Render(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
153 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
154 if(offscreen) |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
155 { |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
156 // Write to file |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
157 vtkSmartPointer<vtkWindowToImageFilter> windowToImageFilter = |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
158 vtkSmartPointer<vtkWindowToImageFilter>::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
159 windowToImageFilter->SetInput(renWin); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
160 windowToImageFilter->Update(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
161 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
162 vtkSmartPointer<vtkPNGWriter> writer = vtkSmartPointer<vtkPNGWriter>::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
163 writer->SetFileName(filename.c_str()); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
164 writer->SetInput(windowToImageFilter->GetOutput()); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
165 writer->Write(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
166 } |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
167 else |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
168 { |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
169 //The style |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
170 vtkSmartPointer<vtkInteractorStyleTerrain> terrain_style |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
171 = vtkInteractorStyleTerrain::New(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
172 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
173 // Set the style |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
174 iren -> SetInteractorStyle(terrain_style); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
175 |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
176 // begin mouse interaction |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
177 iren->Start(); |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
178 } |
24f3c4ed5c84
Halfway to replacing all namespaces with the kwantxi namespace
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff
changeset
|
179 } |