Laser Sensing Display for UI interfaces in the real world
Fork of skinGames_forktest by
classLaserSensingTrajectory.h@1:a4050fee11f7, 2012-03-31 (annotated)
- Committer:
- mbedalvaro
- Date:
- Sat Mar 31 08:19:31 2012 +0000
- Revision:
- 1:a4050fee11f7
- Parent:
- 0:345b3bc7a0ea
- Child:
- 4:f9d364f10335
new scorelight methods added. VERY STRANGE problem with oldPos and pos in Verlet method, that have strange behaviour depending on the value of damp factor...
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbedalvaro | 0:345b3bc7a0ea | 1 | #ifndef LSDTRAJECTORY_H |
mbedalvaro | 0:345b3bc7a0ea | 2 | #define LSDTRAJECTORY_H |
mbedalvaro | 0:345b3bc7a0ea | 3 | |
mbedalvaro | 0:345b3bc7a0ea | 4 | #include <vector> |
mbedalvaro | 0:345b3bc7a0ea | 5 | using namespace std; |
mbedalvaro | 0:345b3bc7a0ea | 6 | |
mbedalvaro | 0:345b3bc7a0ea | 7 | // CONTRAST RATIO to compute autoThreshold: |
mbedalvaro | 0:345b3bc7a0ea | 8 | #define MIN_CONTRAST_RATIO 1.3//2.4 |
mbedalvaro | 0:345b3bc7a0ea | 9 | #define THRESHOLD_FACTOR 0.5//0.75 // 2/3 or 1/2 are good values |
mbedalvaro | 0:345b3bc7a0ea | 10 | |
mbedalvaro | 0:345b3bc7a0ea | 11 | struct laserSensingPoint { |
mbedalvaro | 0:345b3bc7a0ea | 12 | // Position and color (after rendering) |
mbedalvaro | 0:345b3bc7a0ea | 13 | int x, y; // position of the point (after rendering - its integer, because it is in "laser projector pixels") |
mbedalvaro | 1:a4050fee11f7 | 14 | // char color; // laser color of the point (we will use the first three bits to set the RGB colors) |
mbedalvaro | 0:345b3bc7a0ea | 15 | // Detection: |
mbedalvaro | 0:345b3bc7a0ea | 16 | float intensity; // detected intensity |
mbedalvaro | 0:345b3bc7a0ea | 17 | int lightZone; // the thresholded light zone |
mbedalvaro | 0:345b3bc7a0ea | 18 | }; |
mbedalvaro | 0:345b3bc7a0ea | 19 | |
mbedalvaro | 0:345b3bc7a0ea | 20 | |
mbedalvaro | 0:345b3bc7a0ea | 21 | class LaserSensingTrajectory { |
mbedalvaro | 0:345b3bc7a0ea | 22 | |
mbedalvaro | 0:345b3bc7a0ea | 23 | public: |
mbedalvaro | 0:345b3bc7a0ea | 24 | |
mbedalvaro | 0:345b3bc7a0ea | 25 | LaserSensingTrajectory(); |
mbedalvaro | 0:345b3bc7a0ea | 26 | ~LaserSensingTrajectory(); |
mbedalvaro | 0:345b3bc7a0ea | 27 | |
mbedalvaro | 0:345b3bc7a0ea | 28 | // METHODS: |
mbedalvaro | 0:345b3bc7a0ea | 29 | void processSensedData(); |
mbedalvaro | 0:345b3bc7a0ea | 30 | |
mbedalvaro | 0:345b3bc7a0ea | 31 | // DATA: |
mbedalvaro | 0:345b3bc7a0ea | 32 | vector <laserSensingPoint> lsdTrajectory; |
mbedalvaro | 0:345b3bc7a0ea | 33 | char displayColor; |
mbedalvaro | 0:345b3bc7a0ea | 34 | |
mbedalvaro | 0:345b3bc7a0ea | 35 | // parameters for thresholding: |
mbedalvaro | 0:345b3bc7a0ea | 36 | float autoThreshold; |
mbedalvaro | 0:345b3bc7a0ea | 37 | |
mbedalvaro | 0:345b3bc7a0ea | 38 | // Statistics and tests: |
mbedalvaro | 0:345b3bc7a0ea | 39 | float maxI, minI; // Max and Min intensity |
mbedalvaro | 0:345b3bc7a0ea | 40 | bool lightTouched; // true if something went over the autoThreshold for the whole loop |
mbedalvaro | 0:345b3bc7a0ea | 41 | }; |
mbedalvaro | 0:345b3bc7a0ea | 42 | |
mbedalvaro | 0:345b3bc7a0ea | 43 | #endif |
mbedalvaro | 0:345b3bc7a0ea | 44 | |
mbedalvaro | 0:345b3bc7a0ea | 45 |