SimpleFastOpenAtomicVisualiser
Loading...
Searching...
No Matches
infoWindow.h
Go to the documentation of this file.
1#ifndef INFOWINDOW_H
2#define INFOWINDOW_H
3
4#include <memory.h>
5
6#include <imgui/imgui.h>
7#include <imgui/imgui_impl_glfw.h>
8#include <imgui/imgui_impl_opengl3.h>
9
10#ifdef WINDOWS
11#include <imgui/imgui_impl_win32.h>
12#endif
13
14#ifdef MACOS
15#include <imgui/imgui_impl_osx.h>
16#endif
17
18#include <camera.h>
19#include <visualisationState.h>
20#include <structure.h>
21#include <atomRenderer.h>
22#include <bondRenderer.h>
23#include <commandLine.h>
24
34(
35 const std::unique_ptr<Structure> & structure,
36 const Camera & camera,
37 const VisualisationState & visualisationState,
38 const float & delta
39)
40{
41 auto cx = fixedLengthNumber(camera.position().x, 6);
42 auto cy = fixedLengthNumber(camera.position().y, 6);
43 auto cz = fixedLengthNumber(camera.position().z, 6);
44
45 ImGui::Begin("Information");
46
47 unsigned size = std::ceil(structure->frameCount()/10.0);
48 ImGui::Text("Structure: %s", structure->getPath().c_str());
49 ImGui::Text("Frame %*lu / %*lu", size, visualisationState.frame+1, size, structure->frameCount());
50 ImGui::Text("Frame caching %s", (structure->framePositionsLoaded() ? "complete." : "in progress."));
51 ImGui::Text("Camera %s, %s, %s", cx.c_str(), cy.c_str(), cz.c_str());
52 ImGui::Text("Frame Time (FPS) %s ms (%s)", fixedLengthNumber(delta,6).c_str(), fixedLengthNumber(1.0/(delta*1e-3),4).c_str());
53
54 ImGui::End();
55}
56
57#endif /* INFOWINDOW_H */
A 3D projective camera centered on a focus moving on a sphere.
Definition camera.h:30
glm::vec3 position(bool spherical=false) const
Return the cartesian position vector.
Definition camera.h:164
glm::vec< L, float, glm::qualifier::highp > vec
Definition commandLine.h:214
void infoWindow(const std::unique_ptr< Structure > &structure, const Camera &camera, const VisualisationState &visualisationState, const float &delta)
Draw an information window.
Definition infoWindow.h:34
Holds editable data for the visualisation state.
Definition visualisationState.h:34
uint64_t frame
Definition visualisationState.h:126
std::string fixedLengthNumber(double x, unsigned length)
Convert a double to a fixes length std::string.
Definition util.h:81