445 lines
15 KiB
C++
445 lines
15 KiB
C++
#ifndef _SAPDATA_H_
|
|||
|
|
#define _SAPDATA_H_
|
||
|
|
|
||
|
|
// SapData.h : header file
|
||
|
|
//
|
||
|
|
|
||
|
|
#include "SapClassBasicDef.h"
|
||
|
|
|
||
|
|
|
||
|
|
//
|
||
|
|
// Basic definitions available to all classes
|
||
|
|
//
|
||
|
|
|
||
|
|
// Sapera data formats
|
||
|
|
typedef int SapFormat; // For compatibility with old Sapera++ application code
|
||
|
|
enum _SapFormat
|
||
|
|
{
|
||
|
|
SapFormatUnknown = 0,
|
||
|
|
|
||
|
|
// Monochrome data formats
|
||
|
|
SapFormatMono8 = CORDATA_FORMAT_MONO8,
|
||
|
|
SapFormatInt8 = CORDATA_FORMAT_INT8,
|
||
|
|
SapFormatUint8 = CORDATA_FORMAT_UINT8,
|
||
|
|
SapFormatMono16 = CORDATA_FORMAT_MONO16,
|
||
|
|
SapFormatInt16 = CORDATA_FORMAT_INT16,
|
||
|
|
SapFormatUint16 = CORDATA_FORMAT_UINT16,
|
||
|
|
SapFormatMono24 = CORDATA_FORMAT_MONO24,
|
||
|
|
SapFormatInt24 = CORDATA_FORMAT_INT24,
|
||
|
|
SapFormatUint24 = CORDATA_FORMAT_UINT24,
|
||
|
|
SapFormatMono32 = CORDATA_FORMAT_MONO32,
|
||
|
|
SapFormatInt32 = CORDATA_FORMAT_INT32,
|
||
|
|
SapFormatUint32 = CORDATA_FORMAT_UINT32,
|
||
|
|
SapFormatMono64 = CORDATA_FORMAT_MONO64,
|
||
|
|
SapFormatInt64 = CORDATA_FORMAT_INT64,
|
||
|
|
SapFormatUint64 = CORDATA_FORMAT_UINT64,
|
||
|
|
|
||
|
|
// Color RGB data formats
|
||
|
|
SapFormatRGB5551 = CORDATA_FORMAT_RGB5551, // 16-bit
|
||
|
|
SapFormatRGB565 = CORDATA_FORMAT_RGB565, // 16-bit
|
||
|
|
SapFormatRGB888 = CORDATA_FORMAT_RGB888, // 24-bit
|
||
|
|
SapFormatRGBR888 = CORDATA_FORMAT_RGBR888, // 24-bit
|
||
|
|
SapFormatRGB8888 = CORDATA_FORMAT_RGB8888, // 32-bit
|
||
|
|
SapFormatRGB101010 = CORDATA_FORMAT_RGB101010, // 32-bit
|
||
|
|
SapFormatRGB161616 = CORDATA_FORMAT_RGB161616, // 48-bit
|
||
|
|
SapFormatRGB16161616 = CORDATA_FORMAT_RGB16161616, // 64-bit
|
||
|
|
|
||
|
|
// Bi-color data formats
|
||
|
|
SapFormatBICOLOR88 = CORDATA_FORMAT_BICOLOR88,
|
||
|
|
SapFormatBICOLOR1616 = CORDATA_FORMAT_BICOLOR1616,
|
||
|
|
|
||
|
|
// Multispectral RGB-IR formats
|
||
|
|
SapFormatRGB888_MONO8 = CORDATA_FORMAT_RGB888_MONO8,
|
||
|
|
SapFormatRGB161616_MONO16 = CORDATA_FORMAT_RGB161616_MONO16,
|
||
|
|
|
||
|
|
// Color HSV data formats
|
||
|
|
SapFormatHSV = CORDATA_FORMAT_HSV,
|
||
|
|
|
||
|
|
// Color YUV data formats
|
||
|
|
SapFormatUYVY = CORDATA_FORMAT_UYVY,
|
||
|
|
SapFormatYUY2 = CORDATA_FORMAT_YUY2,
|
||
|
|
SapFormatYVYU = CORDATA_FORMAT_YVYU,
|
||
|
|
SapFormatYUYV = CORDATA_FORMAT_YUYV,
|
||
|
|
SapFormatY411 = CORDATA_FORMAT_Y411, // 4:1:1 also known as Y41P
|
||
|
|
SapFormatY211 = CORDATA_FORMAT_Y211, // 2:1:1
|
||
|
|
SapFormatYUV = CORDATA_FORMAT_YUV,
|
||
|
|
SapFormatAYU2 = CORDATA_FORMAT_AYUV,
|
||
|
|
SapFormatIYU1 = CORDATA_FORMAT_IYU1,
|
||
|
|
SapFormatIYU2 = CORDATA_FORMAT_IYU2,
|
||
|
|
|
||
|
|
// Other data formats
|
||
|
|
SapFormatFloat = CORDATA_FORMAT_FLOAT,
|
||
|
|
SapFormatComplex = CORDATA_FORMAT_COMPLEX, // Real and imaginary components
|
||
|
|
SapFormatPoint = CORDATA_FORMAT_POINT, // X and Y integer components
|
||
|
|
SapFormatFPoint = CORDATA_FORMAT_FPOINT, // Like Fpoint, but components are float instead of integer
|
||
|
|
|
||
|
|
SapFormatMono1 = CORDATA_FORMAT_MONO1, // 1-bit monochrome
|
||
|
|
SapFormatUint1 = CORDATA_FORMAT_UINT1,
|
||
|
|
SapFormatBinary = CORDATA_FORMAT_BINARY,
|
||
|
|
SapFormatHSI = CORDATA_FORMAT_HSI,
|
||
|
|
SapFormatLAB = CORDATA_FORMAT_LAB,
|
||
|
|
SapFormatLAB16161616 = CORDATA_FORMAT_LAB16161616,
|
||
|
|
SapFormatLAB101010 = CORDATA_FORMAT_LAB101010,
|
||
|
|
|
||
|
|
// Planar formats
|
||
|
|
SapFormatRGBP8 = CORDATA_FORMAT_RGBP8, // 8-bit RGB
|
||
|
|
SapFormatRGBP16 = CORDATA_FORMAT_RGBP16, // 16-bit RGB
|
||
|
|
SapFormatYUVP8 = CORDATA_FORMAT_YUVP8, // 8-bit YUV
|
||
|
|
SapFormatYUVP16 = CORDATA_FORMAT_YUVP16, // 16-bit YUV
|
||
|
|
SapFormatHSVP8 = CORDATA_FORMAT_HSVP8, // 8-bit HSV
|
||
|
|
SapFormatHSVP16 = CORDATA_FORMAT_HSVP16, // 16-bit HSV
|
||
|
|
SapFormatHSIP8 = CORDATA_FORMAT_HSIP8, // 8-bit HSI
|
||
|
|
SapFormatHSIP16 = CORDATA_FORMAT_HSIP16, // 16-bit HSI
|
||
|
|
SapFormatLABP8 = CORDATA_FORMAT_LABP8, // 8-bit LAB
|
||
|
|
SapFormatLABP16 = CORDATA_FORMAT_LABP16, // 16-bit LAB
|
||
|
|
|
||
|
|
// Additional monochrome data formats used by look-up tables
|
||
|
|
SapFormatMono9 = CORDATA_FORMAT_MONO9,
|
||
|
|
SapFormatMono10 = CORDATA_FORMAT_MONO10,
|
||
|
|
SapFormatMono11 = CORDATA_FORMAT_MONO11,
|
||
|
|
SapFormatMono12 = CORDATA_FORMAT_MONO12,
|
||
|
|
SapFormatMono13 = CORDATA_FORMAT_MONO13,
|
||
|
|
SapFormatMono14 = CORDATA_FORMAT_MONO14,
|
||
|
|
SapFormatMono15 = CORDATA_FORMAT_MONO15,
|
||
|
|
|
||
|
|
SapFormatUint9 = CORDATA_FORMAT_UINT9,
|
||
|
|
SapFormatUint10 = CORDATA_FORMAT_UINT10,
|
||
|
|
SapFormatUint11 = CORDATA_FORMAT_UINT11,
|
||
|
|
SapFormatUint12 = CORDATA_FORMAT_UINT12,
|
||
|
|
SapFormatUint13 = CORDATA_FORMAT_UINT13,
|
||
|
|
SapFormatUint14 = CORDATA_FORMAT_UINT14,
|
||
|
|
SapFormatUint15 = CORDATA_FORMAT_UINT15,
|
||
|
|
|
||
|
|
SapFormatInt9 = CORDATA_FORMAT_INT9,
|
||
|
|
SapFormatInt10 = CORDATA_FORMAT_INT10,
|
||
|
|
SapFormatInt11 = CORDATA_FORMAT_INT11,
|
||
|
|
SapFormatInt12 = CORDATA_FORMAT_INT12,
|
||
|
|
SapFormatInt13 = CORDATA_FORMAT_INT13,
|
||
|
|
SapFormatInt14 = CORDATA_FORMAT_INT14,
|
||
|
|
SapFormatInt15 = CORDATA_FORMAT_INT15,
|
||
|
|
|
||
|
|
// Interlaced color data formats used by look-up tables, data stored as:
|
||
|
|
// RGBRGBRGB ...
|
||
|
|
SapFormatColorI8 = CORDATA_FORMAT_COLORI8,
|
||
|
|
SapFormatColorI9 = CORDATA_FORMAT_COLORI9,
|
||
|
|
SapFormatColorI10 = CORDATA_FORMAT_COLORI10,
|
||
|
|
SapFormatColorI11 = CORDATA_FORMAT_COLORI11,
|
||
|
|
SapFormatColorI12 = CORDATA_FORMAT_COLORI12,
|
||
|
|
SapFormatColorI13 = CORDATA_FORMAT_COLORI13,
|
||
|
|
SapFormatColorI14 = CORDATA_FORMAT_COLORI14,
|
||
|
|
SapFormatColorI15 = CORDATA_FORMAT_COLORI15,
|
||
|
|
SapFormatColorI16 = CORDATA_FORMAT_COLORI16,
|
||
|
|
|
||
|
|
// Non-interlaced color data formats used by look-up tables, data stored as:
|
||
|
|
// RRRRRR ... GGGGGG ... BBBBBB
|
||
|
|
SapFormatColorNI8 = CORDATA_FORMAT_COLORNI8,
|
||
|
|
SapFormatColorNI9 = CORDATA_FORMAT_COLORNI9,
|
||
|
|
SapFormatColorNI10 = CORDATA_FORMAT_COLORNI10,
|
||
|
|
SapFormatColorNI11 = CORDATA_FORMAT_COLORNI11,
|
||
|
|
SapFormatColorNI12 = CORDATA_FORMAT_COLORNI12,
|
||
|
|
SapFormatColorNI13 = CORDATA_FORMAT_COLORNI13,
|
||
|
|
SapFormatColorNI14 = CORDATA_FORMAT_COLORNI14,
|
||
|
|
SapFormatColorNI15 = CORDATA_FORMAT_COLORNI15,
|
||
|
|
SapFormatColorNI16 = CORDATA_FORMAT_COLORNI16
|
||
|
|
};
|
||
|
|
|
||
|
|
// Format categories
|
||
|
|
enum SapFormatType
|
||
|
|
{
|
||
|
|
SapFormatTypeUnknown,
|
||
|
|
SapFormatTypeMono,
|
||
|
|
SapFormatTypeRGB,
|
||
|
|
SapFormatTypeYUV,
|
||
|
|
SapFormatTypeHSI,
|
||
|
|
SapFormatTypeHSV,
|
||
|
|
SapFormatTypeFloat,
|
||
|
|
SapFormatTypeComplex,
|
||
|
|
SapFormatTypePoint,
|
||
|
|
SapFormatTypeFPoint,
|
||
|
|
SapFormatTypeFRGB,
|
||
|
|
SapFormatTypeColor,
|
||
|
|
SapFormatTypeRGBA,
|
||
|
|
SapFormatTypeLAB,
|
||
|
|
SapFormatTypeLABA,
|
||
|
|
SapFormatTypeBiColor,
|
||
|
|
};
|
||
|
|
|
||
|
|
// Default values for parameters used in various classes
|
||
|
|
const int SapDefWidth = 640;
|
||
|
|
const int SapDefHeight = 480;
|
||
|
|
const SapFormat SapDefFormat = SapFormatMono8;
|
||
|
|
const int SapDefPixelDepth = 8;
|
||
|
|
const int SapDefPixelShift = 0;
|
||
|
|
const int SapDefBufferCount = 1;
|
||
|
|
const int SapDefLutEntries = (1 << CORDATA_FORMAT_DATADEPTH(SapFormatUint8));
|
||
|
|
|
||
|
|
#define SapDefBufferType SapBuffer::TypeDefault
|
||
|
|
#define SapDefFrameType SapXferParams::FrameInterlaced
|
||
|
|
#define SapDefFieldOrder SapXferParams::FieldOrderOddEven
|
||
|
|
|
||
|
|
//
|
||
|
|
// SapData class declaration
|
||
|
|
//
|
||
|
|
|
||
|
|
class SAPCLASSBASIC_CLASS SapData
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
// Constructor
|
||
|
|
SapData()
|
||
|
|
{ m_Type = SapFormatTypeUnknown; Clear(); }
|
||
|
|
virtual ~SapData() {}
|
||
|
|
|
||
|
|
virtual void Clear() { memset(&m_Data, 0, sizeof(m_Data)); }
|
||
|
|
|
||
|
|
// Access to implementation
|
||
|
|
CORDATA GetData() const { return m_Data; }
|
||
|
|
SapFormatType GetType() const { return m_Type; }
|
||
|
|
|
||
|
|
void SetData(CORDATA data) { m_Data = data; }
|
||
|
|
|
||
|
|
protected:
|
||
|
|
CORDATA m_Data;
|
||
|
|
SapFormatType m_Type;
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
//
|
||
|
|
// Derived classes declarations
|
||
|
|
//
|
||
|
|
|
||
|
|
class SAPCLASSBASIC_CLASS SapDataMono : public SapData
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
// Constructors
|
||
|
|
SapDataMono()
|
||
|
|
{ m_Type = SapFormatTypeMono; }
|
||
|
|
SapDataMono(int mono)
|
||
|
|
{ m_Type = SapFormatTypeMono; m_Data.mono = mono; }
|
||
|
|
SapDataMono(const SapData &data)
|
||
|
|
{ m_Type = SapFormatTypeMono; m_Data = data.GetData(); }
|
||
|
|
|
||
|
|
SapDataMono &operator=(const SapData &data) { m_Type = SapFormatTypeMono; m_Data = data.GetData(); return *this; }
|
||
|
|
|
||
|
|
// Data access methods
|
||
|
|
int Mono() { return m_Data.mono; }
|
||
|
|
|
||
|
|
void Set(int mono) { m_Data.mono = mono; }
|
||
|
|
};
|
||
|
|
|
||
|
|
class SAPCLASSBASIC_CLASS SapDataRGBA : public SapData
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
// Constructors
|
||
|
|
SapDataRGBA()
|
||
|
|
{ m_Type = SapFormatTypeRGBA; }
|
||
|
|
SapDataRGBA(int red, int green, int blue, int alpha)
|
||
|
|
{ m_Type = SapFormatTypeRGBA; m_Data.rgba.red = (UINT16)red; m_Data.rgba.green = (UINT16)green; m_Data.rgba.blue = (UINT16)blue; m_Data.rgba.alpha = (UINT16)alpha;}
|
||
|
|
SapDataRGBA(const SapData &data)
|
||
|
|
{ m_Type = SapFormatTypeRGBA; m_Data = data.GetData(); }
|
||
|
|
|
||
|
|
SapDataRGBA &operator=(const SapData &data) { m_Type = SapFormatTypeRGBA; m_Data = data.GetData(); return *this; }
|
||
|
|
|
||
|
|
// Data access methods
|
||
|
|
int Red() { return m_Data.rgba.red; }
|
||
|
|
int Green() { return m_Data.rgba.green; }
|
||
|
|
int Blue() { return m_Data.rgba.blue; }
|
||
|
|
int Alpha() { return m_Data.rgba.alpha; }
|
||
|
|
|
||
|
|
void Set(int red, int green, int blue, int alpha) { m_Data.rgba.red = (UINT16)red; m_Data.rgba.green = (UINT16)green; m_Data.rgba.blue = (UINT16)blue; m_Data.rgba.alpha = (UINT16)alpha;}
|
||
|
|
};
|
||
|
|
|
||
|
|
class SAPCLASSBASIC_CLASS SapDataRGB : public SapData
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
// Constructors
|
||
|
|
SapDataRGB()
|
||
|
|
{ m_Type = SapFormatTypeRGB; }
|
||
|
|
SapDataRGB(int red, int green, int blue)
|
||
|
|
{ m_Type = SapFormatTypeRGB; m_Data.rgb.red = red; m_Data.rgb.green = green; m_Data.rgb.blue = blue; }
|
||
|
|
SapDataRGB(const SapData &data)
|
||
|
|
{ m_Type = SapFormatTypeRGB; m_Data = data.GetData(); }
|
||
|
|
|
||
|
|
SapDataRGB &operator=(const SapData &data) { m_Type = SapFormatTypeRGB; m_Data = data.GetData(); return *this; }
|
||
|
|
|
||
|
|
// Data access methods
|
||
|
|
int Red() { return m_Data.rgb.red; }
|
||
|
|
int Green() { return m_Data.rgb.green; }
|
||
|
|
int Blue() { return m_Data.rgb.blue; }
|
||
|
|
|
||
|
|
void Set(int red, int green, int blue) { m_Data.rgb.red = red; m_Data.rgb.green = green; m_Data.rgb.blue = blue; }
|
||
|
|
};
|
||
|
|
|
||
|
|
class SAPCLASSBASIC_CLASS SapDataYUV : public SapData
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
// Constructors
|
||
|
|
SapDataYUV()
|
||
|
|
{ m_Type = SapFormatTypeYUV; }
|
||
|
|
SapDataYUV(int y, int u, int v)
|
||
|
|
{ m_Type = SapFormatTypeYUV; m_Data.yuv.y = y; m_Data.yuv.u = u; m_Data.yuv.v = v; }
|
||
|
|
SapDataYUV(const SapData &data)
|
||
|
|
{ m_Type = SapFormatTypeYUV; m_Data = data.GetData(); }
|
||
|
|
|
||
|
|
// Data access methods
|
||
|
|
int Y() { return m_Data.yuv.y; }
|
||
|
|
int U() { return m_Data.yuv.u; }
|
||
|
|
int V() { return m_Data.yuv.v; }
|
||
|
|
|
||
|
|
void Clear() { SapData::Clear(); m_Data.yuv.u = 0x80; m_Data.yuv.v = 0x80; }
|
||
|
|
void Set(int y, int u, int v) { m_Data.yuv.y = y; m_Data.yuv.u = u; m_Data.yuv.v = v; }
|
||
|
|
};
|
||
|
|
|
||
|
|
class SAPCLASSBASIC_CLASS SapDataHSI : public SapData
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
// Constructors
|
||
|
|
SapDataHSI()
|
||
|
|
{ m_Type = SapFormatTypeHSI; }
|
||
|
|
SapDataHSI(int h, int s, int i)
|
||
|
|
{ m_Type = SapFormatTypeHSI; m_Data.hsi.h = h; m_Data.hsi.s = s; m_Data.hsi.i = i; }
|
||
|
|
SapDataHSI(const SapData &data)
|
||
|
|
{ m_Type = SapFormatTypeHSI; m_Data = data.GetData(); }
|
||
|
|
|
||
|
|
// Data access methods
|
||
|
|
int H() { return m_Data.hsi.h; }
|
||
|
|
int S() { return m_Data.hsi.s; }
|
||
|
|
int I() { return m_Data.hsi.i; }
|
||
|
|
|
||
|
|
void Set(int h, int s, int i) { m_Data.hsi.h = h; m_Data.hsi.s = s; m_Data.hsi.i = i; }
|
||
|
|
};
|
||
|
|
|
||
|
|
class SAPCLASSBASIC_CLASS SapDataLAB : public SapData
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
// Constructors
|
||
|
|
SapDataLAB()
|
||
|
|
{ m_Type = SapFormatTypeLAB; }
|
||
|
|
SapDataLAB(int l, int a, int b)
|
||
|
|
{ m_Type = SapFormatTypeLAB; m_Data.lab.l = l; m_Data.lab.a = a; m_Data.lab.b = b; }
|
||
|
|
SapDataLAB(const SapData &data)
|
||
|
|
{ m_Type = SapFormatTypeLAB; m_Data = data.GetData(); }
|
||
|
|
|
||
|
|
// Data access methods
|
||
|
|
int L() { return m_Data.lab.l; }
|
||
|
|
int A() { return m_Data.lab.a; }
|
||
|
|
int B() { return m_Data.lab.b; }
|
||
|
|
|
||
|
|
void Set(int l, int a, int b) { m_Data.lab.l = l; m_Data.lab.a = a; m_Data.lab.b = b; }
|
||
|
|
};
|
||
|
|
|
||
|
|
class SAPCLASSBASIC_CLASS SapDataLABA : public SapData
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
// Constructors
|
||
|
|
SapDataLABA()
|
||
|
|
{ m_Type = SapFormatTypeLABA; }
|
||
|
|
SapDataLABA(int l, int a, int b, int alpha)
|
||
|
|
{ m_Type = SapFormatTypeLABA; m_Data.laba.l = (UINT16)l; m_Data.laba.a = (UINT16)a; m_Data.laba.b = (UINT16)b; m_Data.laba.alpha = (UINT16)alpha; }
|
||
|
|
SapDataLABA(const SapData &data)
|
||
|
|
{ m_Type = SapFormatTypeLABA; m_Data = data.GetData(); }
|
||
|
|
|
||
|
|
// Data access methods
|
||
|
|
int L() { return m_Data.laba.l; }
|
||
|
|
int A() { return m_Data.laba.a; }
|
||
|
|
int B() { return m_Data.laba.b; }
|
||
|
|
int Alpha() { return m_Data.laba.alpha; }
|
||
|
|
|
||
|
|
void Set(int l, int a, int b, int alpha) { m_Data.laba.l = (UINT16)l; m_Data.laba.a = (UINT16)a; m_Data.laba.b = (UINT16)b; m_Data.laba.alpha = (UINT16)alpha; }
|
||
|
|
};
|
||
|
|
|
||
|
|
class SAPCLASSBASIC_CLASS SapDataHSV : public SapData
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
// Constructors
|
||
|
|
SapDataHSV()
|
||
|
|
{ m_Type = SapFormatTypeHSV; }
|
||
|
|
SapDataHSV(int h, int s, int v)
|
||
|
|
{ m_Type = SapFormatTypeHSV; m_Data.hsv.h = h; m_Data.hsv.s = s; m_Data.hsv.v = v; }
|
||
|
|
SapDataHSV(const SapData &data)
|
||
|
|
{ m_Type = SapFormatTypeHSV; m_Data = data.GetData(); }
|
||
|
|
|
||
|
|
// Data access methods
|
||
|
|
int H() { return m_Data.hsv.h; }
|
||
|
|
int S() { return m_Data.hsv.s; }
|
||
|
|
int V() { return m_Data.hsv.v; }
|
||
|
|
|
||
|
|
void Set(int h, int s, int v) { m_Data.hsv.h = h; m_Data.hsv.s = s; m_Data.hsv.v = v; }
|
||
|
|
};
|
||
|
|
|
||
|
|
class SAPCLASSBASIC_CLASS SapDataFloat : public SapData
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
// Constructors
|
||
|
|
SapDataFloat()
|
||
|
|
{ m_Type = SapFormatTypeFloat; }
|
||
|
|
SapDataFloat(float flt)
|
||
|
|
{ m_Type = SapFormatTypeFloat; m_Data.flt = flt; }
|
||
|
|
SapDataFloat(const SapData &data)
|
||
|
|
{ m_Type = SapFormatTypeFloat; m_Data = data.GetData(); }
|
||
|
|
|
||
|
|
// Data access methods
|
||
|
|
float Float() { return m_Data.flt; }
|
||
|
|
|
||
|
|
void Clear() { SapData::Clear(); m_Data.flt = 0.0; }
|
||
|
|
void Set(float flt) { m_Data.flt = flt; }
|
||
|
|
};
|
||
|
|
|
||
|
|
class SAPCLASSBASIC_CLASS SapDataPoint : public SapData
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
// Constructors
|
||
|
|
SapDataPoint()
|
||
|
|
{ m_Type = SapFormatTypePoint; }
|
||
|
|
SapDataPoint(int x, int y)
|
||
|
|
{ m_Type = SapFormatTypePoint; m_Data.point.x = x; m_Data.point.y = y; }
|
||
|
|
SapDataPoint(const SapData &data)
|
||
|
|
{ m_Type = SapFormatTypePoint; m_Data = data.GetData(); }
|
||
|
|
|
||
|
|
// Data access methods
|
||
|
|
int X() { return m_Data.point.x; }
|
||
|
|
int Y() { return m_Data.point.y; }
|
||
|
|
|
||
|
|
void Set(int x, int y) { m_Data.point.x = x; m_Data.point.y = y; }
|
||
|
|
};
|
||
|
|
|
||
|
|
class SAPCLASSBASIC_CLASS SapDataFPoint : public SapData
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
// Constructors
|
||
|
|
SapDataFPoint()
|
||
|
|
{ m_Type = SapFormatTypeFPoint; }
|
||
|
|
SapDataFPoint(float x, float y)
|
||
|
|
{ m_Type = SapFormatTypeFPoint; m_Data.fpoint.x = x; m_Data.fpoint.y = y; }
|
||
|
|
SapDataFPoint(const SapData &data)
|
||
|
|
{ m_Type = SapFormatTypeFPoint; m_Data = data.GetData(); }
|
||
|
|
|
||
|
|
// Data access methods
|
||
|
|
float X() { return m_Data.fpoint.x; }
|
||
|
|
float Y() { return m_Data.fpoint.y; }
|
||
|
|
|
||
|
|
void Clear() { SapData::Clear(); m_Data.fpoint.x = 0.0; m_Data.fpoint.y = 0.0; }
|
||
|
|
void Set(float x, float y) { m_Data.fpoint.x = x; m_Data.fpoint.y = y; }
|
||
|
|
};
|
||
|
|
|
||
|
|
class SAPCLASSBASIC_CLASS SapDataFRGB : public SapData
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
// Constructors
|
||
|
|
SapDataFRGB()
|
||
|
|
{ m_Type = SapFormatTypeFRGB; }
|
||
|
|
SapDataFRGB(float red, float green, float blue)
|
||
|
|
{ m_Type = SapFormatTypeFRGB; m_Data.frgb.red = red; m_Data.frgb.green = green; m_Data.frgb.blue = blue; }
|
||
|
|
SapDataFRGB(const SapData &data)
|
||
|
|
{ m_Type = SapFormatTypeFRGB; m_Data = data.GetData(); }
|
||
|
|
|
||
|
|
// Data access methods
|
||
|
|
float Red() { return m_Data.frgb.red; }
|
||
|
|
float Green() { return m_Data.frgb.green; }
|
||
|
|
float Blue() { return m_Data.frgb.blue; }
|
||
|
|
|
||
|
|
void Clear() { SapData::Clear(); m_Data.frgb.red = 0.0; m_Data.frgb.green = 0.0; m_Data.frgb.blue = 0.0; }
|
||
|
|
void Set(float red, float green, float blue) { m_Data.frgb.red = red; m_Data.frgb.green = green; m_Data.frgb.blue = blue; }
|
||
|
|
};
|
||
|
|
|
||
|
|
#endif // _SAPDATA_H_
|