627           vtkCommand::TimerEvent == eventId  
   653             for (
auto & subframe: frame->subframes)
   654               subframe.renderer->RemoveAllViewProps();
   656             frame->window->Finalize();
   669               framepair.second->RTAddFigures();
   675               auto frame=framepair.second;
   677               if(frame->mainthread->communication_blocked)
   678                 frame->title_actor->SetText(6,
"-|-");
   680                 frame->title_actor->SetText(6,
"---");
   682               frame->title_actor->Modified();
   686               frame->window->Render();
   687               if (frame->videowriter && ! frame->mainthread->communication_blocked)
   690                 auto imgfilter = vtkSmartPointer<vtkWindowToImageFilter>::New();
   691                 imgfilter->SetInput(frame->window);
   693                 frame->videowriter->SetInputConnection(imgfilter->GetOutputPort());
   695                 frame->videowriter->Write();
   706             auto imgfilter = vtkSmartPointer<vtkWindowToImageFilter>::New();
   707             auto pngwriter = vtkSmartPointer<vtkPNGWriter>::New();
   709             pngwriter->SetInputConnection(imgfilter->GetOutputPort());
   710             pngwriter->SetFileName(frame->parameter.filename.c_str());
   712             imgfilter->SetInput(frame->window);
   725             frame->videowriter =  vtkSmartPointer<vtkOggTheoraWriter>::New();
   726             frame->videowriter->SetFileName(frame->parameter.filename.c_str());
   727             frame->videowriter->Start();
   734             frame->videowriter->End();
   735             frame->videowriter=0;
   742             frame->RTRemoveFigure(frame->parameter.current_figure);
   750             frame->RTSetLayout(frame->parameter.nvpx,frame->parameter.nvpy); 
   751             frame->RTResetRenderers(
false);
   758             frame->window->SetSize(frame->parameter.winsize_x, frame->parameter.winsize_y);
   766             frame->RTSetActiveSubFrame(frame->parameter.active_subframe,
false);
   774             auto& subframe=frame->subframes[frame->parameter.active_subframe];
   775             frame->RTSetActiveSubFrameCameraViewAngle(subframe,frame->parameter.camera_view_angle);
   783             auto& subframe=frame->subframes[frame->parameter.active_subframe];
   784             frame->RTSetActiveSubFrameCameraPosition(subframe,frame->parameter.camera_position);
   792             auto& subframe=frame->subframes[frame->parameter.active_subframe];
   793             frame->RTSetActiveSubFrameCameraFocalPoint(subframe,frame->parameter.camera_focal_point);
   800             frame->RTSetSingleView(frame->parameter.single_subframe_view);
   810             frame->window->SetPosition(frame->parameter.winposition_x, frame->parameter.winposition_y);
   819             frame->title_actor->SetText(7,frame->parameter.frametitle.c_str());
   820             frame->title_actor->Modified();
   829             frame->window->SetWindowName(frame->parameter.wintitle.c_str());
   838             auto lrenderer=
mainthread->
framemap[frame->parameter.camlinkframenum]->subframes[frame->parameter.camlinkframepos].renderer;
   839             renderer->SetActiveCamera(lrenderer->GetActiveCamera());
   848               framepair.second->window->Finalize();
 
bool communication_blocked
space down state ? 
 
vtkSmartPointer< vtkRenderWindowInteractor > interactor
 
Communicator::Command cmd
Communication command. 
 
std::condition_variable condition_variable
Condition variable signalizing finished command. 
 
std::mutex mutex
Mutex to organize communication. 
 
vtkSmartPointer< vtkRenderWindowInteractor > Interactor
 
std::map< int, Frame * > framemap
Map of all frames handeled by thread. 
 
bool running_multithreaded
Thread state. 
 
int iframe
Frame number as parameter during communication. 
 
static void RTAddFrame(MainThread *mt, int iframe)
Add frame, to be called from render thread.