codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
int RenderWindowManager::AddRenderWindow( vtkPropCollection *props, const char *windowTitle, bool bStartInteractor /*= false */) { if( !props ) return -1; //create a render window assembly vtkRenderWindow *renWin = NULL; vtkRenderer *aRenderer = NULL; vtkRenderWindowInteractor *iren = NULL; vtkInteractorStyleTrackballCamera *style = NULL; aRenderer = vtkRenderer::New(); aRenderer->TwoSidedLightingOn(); aRenderer->LightFollowCameraOn(); aRenderer->SetAmbient( 10,10,10 ); vtkLight *light = vtkLight::New(); light->SetLightTypeToHeadlight(); aRenderer->AddLight( light ); light->Delete(); renWin = vtkRenderWindow::New(); renWin->AddRenderer(aRenderer); renWin->SetSize(700,500); style = vtkInteractorStyleTrackballCamera::New(); iren = vtkRenderWindowInteractor::New(); iren->LightFollowCameraOff(); //iren->SetNumberOfFlyFrames(1); iren->SetRenderWindow(renWin); iren->SetInteractorStyle(style); //collect the window this->windows->AddItem( renWin ); /* //attach our exit handler vtkRenderWindowExitCommand *irenexit = vtkRenderWindowExitCommand::New(); iren->AddObserver( vtkCommand::ExitEvent, irenexit ); irenexit->Delete(); */ vtkRenderWindowCharacterCommand *savecallback = vtkRenderWindowCharacterCommand::New(); savecallback->SetMagFactor( this->MagFactor ); savecallback->SetOutputImageExtension( this->ImageType.c_str() ); savecallback->SetOutputImagePrefix( this->ImagePrefix.c_str() ); savecallback->SetRenderer( aRenderer ); style->AddObserver( vtkCommand::CharEvent, savecallback); savecallback->Delete(); // put our character command handler on the main window vtkCallbackCommand* callback = vtkCallbackCommand::New(); callback->SetClientData(aRenderer); callback->SetCallback(CharacterCommandCallback); style->AddObserver(vtkCommand::CharEvent, callback); callback->Delete(); //add the props vtkProp *prop = NULL; for( props->InitTraversal(); prop = props->GetNextProp() ; ) { aRenderer->AddViewProp( prop ); } if( this->bPrintHelp ) { this->PrintRenderWindowCommands(); } aRenderer->ResetCameraClippingRange(); aRenderer->ResetCamera(); aRenderer->Render(); iren->Initialize(); renWin->SetWindowName( windowTitle ); if(bStartInteractor) iren->Start(); //delete the assembly style->Delete(); iren->Delete(); aRenderer->Delete(); int rval = -1; rval = this->GetIndex( renWin ); renWin->Delete(); return rval; }
Private
[
?
]
Run code
Submit