/** * \file core/VolumeRestraint.h * \brief A prevent spheres from inter-penetrating * * Copyright 2007-2010 IMP Inventors. All rights reserved. */ #ifndef IMPCORE_VOLUME_RESTRAINT_H #define IMPCORE_VOLUME_RESTRAINT_H #include "core_config.h" #include #include #include #include IMPCORE_BEGIN_NAMESPACE //! Restraint the volume of a set of spheres /** \untested{VolumeRestraint}*/ class IMPCOREEXPORT VolumeRestraint: public Restraint { IMP::internal::OwnerPointer sc_; IMP::internal::OwnerPointer f_; double volume_; typedef algebra::DenseGrid3D Grid; mutable Grid grid_; public: VolumeRestraint(UnaryFunction *f, SingletonContainer *sc, double volume); IMP_RESTRAINT(VolumeRestraint); }; IMPCORE_END_NAMESPACE #endif /* IMPCORE_VOLUME_RESTRAINT_H */