#ifndef ATOMSWITHINDISTANCEOFDESCRIPTOR_IMPL_HPP #define ATOMSWITHINDISTANCEOFDESCRIPTOR_IMPL_HPP // include config.h #ifdef HAVE_CONFIG_H #include #endif #include "LinearAlgebra/Vector.hpp" #include "Descriptors/AtomDescriptor_impl.hpp" class AtomsWithinDistanceOfDescriptor_impl : public AtomDescriptor_impl { public: AtomsWithinDistanceOfDescriptor_impl(const double _distance, const Vector &_position); virtual ~AtomsWithinDistanceOfDescriptor_impl(); bool predicate(std::pair atom) const; protected: // need to overide more than the standard methods to make this fast virtual atom *find(); virtual const atom *find() const; virtual std::vector findAll(); virtual std::vector findAll() const; private: const double distance; const double distanceSquared; const Vector position; }; #endif //ATOMSWITHINDISTANCEOFDESCRIPTOR_IMPL_HPP