# TODO...

<multilang>
@en **TODO**

- Add friction into Propeller joint - force against momentum
- Replace SetMassBox with SetMassSphere with position in correct centre of mass of blade and with radius proportional to area of all triangles multiplied by thickness or blade - constant 0.01
- Use triangulation function from openCV
- Install OpenCV on WinXP
- Start particles only in 2 quadrants - not good... change back or use other model
- Other model: create particles in place of collision (see below)
- Genom:height of vertices (float string) - enabled/disabled vertices (bitstring)
- Make EO alg for rotor shape evolution
- Make ParadisEO alg for rotor shape evolution
- Test PradisEO alg on at least 2 nodes with pvm
- ...

Rays are useful for things like visibility testing, determining the path of projectiles or light rays, and for **object placement**.

## Towards speeding up simulation and using correct mass distribution - **OBSOLETE!**

*Particles are not flying, just 'hitting' the blades of propeller*

*Precalculating all needed information before simulation*

**Random particle creation point**

- Select random triangle from the 3Mesh - proportionally to its size of in-xz-plane-projected area
*probability of selecting particular triangle can be precalculated before simulation loop starts* - Project selected triangle into xz plane - <math>\triangle</math> ABC
- Calculate coordinates of centre of gravity X of <math>\triangle</math> ABC
- Choose 1 triangle out of <math>\triangle</math> ABX, <math>\triangle</math> AXC, <math>\triangle</math> XBC
- Calculate another centre of gravity of selected triangle
- Repeat 3 previous steps until distance from center of gravity to nearest vertex is less than some epsilon
- The final point - translate back to 3D and to relative coordinates of the whole body - rotor

**Centre of Mass of blade**

- Calculate coordinates of centre of gravity and area of each triangle
- Repeat until only 1 point - center of gravity of all triangles remains in set
- Take 2 triangles (centers of gravity) and calculate their composite center of gravity and respective force (in area units)

**Summary**

Before simulation starts, create following structures and fill it with information

- Area of projection of each triangle
- Centre of gravity of each triangle
- Recursively all centres of gravity of all mini-triangles - Estimated count of points = 3
^{depth of recursion}x (count of Δ) - anything else?

In every simulation step, with roullete wheel /or SUS/<ref>SUS</ref> select one or more triangles and then select random integers from [0, 3^{depth of recursion}) and create sphere objects in that point with velocity vector [0.0, SPEED, 0.0].

After each step destroy all particles

**Advantages of above method:**

- Particles are used only for collisions, so they don't live outside of collision
- Particles don't hit edges of triangles
- Particles are not hit by blade "from the back", thus blade is not slowed down by unwanted collisions
- Mass distribution in blade participates in shape evaluation (together with momentum and added joint friction)
- Overall speed up

**Disadvantages of above method:**

- some extra memory required and precomputation time

## Notes

<references/>

@sk TODO.../sk
</multilang>

--- --- --- --- --- RoboWiki: (c) 2006 Robotika.sk --- --- --- --- ---