This class defines an interface between the WorldCanvas, which uses coordinate transformations for various reasons, and the derived class that implements these coordinate transformations.
The designer of the derived class must write the Vector<Double> versions of linToWorld and worldToLin as described in detail below. It is also recommended that the Matrix<Double> versions of linToWorld and worldToLin be written to maximize efficiency.
transform the lin point (2-dimensional) into a world coordinate (N-dimensional), returning False if the coordinate could not be transformed. Derived classes should override.
Batch transformation where each row of lin is a coordinate that
is transformed into each row of world. On input, if the i'th
position in the failures vector is true, the i'th transformation
is not attempted. If the j'th transformation fails, the j'th
position in the failures vector will be set. The return value is
True only when the failures vector has no position set to True;
This function is implemented in this base class by making
repeated calls to the Vector
transform the world point (N-dimensional) into a lin coordinate
(2-dimensional), returning False if the coordinate could not be
transformed. Derived classes should override.
Batch transformation where each row of world is a coordinate that
is transformed into each row of lin. On input, if the i'th
position in the failures vector is true, the i'th transformation
is not attempted. If the j'th transformation fails, the j'th
position in the failures vector will be set. The return value is
True only when the failures vector has no position set to True;
This function is implemented in this base class by making
repeated calls to the Vector
Return the number of axes in the world coordinates
Routines that give the axes names and the unit.
Destructor
virtual Bool worldToLin(Vector<Double> & lin, const Vector<Double> & world) = 0
virtual Bool worldToLin(Matrix<Double> & lin, Vector<Bool> & failures, const Matrix<Double> & world)
virtual uInt nWorldAxes() const = 0
virtual Vector<String> worldAxisNames() = 0
virtual Vector<String> worldAxisUnits() = 0
virtual ~WCCoordinateHandler()