Introduction
Introduction Statistics Contact Development Disclaimer Help
tadd const keywords, suppress some debug output - slidergrid - grid of elastic …
git clone git://src.adamsgaard.dk/slidergrid
Log
Files
Refs
README
LICENSE
---
commit c6e2a96799b3fc1b5c926bace6763524480d5417
parent 651d6ad14183acc05109edf9fb4569dda244cde1
Author: Anders Damsgaard <[email protected]>
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(-)
---
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, …
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]);
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);
}
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);
}
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.