mpri-graphics-project/main_bounce.cpp

33 lines
1,010 B
C++

/** An entry-point file using render/GlutRender as a renderer, displaying the
* bouncing implicit-surface defined sphere.
**/
#include "render/GlutRender.hpp"
#include "Ball.hpp"
#include "FlatGround.hpp"
#include "MarchingCubes.hpp"
#include "periodic_updates.hpp"
int main(int argc, char** argv) {
PerlinGround* flat = new PerlinGround();
GlutRender& render = GlutRender::get_instance();
render.init(&argc, argv, 640, 480, "Bouncing stuff");
Ball ball(Point(0, 5, 0), flat, 0.75, -0.5, -0.7, 1, 1);
Cuboid bbox = ball.get_surface()->max_bounding_box();
Cuboid bbox_2(Point(-2, -1, -2), Point(2,1,2));
printf("%.2lf %.2lf %.2lf | %.2lf %.2lf %.2lf\n",
bbox.low(0), bbox.low(1), bbox.low(2),
bbox.high(0), bbox.high(1), bbox.high(2));
render.add_surface(ball.get_surface(), bbox);
render.add_surface(flat->get_surface(), bbox_2);
render.set_idle_func(periodic_update);
init_periodic_static(&ball);
render.run();
return 0;
}