|
|
(6 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
− | 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 argc, char *argv[])
| |
− | {
| |
− | 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(1,1,1); // Background color white
| |
− |
| |
− | // render an image (lights and cameras are created automatically)
| |
− | renderWindow->Render();
| |
− |
| |
− | // begin mouse interaction
| |
− | renderWindowInteractor->Start();
| |
− | return 0;
| |
− | }
| |
− | </source>
| |
− |
| |
− | ==CMakeLists.txt==
| |
− | <source lang="text">
| |
− | cmake_minimum_required(VERSION 2.6)
| |
− |
| |
− | PROJECT(Frustum)
| |
− |
| |
− | FIND_PACKAGE(VTK REQUIRED)
| |
− | INCLUDE(${VTK_USE_FILE})
| |
− |
| |
− | ADD_EXECUTABLE(DisplayFrustum DisplayFrustum.cxx)
| |
− | TARGET_LINK_LIBRARIES(DisplayFrustum vtkHybrid)
| |
− |
| |
− | </source>
| |