136 lines
2.2 KiB
C++
136 lines
2.2 KiB
C++
//
|
|
// Parameters.cpp
|
|
// Parameters
|
|
//
|
|
// Created by Baranyai David on 2018. 06. 30..
|
|
// Copyright © 2018. Baranyai David. All rights reserved.
|
|
//
|
|
|
|
#include "Parameters.hpp"
|
|
|
|
Parameters* Parameters::GetInstance()
|
|
{
|
|
if (instance == 0)
|
|
{
|
|
instance = new Parameters();
|
|
}
|
|
|
|
return instance;
|
|
}
|
|
|
|
Parameters* Parameters::instance = 0;
|
|
|
|
Parameters::Parameters()
|
|
{
|
|
try
|
|
{
|
|
file.open("data.txt");
|
|
if(!file.is_open())
|
|
{
|
|
throw "File opening error";
|
|
}
|
|
|
|
int index_helper = 0;
|
|
double material_helper = 0;
|
|
double helper = 0;
|
|
|
|
//Read the data
|
|
file >> energy >> shape;
|
|
|
|
for(int i = 0; i < 3; i++)
|
|
{
|
|
file >> helper;
|
|
dimension.push_back(helper);
|
|
}
|
|
|
|
for (int i = 0; i < 3; i++)
|
|
{
|
|
file >> helper;
|
|
n_sum = n_sum * helper;
|
|
n.push_back(helper);
|
|
}
|
|
|
|
for(int i = 0; i < n_sum; i++)
|
|
{
|
|
file >> index_helper;
|
|
if(index_helper == i)
|
|
{
|
|
file >> material_helper;
|
|
material.push_back(material_helper);
|
|
}
|
|
else
|
|
{
|
|
throw "Index mismatch in file";
|
|
}
|
|
}
|
|
}
|
|
//Check if any errors happen when opening the file
|
|
catch(char param)
|
|
{
|
|
std::cout << param << std::endl;
|
|
}
|
|
}
|
|
|
|
Parameters::~Parameters()
|
|
{
|
|
file.close();
|
|
}
|
|
|
|
double Parameters::GetMaterial(int x, int y, int z)
|
|
{
|
|
//To-Do
|
|
return 0;
|
|
}
|
|
|
|
double Parameters::GetMaterial(int index)
|
|
{
|
|
if(index > material.size() || index < 0)
|
|
{
|
|
return -1;
|
|
}
|
|
else
|
|
{
|
|
return material[index];
|
|
}
|
|
}
|
|
|
|
std::vector<double> Parameters::GetMaterialList()
|
|
{
|
|
return material;
|
|
}
|
|
|
|
double Parameters::GetListSize()
|
|
{
|
|
return material.size();
|
|
}
|
|
|
|
double Parameters::GetEnergy()
|
|
{
|
|
return energy;
|
|
}
|
|
|
|
void Parameters::SetEnergy(double e)
|
|
{
|
|
energy = e;
|
|
}
|
|
|
|
double Parameters::GetShape()
|
|
{
|
|
return shape;
|
|
}
|
|
|
|
void Parameters::SetShape(double s)
|
|
{
|
|
shape = s;
|
|
}
|
|
|
|
std::vector<double> Parameters::GetDimension()
|
|
{
|
|
return dimension;
|
|
}
|
|
|
|
std::vector<double> Parameters::GetVoxel()
|
|
{
|
|
return n;
|
|
}
|