123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- #ifndef _SAPLUT_H_
- #define _SAPLUT_H_
- // SapLut.h : header file
- //
- #include "SapClassBasicDef.h"
- //
- // SapLut class declaration
- //
- class SAPCLASSBASIC_CLASS SapLut : public SapManager
- {
- public:
- // Arithmetic operations
- enum ArithmeticOp
- {
- Add,
- ASub,
- Max,
- Min,
- Scale,
- Sub
- };
- // Boolean operations
- enum BooleanOp
- {
- And,
- Or,
- Xor
- };
- public:
- // Constructor/Destructor
- SapLut(int numEntries = SapDefLutEntries, SapFormat format = SapFormatUint8, SapLocation loc = SapLocation::ServerSystem);
- SapLut(const char *filename, SapLocation loc = SapLocation::ServerSystem);
- SapLut(const SapLut &lut);
- virtual ~SapLut();
- SapLut &operator= (const SapLut &lut);
- // Module create/destroy
- virtual BOOL Create();
- virtual BOOL Destroy();
- // Access to implementation
- CORHANDLE GetHandle() const { return m_hLut; }
- SapLocation GetLocation() const { return m_Location; }
- int GetNumEntries() const { return m_NumEntries; }
- SapFormat GetFormat() const { return m_Format; }
- int GetElementSize() const { return m_DataSize; }
- int GetNumPages() const { return m_NumPages; }
- BOOL IsSigned() const { return m_IsSigned; }
- int GetTotalSize() const { return m_TotalSize; }
- BOOL SetLocation(SapLocation location);
- virtual BOOL SetNumEntries(int numEntries);
- virtual BOOL SetFormat(SapFormat format);
- virtual BOOL GetParameter(int param, void *pValue);
- virtual BOOL SetParameter(int param, int value);
- virtual BOOL SetParameter(int param, void *pValue);
- // LUT manipulation
- virtual BOOL Copy(SapLut *pSrc);
- virtual BOOL Load(const char *filename);
- virtual BOOL Save(const char *filename);
- virtual BOOL Read(int lutIndex, SapData *pValue);
- virtual BOOL Read(int offset, void *pData, int size);
- virtual BOOL Write(int lutIndex, SapData value);
- virtual BOOL Write(int offset, void *pData, int size);
- // Data generation methods
- virtual BOOL Arithmetic(ArithmeticOp operation, SapData value);
- virtual BOOL BinaryPattern(int bitNumber, SapData newValue);
- virtual BOOL Boolean(BooleanOp operation, SapData value);
- virtual BOOL Gamma(float factor);
- virtual BOOL Normal();
- virtual BOOL Reverse();
- virtual BOOL Roll(int numEntries);
- virtual BOOL Shift(int numBits);
- virtual BOOL Slope(int startIndex, int endIndex, SapData minValue, SapData maxValue, BOOL clipOutside = FALSE);
- virtual BOOL Threshold(SapData threshValue);
- virtual BOOL Threshold(SapData lowValue, SapData highValue);
- protected:
- // Utility methods
- void Construct(SapLocation loc, int numEntries, SapFormat format, const char *filename);
- protected:
- SapLocation m_Location;
- CORLUT m_hLut;
- char m_Filename[MAX_PATH]; // Used when creating LUT from an existing file
- // Parameters
- int m_NumEntries; // Number of entries
- SapFormat m_Format; // Data format
- int m_DataSize; // Number of bytes for one LUT element
- int m_NumPages; // Number of color pages
- BOOL m_IsSigned; // TRUE if LUT data is signed
- int m_TotalSize; // Total number of data bytes
- };
- #endif // _SAPBUFFER_H_
|