38 #include <vtkArrowSource.h>
39 #include <vtkPolyData.h>
40 #include <vtkSmartPointer.h>
41 #include <vtkPolyDataMapper.h>
43 #include <vtkRenderWindow.h>
44 #include <vtkRenderer.h>
45 #include <vtkRenderWindowInteractor.h>
47 #include <vtkSphereSource.h>
48 #include <vtkCubeSource.h>
49 #include <vtkProperty.h>
50 #include <vtkTransform.h>
51 #include <vtkTransformPolyDataFilter.h>
57 m_start(start), m_end(end)
60 vtkSmartPointer<vtkArrowSource> arrowSource = vtkSmartPointer<vtkArrowSource>::New();
63 Vec diff = end - start;
65 double length = diff.
length();
69 vtkMath::RandomSeed(8775070);
70 arbitrary[0] = vtkMath::Random(-10,10);
71 arbitrary[1] = vtkMath::Random(-10,10);
72 arbitrary[2] = vtkMath::Random(-10,10);
73 Vec dummy(arbitrary[0], arbitrary[1], arbitrary[2]);
79 vtkSmartPointer<vtkMatrix4x4> matrix = vtkSmartPointer<vtkMatrix4x4>::New();
81 for (
unsigned int i = 0; i < 3; i++)
83 matrix->SetElement(i, 0, x_axis[i]);
84 matrix->SetElement(i, 1, y_axis[i]);
85 matrix->SetElement(i, 2, z_axis[i]);
89 vtkSmartPointer<vtkTransform>
transform = vtkSmartPointer<vtkTransform>::New();
90 transform->Translate(start[0], start[1], start[2]);
95 vtkSmartPointer<vtkTransformPolyDataFilter> transformPD = vtkSmartPointer<vtkTransformPolyDataFilter>::New();
97 transformPD->SetInputConnection(arrowSource->GetOutputPort());
100 vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
102 mapper->SetInputConnection(arrowSource->GetOutputPort());
111 vtkSmartPointer<vtkCubeSource> cubeStartSource = vtkSmartPointer<vtkCubeSource>::New();
112 cubeStartSource->SetBounds(start[0], start[0] + 1, start[1], start[1] + 1,start[2], start[2] + 1);
113 vtkSmartPointer<vtkPolyDataMapper> cubeStartMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
114 cubeStartMapper->SetInputConnection(cubeStartSource->GetOutputPort());
120 vtkSmartPointer<vtkSphereSource> sphereStartSource = vtkSmartPointer<vtkSphereSource>::New();
121 sphereStartSource->SetCenter(start[0], start[1], start[2]);
122 vtkSmartPointer<vtkPolyDataMapper> sphereStartMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
123 sphereStartMapper->SetInputConnection(sphereStartSource->GetOutputPort());
131 vtkSmartPointer<vtkSphereSource> sphereEndSource = vtkSmartPointer<vtkSphereSource>::New();
132 sphereEndSource->SetCenter(end[0], end[1], end[2]);
133 vtkSmartPointer<vtkPolyDataMapper> sphereEndMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
134 sphereEndMapper->SetInputConnection(sphereEndSource->GetOutputPort());
135 m_endActor = vtkSmartPointer<vtkActor>::New();
137 m_endActor->GetProperty()->SetColor(1.0, .3, .3);