tfix vector function prototypes - slidergrid - grid of elastic sliders on a frictional surface
(HTM) git clone git://src.adamsgaard.dk/slidergrid
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 129e0df22ec2470c059710b4b60635192552c0db
(DIR) parent 6155ad1224ca7ba4eb0aa38cb8618f4bc6889b30
(HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Tue, 15 Mar 2016 13:33:38 -0700
fix vector function prototypes
Diffstat:
M slider.c | 17 +++++++++++++++--
M vector_math.c | 4 ++--
M vector_math.h | 14 ++++++--------
3 files changed, 23 insertions(+), 12 deletions(-)
---
(DIR) diff --git a/slider.c b/slider.c
t@@ -13,11 +13,24 @@ void integrate_kinematics(slider s, Float dt, int iteration)
+ Float3 acc0;
if (iteration == 0) {
- Float3 acc0 = make_float3(0., 0., 0.);
+ acc0 = make_float3(0., 0., 0.);
} else {
- Float3 acc0 = s.acc;
+ acc0 = s.acc;
}
+
+ const Float3 dacc_dt = make_float3(
+ (s.acc.x - acc0.x)/dt,
+ (s.acc.y - acc0.y)/dt,
+ (s.acc.z - acc0.z)/dt);
+
+ const Float3 dpos_dt = make_float3(
+ s.vel.x*dt + 0.5*s.acc.x*dt*dt + 1./6.*dacc_dt.x*dt*dt*dt,
+ s.vel.y*dt + 0.5*s.acc.y*dt*dt + 1./6.*dacc_dt.y*dt*dt*dt,
+ s.vel.z*dt + 0.5*s.acc.z*dt*dt + 1./6.*dacc_dt.z*dt*dt*dt);
+
+ s.pos = add_float3(s.pos, dpos_dt);
(DIR) diff --git a/vector_math.c b/vector_math.c
t@@ -18,12 +18,12 @@ inline Float3 subtract_float3(Float3 v1, Float3 v2)
inline Float3 multiply_float3(Float3 v1, Float3 v2)
{
- return make_float3(v1.x * v2.x, v1.y * v2.y, v1.z * v2.z);
+ return make_float3(v1.x*v2.x, v1.y*v2.y, v1.z*v2.z);
}
inline Float3 divide_float3(Float3 v1, Float3 v2)
{
- return make_float3(v1.x / v2.x, v1.y / v2.y, v1.z / v2.z);
+ return make_float3(v1.x/v2.x, v1.y/v2.y, v1.z/v2.z);
}
inline Float3 copy_float3(Float3 v)
(DIR) diff --git a/vector_math.h b/vector_math.h
t@@ -1,10 +1,8 @@
#include "typedefs.h"
-inline Float3 make_float3(Float x, Float y, Float z);
-
-inline Float3 add_float3(Float x, Float y, Float z);
-inline Float3 subtract_float3(Float x, Float y, Float z);
-inline Float3 multiply_float3(Float x, Float y, Float z);
-inline Float3 divide_float3(Float x, Float y, Float z);
-
-inline Float3 copy_float3(Float3 v);
+Float3 make_float3(Float x, Float y, Float z);
+Float3 add_float3(Float3 v1, Float3 v2);
+Float3 subtract_float3(Float3 v1, Float3 v2);
+Float3 multiply_float3(Float3 v1, Float3 v2);
+Float3 divide_float3(Float3 v1, Float3 v2);
+Float3 copy_float3(Float3 v);