Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

mitk::MovieGenerator Class Reference

#include <mitkMovieGenerator.h>

Inheritance diagram for mitk::MovieGenerator:
Inheritance graph
[legend]
Collaboration diagram for mitk::MovieGenerator:
Collaboration graph
[legend]

List of all members.

Public Types

typedef MovieGenerator Self
typedef itk::LightObject Superclass
typedef itk::SmartPointer< SelfPointer
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
Stepperm_stepper
 stores the used stepper
BaseRendererm_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

Detailed Description

Definition at line 31 of file mitkMovieGenerator.h.


Member Typedef Documentation

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.


Constructor & Destructor Documentation

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;
}

Member Function Documentation

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]
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.

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]

renderer to record

Definition at line 44 of file mitkMovieGenerator.h.

{ m_renderer  =  renderer;  }
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;
}

Member Data Documentation

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.

Definition at line 89 of file mitkMovieGenerator.h.

stores the uses renderer

Definition at line 86 of file mitkMovieGenerator.h.

stores the used stepper

Definition at line 83 of file mitkMovieGenerator.h.

InitGenerator() stores movie size in those variables.

Definition at line 89 of file mitkMovieGenerator.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines