#include <mitkMovieGenerator.h>
Public Types | |
typedef MovieGenerator | Self |
typedef itk::LightObject | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
virtual const char * | GetClassName () const |
virtual void | SetStepper (Stepper *stepper) |
stepper used to control movie generation | |
virtual void | SetRenderer (BaseRenderer *renderer) |
renderer to record | |
virtual void | SetFileName (const char *fileName) |
filename under which movie is saved | |
virtual bool | WriteMovie () |
uses given stepper and filename to create a movie from the active OpenGL context | |
virtual bool | WriteCurrentFrameToMovie () |
alternative way, which does not use a stepper; | |
virtual void | ReleaseMovieWriter () |
releases a movie writer after usage of WriteCurrentFrameToMovie() | |
virtual void | SetFrameRate (unsigned int rate) |
unsigned int | GetFrameRate () |
Static Public Member Functions | |
static Pointer | New (void) |
Protected Member Functions | |
MovieGenerator () | |
default constructor | |
virtual bool | InitGenerator ()=0 |
called directly before the first frame is added, determines movie size from renderer | |
virtual bool | AddFrame (void *data)=0 |
used to add a frame | |
virtual bool | TerminateGenerator ()=0 |
called after the last frame is added | |
Protected Attributes | |
char | m_fileName [1024] |
stores the movie filename | |
Stepper * | m_stepper |
stores the used stepper | |
BaseRenderer * | m_renderer |
stores the uses renderer | |
int | m_width |
InitGenerator() stores movie size in those variables. | |
int | m_height |
bool | m_initialized |
unsigned int | m_FrameRate |
Definition at line 31 of file mitkMovieGenerator.h.
typedef itk::SmartPointer<const Self> mitk::MovieGenerator::ConstPointer |
Reimplemented in mitk::MovieGeneratorWin32, and mitk::MovieGeneratorOpenCV.
Definition at line 35 of file mitkMovieGenerator.h.
typedef itk::SmartPointer<Self> mitk::MovieGenerator::Pointer |
Reimplemented in mitk::MovieGeneratorWin32, and mitk::MovieGeneratorOpenCV.
Definition at line 35 of file mitkMovieGenerator.h.
Reimplemented in mitk::MovieGeneratorWin32, and mitk::MovieGeneratorOpenCV.
Definition at line 35 of file mitkMovieGenerator.h.
typedef itk::LightObject mitk::MovieGenerator::Superclass |
Reimplemented in mitk::MovieGeneratorWin32, and mitk::MovieGeneratorOpenCV.
Definition at line 35 of file mitkMovieGenerator.h.
mitk::MovieGenerator::MovieGenerator | ( | ) | [protected] |
default constructor
Definition at line 37 of file mitkMovieGenerator.cpp.
References m_fileName.
:m_stepper(NULL), m_renderer(NULL), m_width(0), m_height(0), m_initialized(false), m_FrameRate(20) { m_fileName[0] = 0; }
virtual bool mitk::MovieGenerator::AddFrame | ( | void * | data ) | [protected, pure virtual] |
used to add a frame
Implemented in mitk::MovieGeneratorWin32, and mitk::MovieGeneratorOpenCV.
virtual const char* mitk::MovieGenerator::GetClassName | ( | ) | const [virtual] |
Reimplemented in mitk::MovieGeneratorWin32, and mitk::MovieGeneratorOpenCV.
unsigned int mitk::MovieGenerator::GetFrameRate | ( | ) |
Definition at line 147 of file mitkMovieGenerator.cpp.
{ return m_FrameRate; }
virtual bool mitk::MovieGenerator::InitGenerator | ( | ) | [protected, pure virtual] |
called directly before the first frame is added, determines movie size from renderer
Implemented in mitk::MovieGeneratorWin32, and mitk::MovieGeneratorOpenCV.
mitk::MovieGenerator::Pointer mitk::MovieGenerator::New | ( | void | ) | [static] |
Reimplemented in mitk::MovieGeneratorWin32, and mitk::MovieGeneratorOpenCV.
Definition at line 49 of file mitkMovieGenerator.cpp.
References mitk::MovieGeneratorWin32::New().
Referenced by QmitkSimpleExampleView::generateMovie(), and QmitkMovieMaker::QmitkMovieMaker().
{ Pointer smartPtr; MovieGenerator *rawPtr = ::itk::ObjectFactory<MovieGenerator>::Create(); if(rawPtr == NULL) { #ifdef WIN32 #ifndef __GNUC__ //#if ! (_MSC_VER >= 1400) mitk::MovieGenerator::Pointer wp = static_cast<mitk::MovieGenerator*>(mitk::MovieGeneratorWin32::New()); return wp; //#endif #endif #endif } smartPtr = rawPtr; if(rawPtr != NULL) rawPtr->UnRegister(); return smartPtr; }
void mitk::MovieGenerator::ReleaseMovieWriter | ( | ) | [virtual] |
releases a movie writer after usage of WriteCurrentFrameToMovie()
Definition at line 136 of file mitkMovieGenerator.cpp.
{ TerminateGenerator(); m_initialized = false; }
virtual void mitk::MovieGenerator::SetFileName | ( | const char * | fileName ) | [inline, virtual] |
filename under which movie is saved
Reimplemented in mitk::MovieGeneratorWin32, and mitk::MovieGeneratorOpenCV.
Definition at line 47 of file mitkMovieGenerator.h.
{ strcpy( m_fileName, fileName ); }
void mitk::MovieGenerator::SetFrameRate | ( | unsigned int | rate ) | [virtual] |
Definition at line 142 of file mitkMovieGenerator.cpp.
{ m_FrameRate = rate; }
virtual void mitk::MovieGenerator::SetRenderer | ( | BaseRenderer * | renderer ) | [inline, virtual] |
virtual void mitk::MovieGenerator::SetStepper | ( | Stepper * | stepper ) | [inline, virtual] |
stepper used to control movie generation
Definition at line 41 of file mitkMovieGenerator.h.
{ m_stepper = stepper; }
virtual bool mitk::MovieGenerator::TerminateGenerator | ( | ) | [protected, pure virtual] |
called after the last frame is added
Implemented in mitk::MovieGeneratorWin32, and mitk::MovieGeneratorOpenCV.
bool mitk::MovieGenerator::WriteCurrentFrameToMovie | ( | ) | [virtual] |
alternative way, which does not use a stepper;
Definition at line 109 of file mitkMovieGenerator.cpp.
References mitk::RenderingManager::ForceImmediateUpdate(), mitk::RenderingManager::GetInstance(), GL_BGR, GL_UNSIGNED_BYTE, and glReadPixels().
{ if (m_renderer) { m_renderer->GetRenderWindow()->MakeCurrent(); if(!m_initialized) { RenderingManager::GetInstance()->ForceImmediateUpdate(m_renderer->GetRenderWindow()); m_initialized = InitGenerator(); } if (!m_initialized) { TerminateGenerator(); return false; } int imgSize = 3 * m_width * m_height; GLbyte *data = new GLbyte[imgSize]; RenderingManager::GetInstance()->ForceImmediateUpdate(m_renderer->GetRenderWindow()); glReadPixels( 5, 5, m_width, m_height, GL_BGR, GL_UNSIGNED_BYTE, (void*)data ); AddFrame( data ); delete[] data; } return true; }
bool mitk::MovieGenerator::WriteMovie | ( | ) | [virtual] |
uses given stepper and filename to create a movie from the active OpenGL context
Definition at line 71 of file mitkMovieGenerator.cpp.
References mitk::RenderingManager::ForceImmediateUpdate(), mitk::RenderingManager::GetInstance(), GL_BGR, GL_UNSIGNED_BYTE, and glReadPixels().
{ bool ok = false; if (m_stepper) { if (m_renderer) m_renderer->GetRenderWindow()->MakeCurrent(); //m_stepper->First(); RenderingManager::GetInstance()->ForceImmediateUpdate(m_renderer->GetRenderWindow()); ok = InitGenerator(); if (!ok) { TerminateGenerator(); return false; } int imgSize = 3 * m_width * m_height; printf( "Video size = %i x %i\n", m_width, m_height ); GLbyte *data = new GLbyte[imgSize]; //duplicate steps if pingPong option is switched to on. unsigned int numOfSteps = m_stepper->GetSteps(); if( m_stepper->GetPingPong() ) numOfSteps*=2; for (unsigned int i=0; i<numOfSteps; i++) { if (m_renderer) m_renderer->GetRenderWindow()->MakeCurrent(); RenderingManager::GetInstance()->ForceImmediateUpdate(m_renderer->GetRenderWindow()); glReadPixels( 5, 5, m_width, m_height, GL_BGR, GL_UNSIGNED_BYTE, (void*)data ); AddFrame( data ); m_stepper->Next(); } ok = TerminateGenerator(); delete[] data; } return ok; }
char mitk::MovieGenerator::m_fileName[1024] [protected] |
stores the movie filename
Definition at line 80 of file mitkMovieGenerator.h.
Referenced by MovieGenerator().
unsigned int mitk::MovieGenerator::m_FrameRate [protected] |
Definition at line 93 of file mitkMovieGenerator.h.
int mitk::MovieGenerator::m_height [protected] |
Definition at line 89 of file mitkMovieGenerator.h.
bool mitk::MovieGenerator::m_initialized [protected] |
Definition at line 91 of file mitkMovieGenerator.h.
Referenced by mitk::MovieGeneratorOpenCV::MovieGeneratorOpenCV().
BaseRenderer* mitk::MovieGenerator::m_renderer [protected] |
stores the uses renderer
Definition at line 86 of file mitkMovieGenerator.h.
Stepper* mitk::MovieGenerator::m_stepper [protected] |
stores the used stepper
Definition at line 83 of file mitkMovieGenerator.h.
int mitk::MovieGenerator::m_width [protected] |
InitGenerator() stores movie size in those variables.
Definition at line 89 of file mitkMovieGenerator.h.