20 #include <vtkCamera.h>
21 #include <vtkCollection.h>
23 #include <vtkSmartPointer.h>
24 #include <vtkTransform.h>
31 #include <QToolButton>
38 void RotateElevation(vtkCamera* camera,
double angle) {
39 vtkNew<vtkTransform> transform;
41 double scale = vtkMath::Norm(camera->GetPosition());
43 scale = vtkMath::Norm(camera->GetFocalPoint());
48 double* temp = camera->GetFocalPoint();
49 camera->SetFocalPoint(temp[0] / scale, temp[1] / scale, temp[2] / scale);
50 temp = camera->GetPosition();
51 camera->SetPosition(temp[0] / scale, temp[1] / scale, temp[2] / scale);
56 transform->Identity();
59 camera->OrthogonalizeViewUp();
60 double* viewUp = camera->GetViewUp();
62 transform->RotateWXYZ(-angle, v2[0], v2[1], v2[2]);
67 camera->ApplyTransform(transform.GetPointer());
68 camera->OrthogonalizeViewUp();
71 temp = camera->GetFocalPoint();
72 camera->SetFocalPoint(temp[0] * scale, temp[1] * scale, temp[2] * scale);
73 temp = camera->GetPosition();
74 camera->SetPosition(temp[0] * scale, temp[1] * scale, temp[2] * scale);
86 updateCameraParameters();
143 void EditCameraTool::resetViewDirection(
double look_x,
150 s_viewer->setCameraPosition(0.0, 0.0, 0.0, look_x, look_y, look_z, up_x,
165 void EditCameraTool::adjustCamera(CameraAdjustmentType enType,
double value) {
178 if (
s_camera->GetParallelProjection()) {
195 void EditCameraTool::saveCameraConfiguration(
const std::string& file) {
197 s_viewer->saveCameraParameters(file);
202 void EditCameraTool::loadCameraConfiguration(
const std::string& file) {
204 s_viewer->loadCameraParameters(file);
205 updateCameraParameters();
static bool Warning(const char *format,...)
Prints out a formatted warning message in console.
void setCenterOfRotation(double x, double y, double z)
vtkRenderer * getCurrentRenderer(int viewport=0)
vtkSmartPointer< vtkCamera > getVtkCamera(int viewport=0)
void synchronizeGeometryBounds(int viewport=0)
void setRotationFactor(double factor)
void UpdateScreen()
UpdateScreen - Updates/refreshes the render window This method forces a render update after actor cha...
vtkBoundingBox getVisibleGeometryBounds()
double getRotationFactor()
void resetCamera(const ccBBox *bbox)
void getCenterOfRotation(double center[3])
Generic visualizer 3D interface.
CLOUDVIEWER_HOST_DEVICE float Cross(const Point &a, const Point &b)