/*========================================================================= PAL.CPP Author: Gary Liddon @ Fareham Created: Project: Purpose: Copyright (c) 1997 G R Liddon ===========================================================================*/ #ifndef __PAL_HPP__ #define __PAL_HPP__ /*---------------------------------------------------------------------- Includes -------- */ /* Std Lib ------- */ /* STL --- */ #include /* Glib ---- */ #include "gobject.hpp" #include "gtypes.h" /* Local ----- */ /*---------------------------------------------------------------------- Tyepdefs && Defines ------------------- */ /*---------------------------------------------------------------------- Structure defintions -------------------- */ class GLIB_API Colour : public GObject { public: Colour(int nR=0,int nG=0,int nB=0); Colour(Colour const & Col) {CopyCol(Col);} void operator=(Colour const &Col) {CopyCol(Col);} int GetR(void) const {return (R);} int GetG(void) const {return (G);} int GetB(void) const {return (B);} void SetR(int n){R=n;} void SetG(int n){G=n;} void SetB(int n){B=n;} void SetRGB(int nr,int ng,int nb) { SetR(nr); SetG(ng); SetB(nb); } float Distance(Colour const &Col) const; int DistanceUnroot(Colour const &Col) const; bool operator==(Colour const &Col) const; bool operator<(Colour const &Col) const; bool operator!=(Colour const &Col) const; protected: void CopyCol(Colour const &); int R; int G; int B; }; class GLIB_API Palette : public GObject { public: Palette(void); Palette(Palette const &); ~Palette(void); void operator=(Palette const &Fr); bool operator==(Palette const &Fr) const; bool operator<(Palette const &Fr) const; int GetNumOfCols(void) const {return TheColours.size();} int * MakeRemapTable(Palette const & P) const; Colour const & operator[](int) const; Colour & operator[](int); u8 * MakeDpPal(void) const; bool FromLbm(char const * Name); void SetPalSize(int NumOfCols); bool IsIntersecting(Palette const & ComPal) const; protected: void CopyPal(Palette const &Fr); typedef std::vector ColVec; typedef ColVec::iterator ColVecIt; ColVec TheColours; Colour DummyCol; }; /*---------------------------------------------------------------------- */ #endif /* __PAL_HPP__ */ /*=========================================================================== end */