MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ make_navigation_state()

NavigationState MayaFlux::Kinesis::make_navigation_state ( const NavigationConfig config)

Construct a NavigationState from a NavigationConfig.

Derives initial yaw and pitch from the look direction (config.initial_target - config.initial_eye) so the first frame does not produce a view jump.

Parameters
configSource configuration
Returns
Initialised NavigationState

Definition at line 5 of file NavigationState.cpp.

6{
8 st.eye = config.initial_eye;
9 st.move_speed = config.move_speed;
11 st.scroll_speed = config.scroll_speed;
12 st.fov_radians = config.fov_radians;
13 st.near_plane = config.near_plane;
14 st.far_plane = config.far_plane;
15
16 const glm::vec3 dir = glm::normalize(config.initial_target - config.initial_eye);
17 st.yaw = std::atan2(dir.x, dir.z);
18 st.pitch = std::asin(glm::clamp(dir.y, -1.0F, 1.0F));
19
20 return st;
21}
float mouse_sensitivity
Radians per pixel.
float scroll_speed
World units per scroll tick.
float move_speed
World units per second.
float pitch
Radians, vertical rotation, clamped to [-89, +89] degrees.
float yaw
Radians, horizontal rotation.
Mutable first-person navigation state.

References MayaFlux::Kinesis::NavigationState::eye, MayaFlux::Kinesis::NavigationConfig::far_plane, MayaFlux::Kinesis::NavigationState::far_plane, MayaFlux::Kinesis::NavigationConfig::fov_radians, MayaFlux::Kinesis::NavigationState::fov_radians, MayaFlux::Kinesis::NavigationConfig::initial_eye, MayaFlux::Kinesis::NavigationConfig::initial_target, MayaFlux::Kinesis::NavigationConfig::mouse_sensitivity, MayaFlux::Kinesis::NavigationState::mouse_sensitivity, MayaFlux::Kinesis::NavigationConfig::move_speed, MayaFlux::Kinesis::NavigationState::move_speed, MayaFlux::Kinesis::NavigationConfig::near_plane, MayaFlux::Kinesis::NavigationState::near_plane, MayaFlux::Kinesis::NavigationState::pitch, MayaFlux::Kinesis::NavigationConfig::scroll_speed, MayaFlux::Kinesis::NavigationState::scroll_speed, and MayaFlux::Kinesis::NavigationState::yaw.

Referenced by MayaFlux::bind_viewport_preset().

+ Here is the caller graph for this function: