Alvaro Cassinelli
/
skinGames_II
save loops
Diff: classRigidScafold.cpp
- Revision:
- 0:df6fdd9b99f0
diff -r 000000000000 -r df6fdd9b99f0 classRigidScafold.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/classRigidScafold.cpp Tue Dec 02 04:39:15 2014 +0000 @@ -0,0 +1,56 @@ +#include "classRigidScafold.h" + + RigidScafold::RigidScafold() { + } + + RigidScafold::~RigidScafold() { + } + + + void RigidScafold::buildCircularScafold(float _radius, vector2Dd _pos, int _numScafoldPoints) { + sizeScafold=_radius; + centerScafold=_pos; + scafold.resize(_numScafoldPoints); + float angInc= 2.0 * PI / _numScafoldPoints; + float ang=0; + for (int i = 0; i < scafold.size(); i++) { + scafold[i]= vector2Dd( cos(ang)* _radius, sin(ang)* sizeScafold ) + centerScafold; + // note: I cannot do vector2Dd( cos(ang), sin(ang) ) * _radius because vector2Dd would give (0,0) + ang+=angInc; + } +} + +// Modifying the scafold (resizing, rotating): +// Note: in case of elastic loop, the mass-loop may be reinitialized or not (if the rigid loop is used as "attractor" only): + + void RigidScafold::resizeDimensionScafold(float _newSize) { + resizeFactorDimensionScafold(_newSize/sizeScafold); + sizeScafold=_newSize; + } + + void RigidScafold::resizeFactorDimensionScafold(float _factor) { + for (int i = 0; i < scafold.size(); i++) { + scafold[i] = ( scafold[i]-centerScafold)*_factor+centerScafold; + } + sizeScafold*=_factor; +} + +void RigidScafold::rotateScafold(float alphadeg) { +// note: rotate around the centerScafold: + for (int i = 0; i < scafold.size(); i++) { + scafold[i]=(scafold[i]-centerScafold).getRotatedRad(alphadeg)+centerScafold; + } +} + + void RigidScafold::buildLine(float _length, float _angleDeg, vector2Dd _pos, int _numScafoldPoints) { + scafold.resize(_numScafoldPoints); + vector2Dd auxStep = vector2Dd(_length * cos(_angleDeg/180.0 * PI)/_numScafoldPoints, sin(_length * _angleDeg/180.0 * PI)/_numScafoldPoints ) ; + for (int i = 0; i < scafold.size(); i++) { + scafold[i]= auxStep * i + _pos; + } +} + + // Other functions to create letters, text, etc. + // ... TO DO .... + + \ No newline at end of file