VTK  9.1.0
TestAxisActorInternal.h
Go to the documentation of this file.
1#ifndef TestAxisActorInternal_h
2#define TestAxisActorInternal_h
3
4#include "vtkAxisActor.h"
5#include "vtkCamera.h"
6#include "vtkNew.h"
7#include "vtkPolyDataMapper.h"
8#include "vtkProperty.h"
9#include "vtkRenderWindow.h"
11#include "vtkRenderer.h"
12#include "vtkSphereSource.h"
13#include "vtkStringArray.h"
14#include "vtkTextProperty.h"
15
16inline int TestAxisActorInternal(int use2dMode, int use3dProp)
17{
19 labels->SetNumberOfTuples(6);
20 labels->SetValue(0, "0");
21 labels->SetValue(1, "2");
22 labels->SetValue(2, "4");
23 labels->SetValue(3, "6");
24 labels->SetValue(4, "8");
25 labels->SetValue(5, "10");
26
28 textProp1->SetColor(0., 0., 1.);
29 textProp1->SetOpacity(0.9);
30
32 textProp2->SetColor(1., 0., 0.);
33 textProp2->SetOpacity(0.6);
34
36 textProp3->SetColor(0., 1., 0.);
37 textProp3->SetOpacity(1);
38
40 prop1->SetColor(1., 0., 1.);
41
43 prop2->SetColor(1., 1., 0.);
44
46 prop3->SetColor(0., 1., 1.);
47
48 //------------- X Axis -------------
49 vtkNew<vtkAxisActor> axisXActor;
50 axisXActor->SetUse2DMode(use2dMode);
51 axisXActor->SetUseTextActor3D(use3dProp);
52 axisXActor->GetProperty()->SetAmbient(1);
53 axisXActor->GetProperty()->SetDiffuse(0);
54 axisXActor->SetPoint1(0, 0, 0);
55 axisXActor->SetPoint2(10, 0, 0);
56 axisXActor->SetTitle("X Axis");
57 axisXActor->SetBounds(0, 10, 0, 0, 0, 0);
58 axisXActor->SetTickLocationToBoth();
59 axisXActor->SetAxisTypeToX();
60 axisXActor->SetRange(0, 10);
61 axisXActor->SetLabels(labels);
62 axisXActor->SetDeltaRangeMajor(2);
63 axisXActor->SetDeltaRangeMinor(0.5);
64 axisXActor->SetExponent("+00");
65 axisXActor->SetExponentVisibility(true);
66 axisXActor->SetTitleScale(0.8);
67 axisXActor->SetLabelScale(0.5);
68 axisXActor->SetTitleOffset(3);
69 axisXActor->SetExponentOffset(3);
70 axisXActor->SetLabelOffset(5);
71 axisXActor->SetTitleTextProperty(textProp1);
72 axisXActor->SetLabelTextProperty(textProp2);
73 axisXActor->SetAxisMainLineProperty(prop1);
74 axisXActor->SetAxisMajorTicksProperty(prop2);
75 axisXActor->SetAxisMinorTicksProperty(prop3);
76
77 //------------- Y Axis -------------
78 vtkNew<vtkAxisActor> axisYActor;
79 axisYActor->SetUse2DMode(use2dMode);
80 axisYActor->SetUseTextActor3D(use3dProp);
81 axisYActor->GetProperty()->SetAmbient(1);
82 axisYActor->GetProperty()->SetDiffuse(0);
83 axisYActor->SetPoint1(0, 0, 0);
84 axisYActor->SetPoint2(0, 10, 0);
85 axisYActor->SetTitle("Y Axis");
86 axisYActor->SetBounds(0, 0, 0, 10, 0, 0);
87 axisYActor->SetTickLocationToInside();
88 axisYActor->SetAxisTypeToY();
89 axisYActor->SetRange(0.1, 500);
90 axisYActor->SetMajorRangeStart(0.1);
91 axisYActor->SetMinorRangeStart(0.1);
92 axisYActor->SetMinorTicksVisible(true);
93 axisYActor->SetTitleAlignLocation(vtkAxisActor::VTK_ALIGN_TOP);
94 axisYActor->SetExponent("+00");
95 axisYActor->SetExponentVisibility(true);
96 axisYActor->SetExponentLocation(vtkAxisActor::VTK_ALIGN_TOP);
97 axisYActor->SetTitleScale(0.8);
98 axisYActor->SetLabelScale(0.5);
99 axisYActor->SetTitleOffset(3);
100 axisYActor->SetExponentOffset(5);
101 axisYActor->SetLabelOffset(5);
102 axisYActor->SetTitleTextProperty(textProp2);
103 axisYActor->SetLog(true);
104 axisYActor->SetAxisLinesProperty(prop1);
105
106 //------------- Z Axis -------------
107 vtkNew<vtkAxisActor> axisZActor;
108 axisZActor->SetUse2DMode(use2dMode);
109 axisZActor->SetUseTextActor3D(use3dProp);
110 axisZActor->GetProperty()->SetAmbient(1);
111 axisZActor->GetProperty()->SetDiffuse(0);
112 axisZActor->SetPoint1(0, 0, 0);
113 axisZActor->SetPoint2(0, 0, 10);
114 axisZActor->SetTitle("Z Axis");
115 axisZActor->SetBounds(0, 0, 0, 0, 0, 10);
116 axisZActor->SetTickLocationToOutside();
117 axisZActor->SetAxisTypeToZ();
118 axisZActor->SetRange(0, 10);
119 axisZActor->SetTitleAlignLocation(vtkAxisActor::VTK_ALIGN_POINT2);
120 axisZActor->SetExponent("+00");
121 axisZActor->SetExponentVisibility(true);
122 axisZActor->SetExponentLocation(vtkAxisActor::VTK_ALIGN_POINT1);
123 axisZActor->SetTitleScale(0.8);
124 axisZActor->SetLabelScale(0.5);
125 axisZActor->SetTitleOffset(3);
126 axisZActor->SetExponentOffset(3);
127 axisZActor->SetLabelOffset(5);
128 axisZActor->SetTitleTextProperty(textProp3);
129 axisZActor->SetMajorTickSize(3);
130 axisZActor->SetMinorTickSize(1);
131 axisZActor->SetDeltaRangeMajor(2);
132 axisZActor->SetDeltaRangeMinor(0.1);
133
134 vtkNew<vtkRenderer> renderer;
135 vtkNew<vtkRenderWindow> renderWindow;
136 renderWindow->AddRenderer(renderer);
137 vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;
138 renderWindowInteractor->SetRenderWindow(renderWindow);
139 renderer->AddActor(axisXActor);
140 renderer->AddActor(axisYActor);
141 renderer->AddActor(axisZActor);
142 renderer->SetBackground(.5, .5, .5);
143
144 vtkCamera* camera = renderer->GetActiveCamera();
145 axisXActor->SetCamera(camera);
146 axisYActor->SetCamera(camera);
147 axisZActor->SetCamera(camera);
148 renderWindow->SetSize(300, 300);
149
150 camera->SetPosition(-10.0, 22.0, -29);
151 camera->SetFocalPoint(-2, 8.5, -9.);
152
153 renderWindow->SetMultiSamples(0);
154 renderWindow->Render();
155 renderWindowInteractor->Start();
156
157 return EXIT_SUCCESS;
158}
159
160#endif
int TestAxisActorInternal(int use2dMode, int use3dProp)
a virtual camera for 3D rendering
Definition: vtkCamera.h:155
void SetPosition(double x, double y, double z)
Set/Get the position of the camera in world coordinates.
void SetFocalPoint(double x, double y, double z)
Set/Get the focal of the camera in world coordinates.
Allocate and hold a VTK object.
Definition: vtkNew.h:165