mirror of
https://github.com/gwm17/Specter.git
synced 2024-11-22 18:28:52 -05:00
Added descriptive comments to rest of code
This commit is contained in:
parent
887f025b3b
commit
34b448f850
|
@ -1,8 +1,16 @@
|
|||
/*
|
||||
MassMap.h
|
||||
A represnetation of the AMDC mass table. We provide capability to retrieve the mass of an isotope
|
||||
as well as the isotopic symbol. This sort of code is pretty ubiquitous in flexible nuclear physics
|
||||
analysis.
|
||||
|
||||
GWM -- Feb 2022
|
||||
*/
|
||||
#include "MassMap.h"
|
||||
|
||||
/*
|
||||
Read in AMDC mass file, preformated to remove excess info. Here assumes that by default
|
||||
the file is in a local directory etc/
|
||||
Read in AMDC mass file, preformated to remove excess info. Here assumes that by default
|
||||
the file is in a local directory Resources. Navigator build process handles this.
|
||||
*/
|
||||
MassMap::MassMap()
|
||||
{
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
/*
|
||||
MassMap.h
|
||||
A represnetation of the AMDC mass table. We provide capability to retrieve the mass of an isotope
|
||||
as well as the isotopic symbol. This sort of code is pretty ubiquitous in flexible nuclear physics
|
||||
analysis.
|
||||
|
||||
GWM -- Feb 2022
|
||||
*/
|
||||
#ifndef MASS_MAP_H
|
||||
#define MASS_MAP_H
|
||||
|
||||
|
|
|
@ -1,3 +1,16 @@
|
|||
/*
|
||||
SPSInputLayer.cpp
|
||||
An example of what a user created layer might look like. This is how one would extend the base editor to have more
|
||||
functionality, specific to their experiment/setup. In this case, we provide inputs for reaction information so that
|
||||
the kinematic shift of the SE-SPS focal plane can be calculated, and weights for tracing particle trajectories are
|
||||
produced for use in analysis (as NavVariables).
|
||||
|
||||
A reminder that these layers should not be that intense. The more work that is shoved into the UI, the less responsive
|
||||
and more sluggish overall the UI will become. The vast bulk of the analysis work should be left to the PhysicsLayer which has its own
|
||||
thread to work upon.
|
||||
|
||||
GWM -- Feb 2022
|
||||
*/
|
||||
#include "SPSInputLayer.h"
|
||||
#include "imgui.h"
|
||||
|
||||
|
@ -32,9 +45,9 @@ namespace Navigator {
|
|||
|
||||
void SPSInputLayer::OnImGuiRender()
|
||||
{
|
||||
ImGui::SetCurrentContext(ImGui::GetCurrentContext());
|
||||
if (ImGui::Begin("SPS Input"))
|
||||
{
|
||||
//Create widgets for all of our inputs
|
||||
ImGui::InputDouble("Bfield(kG)", &m_bfield, 0.01, 0.1);
|
||||
ImGui::InputDouble("Theta(deg)", &m_theta, 0.1, 1.0);
|
||||
ImGui::InputDouble("BeamKE(MeV)", &m_beamKE, 0.1, 1.0);
|
||||
|
@ -43,8 +56,11 @@ namespace Navigator {
|
|||
ImGui::InputInt2("Ejectile Z,A", m_ejectNums);
|
||||
if (ImGui::Button("Set"))
|
||||
{
|
||||
//We dont want to calculate the weights every frame, so
|
||||
//we lock that calculation behind a button.
|
||||
UpdateWeights();
|
||||
}
|
||||
//Display some info about the internal state
|
||||
ImGui::Text("-------Current Settings-------");
|
||||
ImGui::Text("Reaction Equation: ");
|
||||
ImGui::SameLine();
|
||||
|
@ -57,7 +73,9 @@ namespace Navigator {
|
|||
|
||||
void SPSInputLayer::UpdateWeights()
|
||||
{
|
||||
m_rxnEqn = "";
|
||||
m_rxnEqn = ""; //reset
|
||||
|
||||
//Calculate residual nucleus from reaction
|
||||
for (int i = 0; i < 2; i++)
|
||||
m_residNums[i] = m_targNums[i] + m_projNums[i] - m_ejectNums[i];
|
||||
if (m_residNums[0] < 0 || m_residNums[1] <= 0)
|
||||
|
@ -72,6 +90,7 @@ namespace Navigator {
|
|||
return;
|
||||
}
|
||||
|
||||
//Obtain masses from the AMDC table
|
||||
double targMass = m_masses.FindMass(m_targNums[0], m_targNums[1]);
|
||||
double projMass = m_masses.FindMass(m_projNums[0], m_projNums[1]);
|
||||
double ejectMass = m_masses.FindMass(m_ejectNums[0], m_ejectNums[1]);
|
||||
|
@ -89,7 +108,7 @@ namespace Navigator {
|
|||
temp = m_masses.FindSymbol(m_residNums[0], m_residNums[1]);
|
||||
m_rxnEqn += temp;
|
||||
|
||||
double theta_rad = m_theta * c_deg2rad;
|
||||
double theta_rad = m_theta * c_deg2rad; //convert to radians
|
||||
double bfield_t = m_bfield * 0.1; //convert to tesla
|
||||
double Q = targMass + projMass - ejectMass - residMass;
|
||||
//kinematics a la Iliadis p.590
|
||||
|
|
|
@ -1,3 +1,16 @@
|
|||
/*
|
||||
SPSInputLayer.h
|
||||
An example of what a user created layer might look like. This is how one would extend the base editor to have more
|
||||
functionality, specific to their experiment/setup. In this case, we provide inputs for reaction information so that
|
||||
the kinematic shift of the SE-SPS focal plane can be calculated, and weights for tracing particle trajectories are
|
||||
produced for use in analysis (as NavVariables).
|
||||
|
||||
A reminder that these layers should not be that intense. The more work that is shoved into the UI, the less responsive
|
||||
and more sluggish overall the UI will become. The vast bulk of the analysis work should be left to the PhysicsLayer which has its own
|
||||
thread to work upon.
|
||||
|
||||
GWM -- Feb 2022
|
||||
*/
|
||||
#ifndef SPS_INPUT_LAYER_H
|
||||
#define SPS_INPUT_LAYER_H
|
||||
|
||||
|
@ -15,8 +28,8 @@ namespace Navigator {
|
|||
virtual void OnAttach() override;
|
||||
virtual void OnDetach() override;
|
||||
virtual void OnUpdate() override;
|
||||
virtual void OnEvent(Event& event) override;
|
||||
virtual void OnImGuiRender() override;
|
||||
virtual void OnEvent(Event& event) override; //If you want to respond to events
|
||||
virtual void OnImGuiRender() override; //"Main" function
|
||||
|
||||
private:
|
||||
void UpdateWeights();
|
||||
|
@ -29,6 +42,7 @@ namespace Navigator {
|
|||
double m_bfield; //kG
|
||||
double m_theta; //deg
|
||||
double m_beamKE; //MeV
|
||||
//Z, A inputs for reaction nuclei
|
||||
int m_targNums[2];
|
||||
int m_projNums[2];
|
||||
int m_ejectNums[2];
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
/*
|
||||
OpenGLContext.h
|
||||
Implementation of OpenGL rendering context. Entirely based upon the work done by @TheCherno in his game engine series. See his content for more details.
|
||||
|
||||
GWM -- Feb 2022
|
||||
*/
|
||||
#include "OpenGLContext.h"
|
||||
|
||||
#include "GLFW/glfw3.h"
|
||||
|
@ -18,6 +24,7 @@ namespace Navigator {
|
|||
|
||||
int status = gladLoadGLLoader((GLADloadproc)glfwGetProcAddress);
|
||||
|
||||
//Report graphics status
|
||||
NAV_TRACE("Loaded OpenGL with glad Init status {0}", status);
|
||||
|
||||
NAV_INFO("Loaded OpenGL renderer");
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
/*
|
||||
OpenGLContext.h
|
||||
Implementation of OpenGL rendering context. Entirely based upon the work done by @TheCherno in his game engine series. See his content for more details.
|
||||
|
||||
GWM -- Feb 2022
|
||||
*/
|
||||
#ifndef OPEGL_CONTEXT_H
|
||||
#define OPEGL_CONTEXT_H
|
||||
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
/*
|
||||
OpenGLRendererAPI.h
|
||||
Implementation of OpenGL API in Navigator context. Note here only a few things exist. We don't need to implement much ourselves,
|
||||
ImGui handles a lot of the heavy lifting for us. Based entirely upon @TheCherno's work in his game engine series.
|
||||
|
||||
GWM -- Feb 2022
|
||||
*/
|
||||
#include "OpenGLRendererAPI.h"
|
||||
|
||||
#include "glad/glad.h"
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
/*
|
||||
OpenGLRendererAPI.h
|
||||
Implementation of OpenGL API in Navigator context. Note here only a few things exist. We don't need to implement much ourselves,
|
||||
ImGui handles a lot of the heavy lifting for us. Based entirely upon @TheCherno's work in his game engine series.
|
||||
|
||||
GWM -- Feb 2022
|
||||
*/
|
||||
#ifndef OPENGL_RENDERER_API_H
|
||||
#define OPENGL_RENDERER_API_H
|
||||
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
/*
|
||||
OpenGLWindow.h
|
||||
Implementation of a window with OpenGL context. Not really OpenGL specific, other than in creation of GraphicsContext.
|
||||
Bulk of creation can be used in any api/context (glfw compatible with Cocoa, X11, or Windows). Based entirely upon the
|
||||
work of @TheCherno in his game engine series.
|
||||
|
||||
GWM -- Feb 2022
|
||||
*/
|
||||
#include "OpenGLWindow.h"
|
||||
#include "OpenGLContext.h"
|
||||
#include "Navigator/NavCore.h"
|
||||
|
@ -40,6 +48,7 @@ namespace Navigator {
|
|||
glfwSetErrorCallback(GLFWErrorCallback);
|
||||
}
|
||||
|
||||
//Apple specific. OpenGL is technically deprecated, so a little extra work to force the correct version
|
||||
#ifdef __APPLE__
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
|
||||
|
@ -49,12 +58,13 @@ namespace Navigator {
|
|||
|
||||
m_window = glfwCreateWindow((int)m_data.width, (int)m_data.height, m_data.name.c_str(), nullptr, nullptr);
|
||||
|
||||
m_context = new OpenGLContext(m_window);
|
||||
m_context = new OpenGLContext(m_window); //This is the only seriously OpenGL specific code
|
||||
m_context->Init();
|
||||
|
||||
glfwSetWindowUserPointer(m_window, &m_data);
|
||||
SetVSync(true);
|
||||
|
||||
//Set all of the callback functions for the window.
|
||||
glfwSetWindowSizeCallback(m_window, [](GLFWwindow* window, int width, int height)
|
||||
{
|
||||
Data& data = *(Data*) glfwGetWindowUserPointer(window);
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
/*
|
||||
OpenGLWindow.h
|
||||
Implementation of a window with OpenGL context. Not really OpenGL specific, other than in creation of GraphicsContext.
|
||||
Bulk of creation can be used in any api/context (glfw compatible with Cocoa, X11, or Windows). Based entirely upon the
|
||||
work of @TheCherno in his game engine series.
|
||||
|
||||
GWM -- Feb 2022
|
||||
*/
|
||||
#ifndef OPENGL_WINDOW_H
|
||||
#define OPENGL_WINDOW_H
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user