X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Ftrainview.cpp;h=4e43993954ba5fc57c9b6d13df0a9374f6f094eb;hb=ecd7af790bd3ab7c7e768f68968379e1feea56a9;hp=ad534acee085872161d030ae6742fc909029a330;hpb=b261812f040caed52bc3de783e8bcb86b222a9ed;p=r2c2.git diff --git a/source/engineer/trainview.cpp b/source/engineer/trainview.cpp index ad534ac..4e43993 100644 --- a/source/engineer/trainview.cpp +++ b/source/engineer/trainview.cpp @@ -17,7 +17,7 @@ TrainView::TrainView(Engineer &e, const Train &t): train(t), mode(SIDE), forward(true), - pipeline(400, 300, false) + view(engineer.get_layout_3d(), 400, 300) { Loader::WidgetMap widgets; DataFile::load(*this, "data/trainview.ui", widgets); @@ -35,16 +35,7 @@ TrainView::TrainView(Engineer &e, const Train &t): depth.storage(GL::DEPTH_COMPONENT, 400, 300); fbo.attach(GL::DEPTH_ATTACHMENT, depth); - camera.set_up_direction(GL::Vector3(0, 0, 1)); - camera.set_depth_clip(0.01, 10); - camera.set_aspect(1); - pipeline.set_camera(&camera); - - pipeline.add_renderable(engineer.get_layout_3d().get_scene()); - - GL::Pipeline::Pass *pass = &pipeline.add_pass(0); - pass->set_depth_test(&GL::DepthTest::lequal()); - pass->set_lighting(&engineer.get_lighting()); + view.get_camera().set_depth_clip(0.01, 10); dynamic_cast(get_item(widgets, "img_view"))->set_image(&tex); @@ -83,14 +74,15 @@ void TrainView::prepare() Vector side_vec = rotated_vector(Vector(0, -1, 0), angle); float l = veh.get_type().get_length(); + GL::Camera &camera = view.get_camera(); switch(mode) { case ROOF: camera.set_position(pos-l*fwd_vec+Vector(0, 0, 0.07)); - camera.set_look_direction(fwd_vec-Vector(0, 0, -0.2)); + camera.set_look_direction(fwd_vec-Vector(0, 0, 0.2)); break; case SIDE: - camera.set_position(pos-0.8f*fwd_vec+0.05f*side_vec+Vector(0, 0, 0.03)); + camera.set_position(pos-0.08f*fwd_vec+0.05f*side_vec+Vector(0, 0, 0.03)); camera.set_look_direction(fwd_vec-side_vec*0.2f); break; case HEAD: @@ -101,5 +93,5 @@ void TrainView::prepare() GL::Bind _bind_fbo(fbo); fbo.clear(GL::COLOR_BUFFER_BIT|GL::DEPTH_BUFFER_BIT); - pipeline.render(); + view.render(); }