1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
#include <BALL/NMR/experiment.h>
namespace BALL
{
SimpleExperiment1D::SimpleExperiment1D()
: Experiment1D(),
expression_("true()")
{
}
SimpleExperiment1D::SimpleExperiment1D(const SimpleExperiment1D& experiment)
: Experiment1D(experiment),
expression_(experiment.expression_)
{
}
SimpleExperiment1D::~SimpleExperiment1D()
{
}
bool SimpleExperiment1D::start()
{
// delete all old peaks
peak_list_.clear();
// nothing can go wrong here!
return true;
}
Processor::Result SimpleExperiment1D::operator () (Composite& composite)
{
Atom* atom_ptr = dynamic_cast<Atom*>(&composite);
if ((atom_ptr != 0) && expression_(*atom_ptr))
{
// create a new peak at the end of the list
peak_list_.push_back(default_peak_);
// set the peak's position
peak_list_.back().setPosition(atom_ptr->getProperty(ShiftModule::PROPERTY__SHIFT).getFloat());
// copy the atom's properties to the peak
static_cast<PropertyManager&>(peak_list_.back()).set(*atom_ptr);
}
return Processor::CONTINUE;
}
} // namespace BALL
|