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);
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<GLtk::Image *>(get_item(widgets, "img_view"))->set_image(&tex);
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:
GL::Bind _bind_fbo(fbo);
fbo.clear(GL::COLOR_BUFFER_BIT|GL::DEPTH_BUFFER_BIT);
- pipeline.render();
+ view.render();
}