From f0b536ac93b3a9a49dfff8a7637f09b153a3b955 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Fri, 22 Feb 2019 21:49:07 +0100 Subject: Improvise interactive wall drawing Internal wall cells need to be disabled to prevent delayed propagation of the reflected populations. This is just quickly thrown together - both the visual drawing and the backend's material handling remain to be improved. --- src/main.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/main.cc') diff --git a/src/main.cc b/src/main.cc index 3048979..0a400a5 100644 --- a/src/main.cc +++ b/src/main.cc @@ -10,6 +10,7 @@ #include "buffer/vertex/fluid_cell_buffer.h" #include "buffer/vertex/lattice_cell_buffer.h" +#include "buffer/vertex/material_buffer.h" #include "shader/wrap/graphic_shader.h" #include "shader/wrap/compute_shader.h" @@ -66,6 +67,7 @@ int renderWindow() { std::unique_ptr lattice_a; std::unique_ptr lattice_b; std::unique_ptr fluid; + std::unique_ptr geometry; std::unique_ptr collide_shader; std::unique_ptr stream_shader; @@ -77,6 +79,7 @@ int renderWindow() { lattice_a = std::make_unique(nX, nY); lattice_b = std::make_unique(nX, nY); fluid = std::make_unique< FluidCellBuffer>(nX, nY); + geometry = std::make_unique< MaterialBuffer>(nX, nY); collide_shader = std::make_unique(COLLIDE_SHADER_CODE); stream_shader = std::make_unique(STREAM_SHADER_CODE); @@ -94,8 +97,8 @@ int renderWindow() { auto pause_key = window.getKeyWatcher(GLFW_KEY_SPACE); - auto tick_buffers = { lattice_a->getBuffer(), lattice_b->getBuffer(), fluid->getBuffer() }; - auto tock_buffers = { lattice_b->getBuffer(), lattice_a->getBuffer(), fluid->getBuffer() }; + auto tick_buffers = { lattice_a->getBuffer(), lattice_b->getBuffer(), fluid->getBuffer(), geometry->getBuffer() }; + auto tock_buffers = { lattice_b->getBuffer(), lattice_a->getBuffer(), fluid->getBuffer(), geometry->getBuffer() }; window.render([&](bool window_size_changed) { if ( pause_key.wasClicked() ) { -- cgit v1.2.3