tahoma2d/toonz/sources/include/tlevel.h

86 lines
1.9 KiB
C
Raw Normal View History

2016-05-17 03:04:11 +12:00
#pragma once
2016-03-19 06:57:51 +13:00
#ifndef TLEVEL_INCLUDED
#define TLEVEL_INCLUDED
#include "timage.h"
#include "tfilepath.h"
#undef DVAPI
#undef DVVAR
#ifdef TIMAGE_EXPORTS
#define DVAPI DV_EXPORT_API
#define DVVAR DV_EXPORT_VAR
#else
#define DVAPI DV_IMPORT_API
#define DVVAR DV_IMPORT_VAR
#endif
//-------------------------------------------------------------------
class DVAPI TLevel final : public TSmartObject {
2016-06-15 18:43:10 +12:00
DECLARE_CLASS_CODE
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
typedef std::map<const TFrameId, TImageP> Table;
typedef Table::iterator Iterator;
2016-03-19 06:57:51 +13:00
private:
2016-06-15 18:43:10 +12:00
std::string m_name;
Table *m_table;
TPalette *m_palette;
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
TLevel();
~TLevel();
2016-03-19 06:57:51 +13:00
private:
2016-06-15 18:43:10 +12:00
// not implemented
TLevel(const TLevel &);
TLevel &operator=(const TLevel &);
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
// nome
std::string getName() const;
void setName(std::string name);
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
// frames
int getFrameCount() const { return (int)m_table->size(); };
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
const TImageP &frame(const TFrameId fid);
const TImageP &frame(int f) { return frame(TFrameId(f)); };
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
void setFrame(const TFrameId &fid, const TImageP &img);
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
// ritorna la posizione (0..getNFrames()-1) del frame f
// se il frame f non c'e' ritorna -1
// int getIndex(const TFrameId fid);
// int getIndex(int f) {return getIndex(TFrameId(f));};
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
Iterator begin() { return m_table->begin(); };
Iterator end() { return m_table->end(); };
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
// uh - oh; serve a tinytoonz/filmstrip.
// PROVVISORIO !!
Table *getTable() { return m_table; }
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
TPalette *getPalette();
void setPalette(TPalette *);
2016-03-19 06:57:51 +13:00
};
//-------------------------------------------------------------------
2016-04-15 17:11:23 +12:00
#ifdef _WIN32
2016-03-19 06:57:51 +13:00
template class DVAPI TSmartPointerT<TLevel>;
#endif
class DVAPI TLevelP final : public TSmartPointerT<TLevel> {
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
TLevelP() : TSmartPointerT<TLevel>(new TLevel) {}
TLevelP(TLevel *level) : TSmartPointerT<TLevel>(level) {}
2016-03-19 06:57:51 +13:00
};
//-------------------------------------------------------------------
#endif