summaryrefslogtreecommitdiffhomepage
path: root/lib/rules/limit.rb
blob: dba9f969d69a050df8d050c35a0ea9b1898ce0d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
# This special function is already called by apply_boid_calculations.rb
# do not add or call this function elsewhere
FF::Sys.new('Limit') do
  unless $config.limit < 0
    FF::Cmp::Boids.each do |boid|
      absolute_velocity = Math.sqrt((boid.vx**2) + (boid.vy**2))
      if absolute_velocity > $config.limit
        boid.vx = (boid.vx / absolute_velocity) * $config.limit
        boid.vy = (boid.vy / absolute_velocity) * $config.limit
      end
    end
  end
end