MCPcopy Create free account
hub / github.com/MITK/MITK / SetStandardView

Method SetStandardView

Modules/Core/src/Controllers/mitkCameraController.cpp:138–198  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

136}
137
138void mitk::CameraController::SetStandardView(mitk::CameraController::StandardView view)
139{
140 const auto *glRenderer = dynamic_cast<const mitk::VtkPropRenderer *>(m_Renderer);
141 if (glRenderer == nullptr)
142 return;
143 vtkRenderer *vtkRenderer = glRenderer->GetVtkRenderer();
144 assert(vtkRenderer);
145
146 mitk::BoundingBox::Pointer bb;
147 mitk::DataStorage *ds = m_Renderer->GetDataStorage();
148 if (ds != nullptr)
149 bb = ds->ComputeBoundingBox();
150 else
151 return;
152
153 if (m_Renderer->GetMapperID() == mitk::BaseRenderer::Standard3D)
154 {
155 // set up the view for the 3D render window. The views for 2D are set up in the mitkVtkPropRenderer
156 mitk::Point3D middle = bb->GetCenter();
157 vtkRenderer->GetActiveCamera()->SetFocalPoint(middle[0], middle[1], middle[2]);
158 switch (view)
159 {
160 case ANTERIOR:
161 case POSTERIOR:
162 case SINISTER:
163 case DEXTER:
164 vtkRenderer->GetActiveCamera()->SetViewUp(0, 0, 1);
165 break;
166 case CRANIAL:
167 case CAUDAL:
168 vtkRenderer->GetActiveCamera()->SetViewUp(0, -1, 0);
169 break;
170 }
171 switch (view)
172 {
173 case ANTERIOR:
174 vtkRenderer->GetActiveCamera()->SetPosition(middle[0], -100000, middle[2]);
175 break;
176 case POSTERIOR:
177 vtkRenderer->GetActiveCamera()->SetPosition(middle[0], +100000, middle[2]);
178 break;
179 case SINISTER:
180 vtkRenderer->GetActiveCamera()->SetPosition(+100000, middle[1], middle[2]);
181 break;
182 case DEXTER:
183 vtkRenderer->GetActiveCamera()->SetPosition(-100000, middle[1], middle[2]);
184 break;
185 case CRANIAL:
186 vtkRenderer->GetActiveCamera()->SetPosition(middle[0], middle[1], 100000);
187 break;
188 case CAUDAL:
189 vtkRenderer->GetActiveCamera()->SetPosition(middle[0], middle[1], -100000);
190 break;
191 }
192 vtkRenderer->ResetCamera();
193
194 vtkRenderer->ResetCameraClippingRange();
195 }

Callers 8

SetViewToAnteriorMethod · 0.95
SetViewToPosteriorMethod · 0.95
SetViewToSinisterMethod · 0.95
SetViewToDexterMethod · 0.95
SetViewToCranialMethod · 0.95
SetViewToCaudalMethod · 0.95
hotspotClickedMethod · 0.80

Calls 6

ComputeBoundingBoxMethod · 0.80
GetCenterMethod · 0.80
GetVtkRendererMethod · 0.45
GetDataStorageMethod · 0.45
SetPositionMethod · 0.45
RequestUpdateAllMethod · 0.45

Tested by

no test coverage detected