#ifndef PROJECTOR_HPP #define PROJECTOR_HPP #include "stfu/stf.hpp" class Canvas; class Projector { private: void allocate(); void deallocate(); protected: Projector* projector; double* projectedPoint; unsigned int inputDimension; unsigned int outputDimension; bool ready; virtual void project(const double* point) = 0; public: // SHOULD NOT BE HERE Canvas* canvas; Projector(unsigned int inputDimension, unsigned int outputDimension); virtual ~Projector(); // delegates forward trough the chain, know wha i'm sayin'? void plot(const double* point); // factory function static Projector* createProjector(stfu::node& projector, unsigned int input_dimension); }; #endif // PROJECTOR_HPP