|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Shinya Kitaoka |
810553 |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef MOVIEGENERATOR_INCLUDED
|
|
Toshihiro Shimizu |
890ddd |
#define MOVIEGENERATOR_INCLUDED
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
262a92 |
#include <memory></memory>
|
|
Shinya Kitaoka |
262a92 |
|
|
Toshihiro Shimizu |
890ddd |
#include "tfilepath.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tpixel.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tgeometry.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// forward declaration
|
|
Toshihiro Shimizu |
890ddd |
class ProgressMeter;
|
|
Toshihiro Shimizu |
890ddd |
class TSceneProperties;
|
|
Toshihiro Shimizu |
890ddd |
class TXsheet;
|
|
Toshihiro Shimizu |
890ddd |
class ToonzScene;
|
|
Toshihiro Shimizu |
890ddd |
class OnionSkinMask;
|
|
Toshihiro Shimizu |
890ddd |
class TWidget;
|
|
Toshihiro Shimizu |
890ddd |
class TOutputProperties;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//=============================================================================
|
|
Toshihiro Shimizu |
890ddd |
// MovieGenerator
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
class MovieGenerator {
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
class Imp;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
private:
|
|
Shinya Kitaoka |
120a6e |
std::unique_ptr<imp> m_imp;</imp>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
class Listener {
|
|
Shinya Kitaoka |
120a6e |
public:
|
|
Shinya Kitaoka |
120a6e |
//! if listener returns false then the movie generation aborts
|
|
Shinya Kitaoka |
120a6e |
virtual bool onFrameCompleted(int frameCount) = 0;
|
|
Shinya Kitaoka |
120a6e |
virtual ~Listener() {}
|
|
Shinya Kitaoka |
120a6e |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
MovieGenerator(const TFilePath &outputPath,
|
|
Shinya Kitaoka |
120a6e |
const TDimension &cameraResolution,
|
|
Shinya Kitaoka |
120a6e |
TOutputProperties &outputProperties, bool useMarkers);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
~MovieGenerator();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void setListener(Listener *listener);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
//! set how many scenes will be generated. call it once, at the beginning
|
|
Shinya Kitaoka |
120a6e |
void setSceneCount(int sceneCount);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
//! Note: add soundtrack BEFORE scene.
|
|
Shinya Kitaoka |
120a6e |
bool addSoundtrack(const ToonzScene &scene, int frameOffset,
|
|
Shinya Kitaoka |
120a6e |
int sceneFramesCount);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
bool addScene(ToonzScene &scene, int r0, int r1);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void setBackgroundColor(TPixel32 color);
|
|
Shinya Kitaoka |
120a6e |
TPixel32 getBackgroundColor();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void setOnionSkin(int columnIndex, const OnionSkinMask &mask);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
TFilePath getOutputPath();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void close();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
private:
|
|
Shinya Kitaoka |
120a6e |
// not implemented
|
|
Shinya Kitaoka |
120a6e |
MovieGenerator(const MovieGenerator &);
|
|
Shinya Kitaoka |
120a6e |
MovieGenerator &operator=(const MovieGenerator &);
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#endif
|