|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef TTOONZIMAGE_INCLUDED
|
|
Toshihiro Shimizu |
890ddd |
#define TTOONZIMAGE_INCLUDED
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#include "trastercm.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tthreadmessage.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "timage.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#undef DVAPI
|
|
Toshihiro Shimizu |
890ddd |
#undef DVVAR
|
|
Toshihiro Shimizu |
890ddd |
#ifdef TNZCORE_EXPORTS
|
|
Toshihiro Shimizu |
890ddd |
#define DVAPI DV_EXPORT_API
|
|
Toshihiro Shimizu |
890ddd |
#define DVVAR DV_EXPORT_VAR
|
|
Toshihiro Shimizu |
890ddd |
#else
|
|
Toshihiro Shimizu |
890ddd |
#define DVAPI DV_IMPORT_API
|
|
Toshihiro Shimizu |
890ddd |
#define DVVAR DV_IMPORT_VAR
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
class TToonzImageP;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//! An image containing a Toonz raster.
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
class DVAPI TToonzImage : public TImage
|
|
Toshihiro Shimizu |
890ddd |
{
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//! dpi value for x axis
|
|
Toshihiro Shimizu |
890ddd |
double m_dpix,
|
|
Toshihiro Shimizu |
890ddd |
//! dpi value for y axis
|
|
Toshihiro Shimizu |
890ddd |
m_dpiy;
|
|
Toshihiro Shimizu |
890ddd |
int m_subsampling;
|
|
Toshihiro Shimizu |
890ddd |
//! The name of the image
|
|
Toshihiro Shimizu |
890ddd |
string m_name;
|
|
Toshihiro Shimizu |
890ddd |
//! The savebox of the image
|
|
Toshihiro Shimizu |
890ddd |
TRect m_savebox;
|
|
Toshihiro Shimizu |
890ddd |
//double m_hPos;
|
|
Toshihiro Shimizu |
890ddd |
//! The offset of the image
|
|
Toshihiro Shimizu |
890ddd |
TPoint m_offset;
|
|
Toshihiro Shimizu |
890ddd |
//! ColorMapped raster of the image.
|
|
Toshihiro Shimizu |
890ddd |
TRasterCM32P m_ras;
|
|
Toshihiro Shimizu |
890ddd |
TThread::Mutex m_mutex;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Toshihiro Shimizu |
890ddd |
TToonzImage();
|
|
Toshihiro Shimizu |
890ddd |
TToonzImage(const TRasterCM32P &raster, const TRect &saveBox);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
~TToonzImage();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
private:
|
|
Toshihiro Shimizu |
890ddd |
//! Is used to clone an existing ToonzImage.
|
|
Toshihiro Shimizu |
890ddd |
TToonzImage(const TToonzImage &);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//! Not implemented
|
|
Toshihiro Shimizu |
890ddd |
TToonzImage &operator=(const TToonzImage &);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Toshihiro Shimizu |
890ddd |
//! Return the type of the image.
|
|
Toshihiro Shimizu |
890ddd |
TImage::Type getType() const { return TImage::TOONZ_RASTER; }
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//! Return the size of the Image.
|
|
Toshihiro Shimizu |
890ddd |
TDimension getSize() const { return m_size; }
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//! Get the dpi values of the image for x and y axes.
|
|
Toshihiro Shimizu |
890ddd |
void getDpi(double &dpix, double &dpiy) const
|
|
Toshihiro Shimizu |
890ddd |
{
|
|
Toshihiro Shimizu |
890ddd |
dpix = m_dpix;
|
|
Toshihiro Shimizu |
890ddd |
dpiy = m_dpiy;
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
//! Set the dpi values of the image for x and y axes.
|
|
Toshihiro Shimizu |
890ddd |
void setDpi(double dpix, double dpiy)
|
|
Toshihiro Shimizu |
890ddd |
{
|
|
Toshihiro Shimizu |
890ddd |
m_dpix = dpix;
|
|
Toshihiro Shimizu |
890ddd |
m_dpiy = dpiy;
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
int getSubsampling() const { return m_subsampling; }
|
|
Toshihiro Shimizu |
890ddd |
void setSubsampling(int s);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//! Return the savebox of the image
|
|
Toshihiro Shimizu |
890ddd |
TRect getSavebox() const { return m_savebox; }
|
|
Toshihiro Shimizu |
890ddd |
//! Set the savebox of the image.
|
|
Toshihiro Shimizu |
890ddd |
/*! The savebox setted is the intersection between \b rect and the image box.*/
|
|
Toshihiro Shimizu |
890ddd |
void setSavebox(const TRect &rect);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//! Return the boundin box of the image.
|
|
Toshihiro Shimizu |
890ddd |
TRectD getBBox() const { return convert(m_savebox); }
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//! Return the offset point of the image.
|
|
Toshihiro Shimizu |
890ddd |
TPoint getOffset() const { return m_offset; }
|
|
Toshihiro Shimizu |
890ddd |
//! Set the offset point of the image.
|
|
Toshihiro Shimizu |
890ddd |
void setOffset(const TPoint &offset) { m_offset = offset; }
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//! Return raster hPos \b m_hPos
|
|
Toshihiro Shimizu |
890ddd |
//double gethPos() const {return m_hPos;}
|
|
Toshihiro Shimizu |
890ddd |
//! Return a clone of image
|
|
Toshihiro Shimizu |
890ddd |
//void sethPos(double hPos) {m_hPos= hPos;}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//! Return a clone of the current image
|
|
Toshihiro Shimizu |
890ddd |
TImage *cloneImage() const;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//! Return the image's raster
|
|
Toshihiro Shimizu |
890ddd |
TRasterCM32P getCMapped() const;
|
|
Toshihiro Shimizu |
890ddd |
//! Return a copy of the image's raster.
|
|
Toshihiro Shimizu |
890ddd |
void getCMapped(const TRasterCM32P &ras);
|
|
Toshihiro Shimizu |
890ddd |
//! Set the image's raster
|
|
Toshihiro Shimizu |
890ddd |
void setCMapped(const TRasterCM32P &ras);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//! Return the image's raster.
|
|
Toshihiro Shimizu |
890ddd |
/*! Call the getCMapped() method.*/
|
|
Toshihiro Shimizu |
890ddd |
TRasterCM32P getRaster() const { return getCMapped(); }
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
TRasterP raster() const { return (TRasterP)getCMapped(); }
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//! Return a clone of the current image.
|
|
Toshihiro Shimizu |
890ddd |
TToonzImageP clone() const;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
private:
|
|
Toshihiro Shimizu |
890ddd |
//! Image dimension
|
|
Toshihiro Shimizu |
890ddd |
TDimension m_size;
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifdef WIN32
|
|
Toshihiro Shimizu |
890ddd |
template class DVAPI TSmartPointerT<ttoonzimage>;</ttoonzimage>
|
|
Toshihiro Shimizu |
890ddd |
template class DVAPI TDerivedSmartPointerT<ttoonzimage, timage="">;</ttoonzimage,>
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
class DVAPI TToonzImageP : public TDerivedSmartPointerT<ttoonzimage, timage=""></ttoonzimage,>
|
|
Toshihiro Shimizu |
890ddd |
{
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Toshihiro Shimizu |
890ddd |
TToonzImageP() {}
|
|
Toshihiro Shimizu |
890ddd |
TToonzImageP(TToonzImage *image) : DerivedSmartPointer(image) {}
|
|
Toshihiro Shimizu |
890ddd |
TToonzImageP(TImageP image) : DerivedSmartPointer(image) {}
|
|
Toshihiro Shimizu |
890ddd |
TToonzImageP(const TRasterCM32P &ras, const TRect &saveBox) : DerivedSmartPointer(new TToonzImage(ras, saveBox)) {}
|
|
Toshihiro Shimizu |
890ddd |
operator TImageP() { return TImageP(m_pointer); }
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#endif
|