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