00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_ENERGY_ENERGYPROCESSOR_H
00008 #define BALL_ENERGY_ENERGYPROCESSOR_H
00009
00010 #ifndef BALL_COMMON_H
00011 # include <BALL/common.h>
00012 #endif
00013
00014 #ifndef BALL_KERNEL_ATOMCONTAINER_H
00015 # include <BALL/KERNEL/atomContainer.h>
00016 #endif
00017
00018 #ifndef BALL_CONCEPT_PROCESSOR_H
00019 # include <BALL/CONCEPT/processor.h>
00020 #endif
00021
00022 namespace BALL
00023 {
00030 class BALL_EXPORT EnergyProcessor
00031 : public UnaryProcessor<AtomContainer>
00032 {
00033
00034 public:
00035
00036 BALL_CREATE(EnergyProcessor)
00037
00038
00041
00044 EnergyProcessor();
00045
00048 EnergyProcessor(const EnergyProcessor& proc);
00049
00052 virtual ~EnergyProcessor();
00053
00055
00058
00061 const EnergyProcessor& operator = (const EnergyProcessor& proc);
00062
00065 virtual void clear();
00066
00068
00071
00074 virtual bool start();
00075
00078 virtual Processor::Result operator () (AtomContainer& fragment);
00079
00081
00084
00087 double getEnergy() const;
00088
00090
00093
00096 bool isValid() const;
00097
00100 bool operator == (const EnergyProcessor& proc) const;
00101
00103
00104 protected:
00105
00106
00107 const AtomContainer* fragment_;
00108
00109
00110 double energy_;
00111
00112
00113 bool valid_;
00114
00115 };
00116 }
00117
00118 #endif // BALL_ENERGY_ENERGYPROCESSOR_H