// bytran -|- spectral calculations for portable devices using the HITRAN database
//
// Developed by Dzianis Pliutau (Denis Plutov) and Kostya Roslyakov
// www.bytran.org | bytran@bytran.org
// Copyright (c) 2016 Dzianis Pliutau
// Distributed under the MIT license
//
// The MIT License (MIT)
// Copyright (c) 2016 Dzianis Pliutau
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
// is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
// IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.



// Object for a single HITRAN isotope
#include "hitranoneiso.h"

HitranOneIso::HitranOneIso()
{

}

// Array of type double with the TIPS coefficients for the corresponding temperature values
QVector<double> *HitranOneIso::getTips() { return &(this->tips); }
void HitranOneIso::setTips(QVector<double> *newTips)
{
    this->tips.resize(newTips->count());
    this->tips = *newTips;
}
double HitranOneIso::getTipsAtIndex(int index) { return this->tips[index]; }
void HitranOneIso::setTipsAtIndex(int index, double tipsValue) { this->tips[index] = tipsValue; }
// Variable indicating if the isotope is selected for calculation (1 - selected, 0 - not selected)
bool HitranOneIso::getSelected() { return this->selected; }
void HitranOneIso::setSelected(bool newSelected) { this->selected = newSelected; }
// Isotopologue number
int HitranOneIso::getIsoLog() { return this->isoLog; }
void HitranOneIso::setIsoLog(int newIsoLog) { this->isoLog = newIsoLog; }
// Isotope abundance
double HitranOneIso::getTerrAbund() { return this->terrAbund; }
void HitranOneIso::setTerrAbund(double newTerrAbund) { this->terrAbund = newTerrAbund; }
// Used isotope abundance
double HitranOneIso::getAbund() { return this->abund; }
void HitranOneIso::setAbund(double newAbund) { this->abund = newAbund; }
// Partition sum value at a temperature of 296K
double HitranOneIso::getQ296K() { return this->Q296K; }
void HitranOneIso::setQ296K(double newQ296K) { this->Q296K = newQ296K; }
// Degeneracy factor
double HitranOneIso::getGj() { return this->gj; }
void HitranOneIso::setGj(double newGj) { this->gj = newGj; }
// Molar mass for the current isotope
double HitranOneIso::getMolarMass() { return this->molarMass; }
void HitranOneIso::setMolarMass(double newMolarMass) { this->molarMass = newMolarMass; }
// Color to use for plotting a given isotope
int HitranOneIso::getColor() { return this->color; }
void HitranOneIso::setColor(int newColor) { this->color = newColor; }
// Getting and setting the global isotopologue ID
int HitranOneIso::getGlobalId() { return this->globalId; }
void HitranOneIso::setGlobalId(int newGlobalId) { this->globalId = newGlobalId; }
// Getting and setting a variable indicating if the Total Internal Partition Sums are available
bool HitranOneIso::getTipsFileAvailableLocally() { return this->tipsFileAvailableLocally; }
void HitranOneIso::setTipsFileAvailableLocally(bool newTipsFileAvailableLocally) { this->tipsFileAvailableLocally = newTipsFileAvailableLocally; }
// Getting and setting the TIPS file name
bool HitranOneIso::getTipsFileAvailableOnHitranServer() { return this->tipsFileAvailableOnHitranServer; }
void HitranOneIso::setTipsFileAvailableOnHitranServer(bool newTipsFileAvailableOnHitranServer) { this->tipsFileAvailableOnHitranServer = newTipsFileAvailableOnHitranServer; }
