Alvaro Cassinelli
/
skinGames_forktest
just a test
Fork of scoreLight_Advanced by
classRigidScafold.cpp@33:43e8bc451ef0, 2012-11-05 (annotated)
- Committer:
- mbedalvaro
- Date:
- Mon Nov 05 06:08:35 2012 +0000
- Revision:
- 33:43e8bc451ef0
- Parent:
- 32:52273c3291fe
- Child:
- 35:35af5086ab4f
added resizing functions, as well as better control on the thresholding modes
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 | 33:43e8bc451ef0 | 23 | void RigidScafold::resizeDimensionScafold(float _newSize) { |
mbedalvaro | 33:43e8bc451ef0 | 24 | resizeFactorDimensionScafold(_newSize/sizeScafold); |
mbedalvaro | 33:43e8bc451ef0 | 25 | sizeScafold=_newSize; |
mbedalvaro | 33:43e8bc451ef0 | 26 | } |
mbedalvaro | 33:43e8bc451ef0 | 27 | |
mbedalvaro | 33:43e8bc451ef0 | 28 | void RigidScafold::resizeFactorDimensionScafold(float _factor) { |
mbedalvaro | 32:52273c3291fe | 29 | for (int i = 0; i < scafold.size(); i++) { |
mbedalvaro | 32:52273c3291fe | 30 | scafold[i] = ( scafold[i]-centerScafold)*_factor+centerScafold; |
mbedalvaro | 32:52273c3291fe | 31 | } |
mbedalvaro | 33:43e8bc451ef0 | 32 | sizeScafold*=_factor; |
mbedalvaro | 32:52273c3291fe | 33 | } |
mbedalvaro | 32:52273c3291fe | 34 | |
mbedalvaro | 32:52273c3291fe | 35 | void RigidScafold::buildLine(float _length, float _angleDeg, vector2Dd _pos, int _numScafoldPoints) { |
mbedalvaro | 32:52273c3291fe | 36 | scafold.resize(_numScafoldPoints); |
mbedalvaro | 32:52273c3291fe | 37 | vector2Dd auxStep = vector2Dd(_length * cos(_angleDeg/180.0 * PI)/_numScafoldPoints, sin(_length * _angleDeg/180.0 * PI)/_numScafoldPoints ) ; |
mbedalvaro | 32:52273c3291fe | 38 | for (int i = 0; i < scafold.size(); i++) { |
mbedalvaro | 32:52273c3291fe | 39 | scafold[i]= auxStep * i + _pos; |
mbedalvaro | 32:52273c3291fe | 40 | } |
mbedalvaro | 32:52273c3291fe | 41 | } |
mbedalvaro | 32:52273c3291fe | 42 | |
mbedalvaro | 32:52273c3291fe | 43 | // Other functions to create letters, text, etc. |
mbedalvaro | 32:52273c3291fe | 44 | // ... TO DO .... |
mbedalvaro | 32:52273c3291fe | 45 | |
mbedalvaro | 0:345b3bc7a0ea | 46 |