From 873a3385b0e3dc6bbb6eff9dc4ddd150ffcf792f Mon Sep 17 00:00:00 2001 From: Carsten Niehaus Date: Mon, 20 Feb 2006 14:35:33 +0000 Subject: [PATCH] improve the isotope-api a bit, but a big FIXME svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=511624 --- libscience/isotope.cpp | 17 ++++++++++++++++- libscience/isotope.h | 12 ++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/libscience/isotope.cpp b/libscience/isotope.cpp index 2e28e4e..607e247 100644 --- a/libscience/isotope.cpp +++ b/libscience/isotope.cpp @@ -30,7 +30,8 @@ Isotope::Isotope() Isotope::Isotope( ChemicalDataObject* mass, ChemicalDataObject* ID ) : m_parentElementSymbol( 0 ), m_mass( 0 ), m_identifier( 0 ), - m_spin( 0 ), m_magmoment( 0 ), m_halflife( 0 ) + m_spin( 0 ), m_magmoment( 0 ), m_halflife( 0 ), m_ecday( 0 ), m_betaminus( 0 ), + m_betaplus( 0 ), m_alpha( 0 ) { addData( mass ); addData( ID ); @@ -58,6 +59,20 @@ void Isotope::addData( ChemicalDataObject* o ) m_magmoment = o; else if ( o->type() == ChemicalDataObject::halfLife ) m_halflife = o; + + //FIXME in the future there should be real CDOs. But CDO only supports one datavalue... + if ( o->type() == ChemicalDataObject::betaplusDecay || o->type() == ChemicalDataObject::betaminusDecay + || o->type() == ChemicalDataObject::alphaDecay || o->type() == ChemicalDataObject::ecDecay ) + { + if ( o->type() == ChemicalDataObject::betaplusDecay ) + m_betaplus = o; + if ( o->type() == ChemicalDataObject::betaminusDecay ) + m_betaminus = o; + if ( o->type() == ChemicalDataObject::alphaDecay ) + m_alpha = o; + if ( o->type() == ChemicalDataObject::ecDecay ) + m_ecday = o; + } } double Isotope::mass() const diff --git a/libscience/isotope.h b/libscience/isotope.h index 6c16be0..ca1860e 100644 --- a/libscience/isotope.h +++ b/libscience/isotope.h @@ -55,8 +55,20 @@ class Isotope void addData( ChemicalDataObject* o ); void setNucleons( int number ); + + /** + * @return the sum of protons and neutrons + */ int nucleons() const; + //FIXME + //need to be made private. But that comes later + + ChemicalDataObject* m_ecday; + ChemicalDataObject* m_betaplus; + ChemicalDataObject* m_betaminus; + ChemicalDataObject* m_alpha; + private: /** * the symbol of the element the isotope belongs to -- 2.47.3