summaryrefslogtreecommitdiffstats
path: root/src/fdgl.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2013-12-31 16:11:09 +0000
committerDavid Robillard <d@drobilla.net>2013-12-31 16:11:09 +0000
commit023925ef7ecf8314e51f2bb14717f88b92240438 (patch)
tree3c6ca435f3664176075bea3b01c7d9b4c6d8d577 /src/fdgl.hpp
parentb3ba7ad25ce0a6b76bcff21aaf1e8311b2198b4f (diff)
downloadganv-023925ef7ecf8314e51f2bb14717f88b92240438.tar.gz
ganv-023925ef7ecf8314e51f2bb14717f88b92240438.tar.bz2
ganv-023925ef7ecf8314e51f2bb14717f88b92240438.zip
FDGL: Make repelling forces directionally proportional to area for tighter spacing.
git-svn-id: http://svn.drobilla.net/lad/trunk/ganv@5241 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/fdgl.hpp')
-rw-r--r--src/fdgl.hpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/fdgl.hpp b/src/fdgl.hpp
index 704eb4f..83d9981 100644
--- a/src/fdgl.hpp
+++ b/src/fdgl.hpp
@@ -16,7 +16,7 @@
#include <float.h>
#include <math.h>
-static const double CHARGE_KE = 100000000.0;
+static const double CHARGE_KE = 200000000.0;
struct Region {
Vector pos;
@@ -109,5 +109,7 @@ repel_force(const Region& a, const Region& b)
const double mag = vec_mag(vec);
const Vector force = vec_mult(
vec, (CHARGE_KE * 0.5 / (mag * mag * mag * mag * mag)));
- return vec_mult(force, vec_mult(a.area, b.area));
+ const Vector dforce = { force.x * (a.area.x * b.area.x),
+ force.y * (a.area.y * b.area.y) };
+ return dforce;
}