[ create a new paste ] login | about

Link: http://codepad.org/AzzUGwli    [ raw code | fork ]

C++, pasted on Mar 2:
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;
}


Create a new paste based on this one


Comments: