Listing 3: Excerpt from delta.h

class DeltaControlLine : public DeltaControl, public CPoint
{
public:
    DeltaControlLine(CPoint *From, CPoint *To);
    DeltaControlLine(CPoint *From, CPoint *To, CPoint *Offset);
    virtual ~DeltaControlLine() {};
protected:
    virtual void Init(CPoint *From, CPoint *To);
    virtual void OnMajorChange(int Current) {*m_PMajor=Current;};
    virtual void OnMinorChange(int Current) {*m_PMinor=Current;};
    long *m_PMajor;
    long *m_PMinor;
};

exceprt from delta.cpp

DeltaControlLine::DeltaControlLine(CPoint *From, CPoint *To) {
    Init(From, To);
}

DeltaControlLine::DeltaControlLine(CPoint *From, CPoint *To,
        CPoint *Offset) {
    Init(From, To);
    CPoint::Offset(*Offset);
    m_Major.current = *m_PMajor;
    m_Minor.current = *m_PMinor;
}

void DeltaControlLine::Init(CPoint *From, CPoint *To) {
    CPoint p = *From;
    p -= *To;
    if (abs(p.x) > abs(p.y)) {
        SetFrom(From->x, From->y);
        SetTo(To->x, To->y);
        m_PMajor = &x;
        m_PMinor = &y;
    }
    else {
        SetFrom(From->y, From->x);
        SetTo(To->y, To->x);
        m_PMajor = &y;
        m_PMinor = &x;
    }
    x = From->x;
    y = From->y;
}
— End of Listing —