Alvaro Cassinelli
/
skinGames_forktest
just a test
Fork of scoreLight_Advanced by
classRigidScafold.cpp@35:35af5086ab4f, 2012-11-13 (annotated)
- Committer:
- mbedalvaro
- Date:
- Tue Nov 13 04:40:08 2012 +0000
- Revision:
- 35:35af5086ab4f
- Parent:
- 33:43e8bc451ef0
version para ITS
Who changed what in which revision?
User | Revision | Line number | New 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 |