Listing 8: Class CIBLine is derived from DeltaControlLine
class CIBLine : public DeltaControlLine { public: CIBLine(CPoint *From, CPoint *To, CPoint *Input, CIBHelper *Source, CPoint *Offset, CIBHelper *Dest); virtual ~CIBLine() {}; protected: virtual void OnMajorChange(int Current); virtual void OnMinorChange(int Current); private: void PutPixel(); CPoint *m_Input; CIBHelper *m_Source; CIBHelper *m_Dest; }; CIBLine::CIBLine(CPoint *From, CPoint *To, CPoint *Input, CIBHelper *Source, CPoint *Offset, CIBHelper *Dest) : DeltaControlLine(From, To, Offset) { m_Input = Input; m_Source = Source; m_Dest = Dest; // output the first pixel PutPixel(); } void CIBLine::OnMajorChange(int Current) { DeltaControlLine::OnMajorChange(Current); PutPixel(); } void CIBLine::OnMinorChange(int Current) { DeltaControlLine::OnMinorChange(Current); PutPixel(); } void CIBLine::PutPixel() { m_Dest->PutPixel(this, m_Source->GetPixel(m_Input)); } End of Listing