|
|
Line 1: |
Line 1: |
| <div class="floatright">[[File:VTK_Examples_Baseline_GeometricObjectsDisplay_TestDisplayFrustum.png]]</div> | | <div class="floatright">[[File:VTK_Examples_Baseline_GeometricObjectsDisplay_TestDisplayFrustum.png]]</div> |
| This example gets the frustum from a camera and displays it on the screen. | | This example gets the frustum from a camera and displays it on the screen. |
− |
| |
− | ==DisplayFrustum.cxx==
| |
− | <source lang="cpp">
| |
− | #include <vtkFrustumSource.h>
| |
− | #include <vtkPolyData.h>
| |
− | #include <vtkSmartPointer.h>
| |
− | #include <vtkCamera.h>
| |
− | #include <vtkPlanes.h>
| |
− | #include <vtkMapper.h>
| |
− | #include <vtkActor.h>
| |
− | #include <vtkRenderWindow.h>
| |
− | #include <vtkRenderer.h>
| |
− | #include <vtkRenderWindowInteractor.h>
| |
− | #include <vtkPolyDataMapper.h>
| |
− |
| |
− | int main(int, char *[])
| |
− | {
| |
− | vtkSmartPointer<vtkCamera> camera =
| |
− | vtkSmartPointer<vtkCamera>::New();
| |
− | double planesArray[24];
| |
− |
| |
− | camera->GetFrustumPlanes(1, planesArray);
| |
− |
| |
− | vtkSmartPointer<vtkPlanes> planes =
| |
− | vtkSmartPointer<vtkPlanes>::New();
| |
− | planes->SetFrustumPlanes(planesArray);
| |
− |
| |
− | vtkSmartPointer<vtkFrustumSource> frustumSource =
| |
− | vtkSmartPointer<vtkFrustumSource>::New();
| |
− | frustumSource->SetPlanes(planes);
| |
− | frustumSource->Update();
| |
− |
| |
− | vtkPolyData* frustum = frustumSource->GetOutput();
| |
− |
| |
− | vtkSmartPointer<vtkPolyDataMapper> mapper =
| |
− | vtkSmartPointer<vtkPolyDataMapper>::New();
| |
− | mapper->SetInput(frustum);
| |
− |
| |
− | vtkSmartPointer<vtkActor> actor =
| |
− | vtkSmartPointer<vtkActor>::New();
| |
− | actor->SetMapper(mapper);
| |
− |
| |
− | // a renderer and render window
| |
− | vtkSmartPointer<vtkRenderer> renderer =
| |
− | vtkSmartPointer<vtkRenderer>::New();
| |
− | vtkSmartPointer<vtkRenderWindow> renderWindow =
| |
− | vtkSmartPointer<vtkRenderWindow>::New();
| |
− | renderWindow->AddRenderer(renderer);
| |
− |
| |
− | // an interactor
| |
− | vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
| |
− | vtkSmartPointer<vtkRenderWindowInteractor>::New();
| |
− | renderWindowInteractor->SetRenderWindow(renderWindow);
| |
− |
| |
− | // add the actors to the scene
| |
− | renderer->AddActor(actor);
| |
− | renderer->SetBackground( .2, .1, .3); // Background color dark purple
| |
− |
| |
− | // render an image (lights and cameras are created automatically)
| |
− | renderWindow->Render();
| |
− |
| |
− | // begin mouse interaction
| |
− | renderWindowInteractor->Start();
| |
− | return EXIT_SUCCESS;
| |
− | }
| |
− |
| |
− | </source>
| |
| | | |
| ==CMakeLists.txt== | | ==CMakeLists.txt== |