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