summaryrefslogtreecommitdiffstatsci
path: root/src/kinetics.cpp
diff options
context:
space:
mode:
authorsuyambulingamrm <suyambu.rm@samsung.com>2014-06-17 17:56:22 +0530
committersuyambulingamrm <suyambu.rm@samsung.com>2014-06-17 17:56:22 +0530
commit2759001336f1b0c6a30ea2e6aa35ce7bf28f3890 (patch)
tree0d8973458148d30594ba95732c357d94ab8c956c /src/kinetics.cpp
parent915e03ba863f9ebe721bfed67c18ac11d6d87f31 (diff)
Issue #91. Update kinetics to use canvas width and height values.
Diffstat (limited to 'src/kinetics.cpp')
-rw-r--r--src/kinetics.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/kinetics.cpp b/src/kinetics.cpp
index dcbe9b7..ab8fa95 100644
--- a/src/kinetics.cpp
+++ b/src/kinetics.cpp
@@ -10,10 +10,7 @@
#include <stdlib.h>
#include <string.h>
#include <math.h>
-#define WIDTH 800
-#define HEIGHT 400
-#define MAX_VELOCITY WIDTH / 2
#include "kinetics.h"
@@ -24,15 +21,18 @@ kinetics_destroy (kinetics_t *kinetics)
}
void
-kinetics_init (kinetics_t *kinetics)
+kinetics_init (kinetics_t *kinetics, const caskbench_context_t *ctx)
{
+ int max_velocity = ctx->canvas_width / 2;
kinetics->angle = drand48 () * 2 * M_PI;
- kinetics->velocity = MAX_VELOCITY / 8.0 * 7 * drand48 () + MAX_VELOCITY / 8.0;
- kinetics->x = WIDTH / 2;
- kinetics->y = HEIGHT / 2;
+ kinetics->velocity = max_velocity / 8.0 * 7 * drand48 () + max_velocity / 8.0;
+ kinetics->x = ctx->canvas_width / 2;
+ kinetics->y = ctx->canvas_height / 2;
kinetics->x_radius = drand48 () * 10 + 5;
kinetics->y_radius = drand48 () * 10 + 5;
+ kinetics->canvas_width = ctx->canvas_width;
+ kinetics->canvas_height = ctx->canvas_height;
kinetics->width = drand48 () * 120 + 30;
kinetics->height = drand48 () * 120 + 30;
@@ -47,12 +47,12 @@ kinetics_update (kinetics_t *kinetics, double delta)
double y = kinetics->y + sin (kinetics->angle) * kinetics->velocity * delta;
double w = kinetics->width/2;
- if (x + w > WIDTH) {
+ if (x + w > kinetics->canvas_width) {
if (kinetics->angle >= 0 && kinetics->angle < M_PI / 2)
kinetics->angle = M_PI - kinetics->angle;
else if (kinetics->angle > M_PI / 2 * 3)
kinetics->angle -= (kinetics->angle - M_PI /2 * 3) * 2;
- x = WIDTH - w;
+ x = kinetics->canvas_width - w;
}
if (x - w < 0) {
@@ -63,10 +63,10 @@ kinetics_update (kinetics_t *kinetics, double delta)
x = w;
}
- if (y + w > HEIGHT) {
+ if (y + w > kinetics->canvas_height) {
if (kinetics->angle > 0 && kinetics->angle < 2 * M_PI)
kinetics->angle = M_PI * 2 - kinetics->angle;
- y = HEIGHT - w;
+ y = kinetics->canvas_height - w;
}
if (y - w < 0) {