just a test

Dependencies:   mbed

Fork of scoreLight_Advanced by Alvaro Cassinelli

Committer:
mbedalvaro
Date:
Tue Dec 02 04:28:42 2014 +0000
Revision:
48:7633d8e7b0d3
Parent:
35:35af5086ab4f
this is the working version of the skin games sowtware (aka, scorelight but with pre-determined "games")

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbedalvaro 32:52273c3291fe 1 #include "classRigidScafold.h"
mbedalvaro 32:52273c3291fe 2
mbedalvaro 32:52273c3291fe 3 RigidScafold::RigidScafold() {
mbedalvaro 32:52273c3291fe 4 }
mbedalvaro 32:52273c3291fe 5
mbedalvaro 32:52273c3291fe 6 RigidScafold::~RigidScafold() {
mbedalvaro 32:52273c3291fe 7 }
mbedalvaro 32:52273c3291fe 8
mbedalvaro 32:52273c3291fe 9
mbedalvaro 32:52273c3291fe 10 void RigidScafold::buildCircularScafold(float _radius, vector2Dd _pos, int _numScafoldPoints) {
mbedalvaro 33:43e8bc451ef0 11 sizeScafold=_radius;
mbedalvaro 32:52273c3291fe 12 centerScafold=_pos;
mbedalvaro 32:52273c3291fe 13 scafold.resize(_numScafoldPoints);
mbedalvaro 32:52273c3291fe 14 float angInc= 2.0 * PI / _numScafoldPoints;
mbedalvaro 32:52273c3291fe 15 float ang=0;
mbedalvaro 32:52273c3291fe 16 for (int i = 0; i < scafold.size(); i++) {
mbedalvaro 33:43e8bc451ef0 17 scafold[i]= vector2Dd( cos(ang)* _radius, sin(ang)* sizeScafold ) + centerScafold;
mbedalvaro 32:52273c3291fe 18 // note: I cannot do vector2Dd( cos(ang), sin(ang) ) * _radius because vector2Dd would give (0,0)
mbedalvaro 32:52273c3291fe 19 ang+=angInc;
mbedalvaro 32:52273c3291fe 20 }
mbedalvaro 32:52273c3291fe 21 }
mbedalvaro 32:52273c3291fe 22
mbedalvaro 35:35af5086ab4f 23 // Modifying the scafold (resizing, rotating):
mbedalvaro 35:35af5086ab4f 24 // Note: in case of elastic loop, the mass-loop may be reinitialized or not (if the rigid loop is used as "attractor" only):
mbedalvaro 35:35af5086ab4f 25
mbedalvaro 33:43e8bc451ef0 26 void RigidScafold::resizeDimensionScafold(float _newSize) {
mbedalvaro 33:43e8bc451ef0 27 resizeFactorDimensionScafold(_newSize/sizeScafold);
mbedalvaro 33:43e8bc451ef0 28 sizeScafold=_newSize;
mbedalvaro 33:43e8bc451ef0 29 }
mbedalvaro 33:43e8bc451ef0 30
mbedalvaro 33:43e8bc451ef0 31 void RigidScafold::resizeFactorDimensionScafold(float _factor) {
mbedalvaro 32:52273c3291fe 32 for (int i = 0; i < scafold.size(); i++) {
mbedalvaro 32:52273c3291fe 33 scafold[i] = ( scafold[i]-centerScafold)*_factor+centerScafold;
mbedalvaro 32:52273c3291fe 34 }
mbedalvaro 33:43e8bc451ef0 35 sizeScafold*=_factor;
mbedalvaro 32:52273c3291fe 36 }
mbedalvaro 35:35af5086ab4f 37
mbedalvaro 35:35af5086ab4f 38 void RigidScafold::rotateScafold(float alphadeg) {
mbedalvaro 35:35af5086ab4f 39 // note: rotate around the centerScafold:
mbedalvaro 35:35af5086ab4f 40 for (int i = 0; i < scafold.size(); i++) {
mbedalvaro 35:35af5086ab4f 41 scafold[i]=(scafold[i]-centerScafold).getRotatedRad(alphadeg)+centerScafold;
mbedalvaro 35:35af5086ab4f 42 }
mbedalvaro 35:35af5086ab4f 43 }
mbedalvaro 32:52273c3291fe 44
mbedalvaro 32:52273c3291fe 45 void RigidScafold::buildLine(float _length, float _angleDeg, vector2Dd _pos, int _numScafoldPoints) {
mbedalvaro 32:52273c3291fe 46 scafold.resize(_numScafoldPoints);
mbedalvaro 32:52273c3291fe 47 vector2Dd auxStep = vector2Dd(_length * cos(_angleDeg/180.0 * PI)/_numScafoldPoints, sin(_length * _angleDeg/180.0 * PI)/_numScafoldPoints ) ;
mbedalvaro 32:52273c3291fe 48 for (int i = 0; i < scafold.size(); i++) {
mbedalvaro 32:52273c3291fe 49 scafold[i]= auxStep * i + _pos;
mbedalvaro 32:52273c3291fe 50 }
mbedalvaro 32:52273c3291fe 51 }
mbedalvaro 32:52273c3291fe 52
mbedalvaro 32:52273c3291fe 53 // Other functions to create letters, text, etc.
mbedalvaro 32:52273c3291fe 54 // ... TO DO ....
mbedalvaro 32:52273c3291fe 55
mbedalvaro 0:345b3bc7a0ea 56