My old project for strange attractors
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
|
|
|
#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
|
|
|
|
|