/** 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 "GroundFlatMesh.hpp" #include "periodic_updates.hpp" int main(int argc, char** argv) { FlatGround* flat = new FlatGround(); GlutRender& render = GlutRender::get_instance(); render.init(&argc, argv, 640, 480, "Bouncing stuff"); Ball ball(Point(0, 5, 0), flat, 0.55, -.5, -.7, 1, 1); ball.get_surface()->set_color(Color(1., 0., 0.)); 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); GroundFlatMesh ground(Point(0., 0., 0.), 0.05); ground.get_mesh()->set_color(Color(0.13, 0.82, 0.21)); render.add_mesh(ground.get_mesh()); render.set_idle_func(periodic_update); init_periodic_static(&ball); render.run(); return 0; }