update color scheme
This commit is contained in:
@ -87,8 +87,8 @@ auto cpu_spring_system::calculate_spring_force(const size_t s) -> void
|
||||
const float inv_len = 1.0f / sqrt(sq_len);
|
||||
const float len = sq_len * inv_len;
|
||||
|
||||
const float hooke = SPRING_CONSTANT * (len - REST_LENGTH);
|
||||
const float dampening = DAMPENING_CONSTANT * Vector3DotProduct(delta_vel, delta_pos) * inv_len;
|
||||
const float hooke = SPRING_K * (len - REST_LENGTH);
|
||||
const float dampening = DAMPENING_K * Vector3DotProduct(delta_vel, delta_pos) * inv_len;
|
||||
|
||||
const Vector3 a_force = Vector3Scale(delta_pos, -(hooke + dampening) * inv_len);
|
||||
const Vector3 b_force = a_force * -1.0f;
|
||||
|
||||
@ -42,6 +42,7 @@ auto input_handler::init_handlers() -> void
|
||||
register_key_pressed_handler(KEY_C, &input_handler::clear_graph);
|
||||
register_key_pressed_handler(KEY_I, &input_handler::toggle_mark_solutions);
|
||||
register_key_pressed_handler(KEY_O, &input_handler::toggle_connect_solutions);
|
||||
register_key_pressed_handler(KEY_Z, &input_handler::toggle_color_by_distance);
|
||||
|
||||
register_key_pressed_handler(KEY_TAB, &input_handler::toggle_editing);
|
||||
register_key_pressed_handler(KEY_F, &input_handler::toggle_restricted_movement);
|
||||
@ -142,12 +143,17 @@ auto input_handler::camera_zoom() const -> void
|
||||
|
||||
auto input_handler::camera_fov() const -> void
|
||||
{
|
||||
if (!mouse_in_graph_pane() || !IsKeyDown(KEY_LEFT_CONTROL) || IsKeyDown(KEY_LEFT_SHIFT)) {
|
||||
if (!mouse_in_graph_pane() || !IsKeyDown(KEY_LEFT_CONTROL)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const float wheel = GetMouseWheelMove();
|
||||
camera.fov -= wheel * FOV_SPEED;
|
||||
|
||||
if (IsKeyDown(KEY_LEFT_SHIFT)) {
|
||||
camera.fov -= wheel * FOV_SPEED * FOV_MULTIPLIER;
|
||||
} else {
|
||||
camera.fov -= wheel * FOV_SPEED;
|
||||
}
|
||||
}
|
||||
|
||||
auto input_handler::select_block() -> void
|
||||
@ -407,6 +413,11 @@ auto input_handler::toggle_connect_solutions() -> void
|
||||
connect_solutions = !connect_solutions;
|
||||
}
|
||||
|
||||
auto input_handler::toggle_color_by_distance() -> void
|
||||
{
|
||||
color_by_distance = !color_by_distance;
|
||||
}
|
||||
|
||||
auto input_handler::toggle_mark_path() -> void
|
||||
{
|
||||
mark_path = !mark_path;
|
||||
|
||||
@ -63,7 +63,11 @@ auto orbit_camera::update(const Vector3& current_target, const Vector3& mass_cen
|
||||
const float y = sin(angle_y) * actual_distance;
|
||||
const float z = cos(angle_y) * cos(angle_x) * actual_distance;
|
||||
|
||||
fov = Clamp(fov, MIN_FOV, MAX_FOV);
|
||||
if (projection == CAMERA_ORTHOGRAPHIC) {
|
||||
fov = Clamp(fov, MIN_FOV, MAX_ORTHO_FOV);
|
||||
} else {
|
||||
fov = Clamp(fov, MIN_FOV, MAX_PERSP_FOV);
|
||||
}
|
||||
|
||||
camera.position = Vector3Add(target, Vector3(x, y, z));
|
||||
camera.target = target;
|
||||
|
||||
@ -104,7 +104,7 @@ auto renderer::draw_mass_springs(const std::vector<Vector3>& masses) -> void
|
||||
} else if (state.get_visit_counts().at(mass) > 0) {
|
||||
// Visited vertex
|
||||
c = VERTEX_VISITED_COLOR;
|
||||
} else if (distances.size() == masses.size()) {
|
||||
} else if (input.color_by_distance && distances.size() == masses.size()) {
|
||||
c = lerp_color(VERTEX_FARTHEST_COLOR,
|
||||
VERTEX_CLOSEST_COLOR,
|
||||
static_cast<float>(distances[mass]));
|
||||
|
||||
Reference in New Issue
Block a user