MCPcopy Create free account
hub / github.com/OpenImageDebugger/OpenImageDebugger / get_position

Method get_position

src/visualization/components/camera.cpp:411–433  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

409}
410
411vec4 Camera::get_position() const {
412 const auto stage = game_object_ref().get_stage();
413 if (!stage.has_value()) {
414 return vec4{0.0f, 0.0f, 0.0f, 1.0f};
415 }
416 const auto buffer_obj = stage->get().get_game_object("buffer");
417 if (!buffer_obj.has_value()) {
418 return vec4{0.0f, 0.0f, 0.0f, 1.0f};
419 }
420
421 const auto buff_opt =
422 buffer_obj->get().get_component<Buffer>("buffer_component");
423 if (!buff_opt.has_value()) {
424 return vec4{0.0f, 0.0f, 0.0f, 1.0f};
425 }
426 const auto& buff = buff_opt->get();
427 const auto buf_dim =
428 vec4(buff.buffer_width_f, buff.buffer_height_f, 0.0f, 1.0f);
429 const auto pos_vec = vec4{camera_pos_x_, camera_pos_y_, 0.0f, 1.0f};
430
431 return buf_dim * 0.5f -
432 buffer_obj->get().get_pose().inv() * scale_ * pos_vec;
433}
434
435void Camera::recenter_camera() {
436 camera_pos_x_ = camera_pos_y_ = 0.0f;

Callers 1

Calls 5

vec4Class · 0.85
get_stageMethod · 0.80
get_game_objectMethod · 0.80
invMethod · 0.80
get_poseMethod · 0.80

Tested by

no test coverage detected