tadd const keywords, suppress some debug output - 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 c6e2a96799b3fc1b5c926bace6763524480d5417
(DIR) parent 651d6ad14183acc05109edf9fb4569dda244cde1
(HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Tue, 22 Mar 2016 15:15:23 -0700
add const keywords, suppress some debug output
Diffstat:
M slidergrid/main.c | 13 +++++++------
M slidergrid/slider.c | 7 +++++--
M slidergrid/vector_math.c | 34 ++++++++++++++++----------------
3 files changed, 29 insertions(+), 25 deletions(-)
---
(DIR) diff --git a/slidergrid/main.c b/slidergrid/main.c
t@@ -128,23 +128,23 @@ int main(int argc, char** argv)
sim.time <= sim.time_end;
sim.time += sim.dt) {
- for (i=0; i<sim.N; i++)
+ /*for (i=0; i<sim.N; i++)
printf("%d: vel = %f %f %f\n", i,
sim.sliders[i].vel.x,
sim.sliders[i].vel.y,
- sim.sliders[i].vel.z);
+ sim.sliders[i].vel.z);*/
for (i=0; i<sim.N; i++)
project_slider_position(&sim.sliders[i], sim.dt, sim.iteration);
- for (i=0; i<sim.N; i++)
+ /*for (i=0; i<sim.N; i++)
printf("%d: pos = %f %f %f, pos_future = %f %f %f\n", i,
sim.sliders[i].pos.x,
sim.sliders[i].pos.y,
sim.sliders[i].pos.z,
sim.sliders[i].pos_future.x,
sim.sliders[i].pos_future.y,
- sim.sliders[i].pos_future.z);
+ sim.sliders[i].pos_future.z);*/
// resolve slider-to-slider interaction
for (i=0; i<sim.N; i++) {
t@@ -157,14 +157,15 @@ int main(int argc, char** argv)
#ifdef DEBUG_SLIDER_FORCE_TORQUE_AND_NEIGHBORS
int j;
- printf("main.c: Slider %d: F = %f %f %f, T = %f %f %f, contacts = ",
+ printf("main.c: Slider %d: F = %f %f %f, T = %f %f %f, mass = %f, contacts = ",
i,
sim.sliders[i].force.x,
sim.sliders[i].force.y,
sim.sliders[i].force.z,
sim.sliders[i].torque.x,
sim.sliders[i].torque.y,
- sim.sliders[i].torque.z);
+ sim.sliders[i].torque.z,
+ sim.sliders[i].mass);
for (j=0; j<MAX_NEIGHBORS; j++)
if (sim.sliders[i].neighbors[j] >= 0)
printf("%d ", sim.sliders[i].neighbors[j]);
(DIR) diff --git a/slidergrid/slider.c b/slidergrid/slider.c
t@@ -244,6 +244,7 @@ void slider_neighbor_interaction(
// reset sum of forces and torques on slider
s->force = make_float3(0., 0., 0.);
s->torque = make_float3(0., 0., 0.);
+ //s->mass = 1.0;
if (s->neighbors[idx_neighbor] != -1) {
t@@ -251,15 +252,17 @@ void slider_neighbor_interaction(
s, sliders[s->neighbors[idx_neighbor]],
idx_neighbor, iteration);
- printf("- %d: rel_disp = %f %f %f\n",
+ /*printf("- %d: rel_disp = %f %f %f\n",
idx_neighbor,
s->neighbor_relative_distance_displacement[idx_neighbor].x,
s->neighbor_relative_distance_displacement[idx_neighbor].y,
s->neighbor_relative_distance_displacement[idx_neighbor].z
- );
+ );*/
slider_interaction(
s, sliders[s->neighbors[idx_neighbor]], idx_neighbor);
+
+ s->force = make_float3(123, 456, 789);
printf("s.force = %f %f %f\n",
s->force.x, s->force.y, s->force.z);
}
(DIR) diff --git a/slidergrid/vector_math.c b/slidergrid/vector_math.c
t@@ -3,7 +3,7 @@
// constructors
-inline Float3 make_float3(Float x, Float y, Float z)
+inline Float3 make_float3(const Float x, const Float y, const Float z)
{
Float3 v = {.x = x, .y = y, .z = z};
return v;
t@@ -21,39 +21,39 @@ inline Float3 ones_float3()
// single-vector operations
-inline Float3 copy_float3(Float3 v)
+inline Float3 copy_float3(const Float3 v)
{
return make_float3(v.x, v.y, v.z);
}
-inline Float norm_float3(Float3 v)
+inline Float norm_float3(const Float3 v)
{
return sqrt(v.x*v.x + v.y*v.y + v.z*v.z);
}
// vector-vector operations
-inline Float3 add_float3(Float3 v1, Float3 v2)
+inline Float3 add_float3(const Float3 v1, const Float3 v2)
{
return make_float3(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z);
}
-inline Float3 subtract_float3(Float3 v1, Float3 v2)
+inline Float3 subtract_float3(const Float3 v1, const Float3 v2)
{
return make_float3(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z);
}
-inline Float3 multiply_float3(Float3 v1, Float3 v2)
+inline Float3 multiply_float3(const Float3 v1, const Float3 v2)
{
return make_float3(v1.x*v2.x, v1.y*v2.y, v1.z*v2.z);
}
-inline Float3 divide_float3(Float3 v1, Float3 v2)
+inline Float3 divide_float3(const Float3 v1, const Float3 v2)
{
return make_float3(v1.x/v2.x, v1.y/v2.y, v1.z/v2.z);
}
-inline Float3 cross_float3(Float3 v1, Float3 v2)
+inline Float3 cross_float3(const Float3 v1, const Float3 v2)
{
return make_float3(
v1.y*v2.z - v1.z*v2.y,
t@@ -61,48 +61,48 @@ inline Float3 cross_float3(Float3 v1, Float3 v2)
v1.x*v2.y - v1.y*v2.x);
}
-inline Float dot_float3(Float3 v1, Float3 v2)
+inline Float dot_float3(const Float3 v1, const Float3 v2)
{
return v1.x*v2.x + v1.y*v2.y + v1.z*v2.z;
}
// vector-scalar operations
-inline Float3 add_float3_scalar(Float3 v, Float s)
+inline Float3 add_float3_scalar(const Float3 v, const Float s)
{
return make_float3(v.x + s, v.y + s, v.z + s);
}
-inline Float3 add_scalar_float3(Float s, Float3 v)
+inline Float3 add_scalar_float3(const Float s, const Float3 v)
{
return add_float3_scalar(v, s);
}
-inline Float3 subtract_float3_scalar(Float3 v, Float s)
+inline Float3 subtract_float3_scalar(const Float3 v, const Float s)
{
return make_float3(v.x - s, v.y - s, v.z - s);
}
-inline Float3 subtract_scalar_float3(Float s, Float3 v)
+inline Float3 subtract_scalar_float3(const Float s, const Float3 v)
{
return make_float3(s - v.x, s - v.y, s - v.z);
}
-inline Float3 multiply_float3_scalar(Float3 v, Float s)
+inline Float3 multiply_float3_scalar(const Float3 v, const Float s)
{
return make_float3(v.x*s, v.y*s, v.z*s);
}
-inline Float3 multiply_scalar_float3(Float s, Float3 v)
+inline Float3 multiply_scalar_float3(const Float s, const Float3 v)
{
return multiply_float3_scalar(v, s);
}
-inline Float3 divide_float3_scalar(Float3 v, Float s)
+inline Float3 divide_float3_scalar(const Float3 v, const Float s)
{
return make_float3(v.x/s, v.y/s, v.z/s);
}
-inline Float3 divide_scalar_float3(Float s, Float3 v)
+inline Float3 divide_scalar_float3(const Float s, const Float3 v)
{
return make_float3(s/v.x, s/v.y, s/v.z);
}