annotate scanpath.h @ 15:d5758530a039 tip

oF0.84 Retina, and iPhone support
author Robert Tubb <rt300@eecs.qmul.ac.uk>
date Tue, 12 May 2015 15:48:52 +0100
parents 0e03760cf2d9
children
rev   line source
rt300@0 1 /*
rt300@0 2 * scanpath.h
rt300@0 3 * springstructure
rt300@0 4 *
rt300@0 5 * Created by Robert Tubb on 09/06/2011.
rt300@0 6 * Copyright 2011 __MyCompanyName__. All rights reserved.
rt300@0 7 *
rt300@0 8 */
rt300@0 9
rt300@0 10 #ifndef _SCANPATHH
rt300@0 11 #define _SCANPATHH
rt300@0 12 #include "lump.h"
rt300@0 13 #include "spring.h"
rt300@8 14 #include "json.h"
rt300@0 15 #include <vector>
rt300@3 16 struct Element{
rt300@3 17 Lump * eLump;
rt300@3 18 Spring * eSpring;
rt300@3 19 Element(Lump * aLump, Spring * aSpring){
rt300@3 20 eLump = aLump;
rt300@3 21 eSpring = aSpring;
rt300@3 22
rt300@3 23 };
rt300@3 24
rt300@3 25 };
rt300@0 26
rt300@0 27 class ScanPath{
rt300@0 28 private:
rt300@0 29 int numElements;
rt300@0 30 int maxElements;
rt300@0 31
rt300@0 32 bool audioAccessing;
rt300@0 33 bool updateAccessing;
rt300@0 34
rt300@6 35 bool bidirectional;
rt300@9 36
rt300@3 37 vector<Element> pathElements;
rt300@3 38
rt300@0 39 double * wavetableNew;
rt300@0 40 double * wavetableOld;
rt300@0 41 double * wavetableUpdate;
rt300@0 42
rt300@0 43 double currentLength;
rt300@0 44
rt300@0 45 double frameInterpolator;
rt300@0 46 double framesPerSample;
rt300@0 47
rt300@0 48
rt300@0 49
rt300@0 50
rt300@0 51 public:
rt300@0 52 enum scanModes {DISPLACEMENT,SPEED,SPRING_FORCE,YPOS};
rt300@0 53
rt300@0 54 scanModes scanMode;
rt300@0 55 double restLength;
rt300@0 56
rt300@0 57 ScanPath();
rt300@0 58 ~ScanPath();
rt300@3 59 void init();
rt300@0 60
rt300@0 61 void inscribe(double ax,double ay);
rt300@0 62 void clear();
rt300@0 63
rt300@0 64 void draw();
rt300@0 65 void drawCubic();
rt300@0 66
rt300@0 67 double getTotalLength();
rt300@0 68 int howManyElements();
rt300@0 69
rt300@0 70
rt300@0 71 void addSpring();
rt300@0 72 void addLump();
rt300@0 73 double getNextSample();
rt300@0 74 double getNextSample(double aPhasor);
rt300@0 75 double getNextSampleCubic(double aPhasor);
rt300@0 76 // redone stuff
rt300@0 77 void initWavetables();
rt300@3 78 void addElement(Lump* const aLump, Spring * const aSpring);
rt300@8 79 Lump * getLump(int index);
rt300@8 80 Spring * getSpring(int index);
rt300@8 81
rt300@0 82 void updateWavetables();
rt300@0 83
rt300@8 84 Json::Value convertToJsonForSaving();
rt300@0 85 };
rt300@0 86
rt300@0 87 #endif