diff options
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 22 | 
1 files changed, 22 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp index 808e5ea..2fefb17 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -82,6 +82,28 @@ void draw_node_number_line(const NodeAllocator &allocator, long double lower,    }  } +void draw_number_line(const NodeAllocator &allocator) +{ +  // Draw a general guide number line +  DrawLine(0, HEIGHT / 2, WIDTH, HEIGHT / 2, WHITE); +  // Figure out the leftmost and rightmost nodes for bounds +  const auto right       = rightmost_node(allocator); +  const auto left        = leftmost_node(allocator); +  const auto upper_bound = std::ceill(right.value.norm); +  const auto lower_bound = std::floorl(left.value.norm); + +  // Draw all the nodes +  draw_node_number_line(allocator, lower_bound, upper_bound); + +  // Draw the bounds, with their values, in white +  word_t lower_x = clamp_to_width(left.value.norm, lower_bound, upper_bound); +  word_t upper_x = clamp_to_width(right.value.norm, lower_bound, upper_bound); +  draw_fraction(left.value, lower_x, 3 * HEIGHT / 8); +  draw_fraction(right.value, upper_x, 3 * HEIGHT / 8); +  DrawLine(lower_x, LINE_TOP, lower_x, LINE_BOTTOM, WHITE); +  DrawLine(upper_x, LINE_TOP, upper_x, LINE_BOTTOM, WHITE); +} +  int main(void)  {    // NodeAllocator allocator{256};  | 
