#pragma once
#ifndef TIMAGEINFO_H
#define TIMAGEINFO_H
#undef DVAPI
#undef DVVAR
#ifdef TNZCORE_EXPORTS
#define DVAPI DV_EXPORT_API
#define DVVAR DV_EXPORT_VAR
#else
#define DVAPI DV_IMPORT_API
#define DVVAR DV_IMPORT_VAR
#endif
//================================================
// Forward declarations
class TPropertyGroup;
//================================================
//*************************************************************************
// TImageInfo class
//*************************************************************************
/*!
\brief Stores description data about a generic image.
\todo Stores useless/redundant/improper data which should be moved or
removed.
*/
class DVAPI TImageInfo {
public:
// NOTE: Fields ordered by type size - minimizes padding
double m_dpix, //!< Horizontal image dpi.
m_dpiy, //!< Vertical image dpi.
m_frameRate; //!< Movie frame rate. \deprecated Should not be here. An
//! image has \a no frame rate!
TPropertyGroup *m_properties; //!< Format-specific image data.
int m_lx, //!< Image width.
m_ly, //!< Image height.
m_x0, //!< Image contents rect's left coordinate.
m_y0, //!< Image contents rect's bottom coordinate.
m_x1, //!< Image contents rect's right coordinate.
m_y1, //!< Image contents rect's top coordinate.
m_samplePerPixel, //!< Number of samples (channels) per pixel.
m_bitsPerSample, //!< Number of bits per sample (channel).
m_fileSize; //!< Total size (in bytes) of the image file. \deprecated
//! Possibly useless.
bool m_valid; //!< \a Deprecated. \deprecated Just... wrong.
public:
TImageInfo()
: m_dpix(0)
, m_dpiy(0)
, m_frameRate(12)
, m_properties(0)
, m_lx(0)
, m_ly(0)
, m_x0(0)
, m_y0(0)
, m_x1(-1)
, m_y1(-1)
, m_samplePerPixel(0)
, m_bitsPerSample(8)
, m_fileSize(0)
, m_valid(false) {}
TImageInfo(int lx, int ly)
: m_dpix(0)
, m_dpiy(0)
, m_frameRate(12)
, m_properties(0)
, m_lx(lx)
, m_ly(ly)
, m_x0(0)
, m_y0(0)
, m_x1(-1)
, m_y1(-1)
, m_samplePerPixel(0)
, m_bitsPerSample(8)
, m_fileSize(0)
, m_valid(false) {}
};
#endif // TIMAGEINFO_H