tadd function to create regular grid of sliders - 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 7739942276ce93116bd16a11f27a7be34b544713
(DIR) parent b854c002d22dbb1ba719e264c375c449c33f8013
(HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Tue, 15 Mar 2016 12:50:53 -0700
add function to create regular grid of sliders
Diffstat:
M Makefile | 2 +-
A grid.c | 25 +++++++++++++++++++++++++
A grid.h | 9 +++++++++
M main.c | 5 +++++
4 files changed, 40 insertions(+), 1 deletion(-)
---
(DIR) diff --git a/Makefile b/Makefile
t@@ -3,7 +3,7 @@ CFLAGS=-Wall -O3 -g -pg
LDLIBS=-lm
BIN=slidergrid
-$(BIN): main.o slider.o
+$(BIN): main.o slider.o grid.o
$(CC) $(LDLIBS) $^ -o $@
profile: $(BIN)
(DIR) diff --git a/grid.c b/grid.c
t@@ -0,0 +1,25 @@
+#include <stdlib.h>
+#include "typedefs.h"
+#include "slider.h"
+
+slider* create_regular_slider_grid(
+ int nx, int ny, int nz, // number of sliders in each direction
+ Float dx, Float dy, Float dz) // spacing of sliders in each direction
+{
+ slider* sliders;
+ sliders = malloc(sizeof(slider) * nx * ny * nz);
+
+ int i = 0; int ix, iy, iz;
+ for (iz = 0; iz < nz; iz++) {
+ for (iy = 0; iy < ny; iy++) {
+ for (ix = 0; ix < nx; ix++) {
+ sliders[i].pos.x = dx * ix;
+ sliders[i].pos.y = dy * iy;
+ sliders[i].pos.z = dz * iz;
+ i++;
+ }
+ }
+ }
+
+ return sliders;
+}
(DIR) diff --git a/grid.h b/grid.h
t@@ -0,0 +1,9 @@
+#ifndef GRID_H_
+#define GRID_H_
+#include "slider.h"
+
+slider* create_regular_slider_grid(
+ int nx, int ny, int nz, // number of sliders in each direction
+ Float dx, Float dy, Float dz); // spacing of sliders in each direction
+
+#endif
(DIR) diff --git a/main.c b/main.c
t@@ -1,8 +1,13 @@
#include <stdio.h>
#include <stdlib.h>
+#include "slider.h"
+#include "grid.h"
int main(int argc, char** argv)
{
+ slider* sliders = create_regular_slider_grid(4, 4, 4, 1.0, 1.0, 1.0);
+
+ free(sliders);
return EXIT_SUCCESS;
}