00001 /** 00002 * \file DihedralRestraint.h \brief Dihedral restraint between four particles. 00003 * 00004 * Copyright 2007-2010 IMP Inventors. All rights reserved. 00005 * 00006 */ 00007 00008 #ifndef IMPCORE_DIHEDRAL_RESTRAINT_H 00009 #define IMPCORE_DIHEDRAL_RESTRAINT_H 00010 00011 #include "core_config.h" 00012 00013 #include <IMP/UnaryFunction.h> 00014 #include <IMP/Restraint.h> 00015 00016 IMPCORE_BEGIN_NAMESPACE 00017 00018 //! Dihedral restraint between four particles 00019 class IMPCOREEXPORT DihedralRestraint : public Restraint 00020 { 00021 public: 00022 //! Create the dihedral restraint. 00023 /** \param[in] score_func Scoring function for the restraint. 00024 \param[in] p1 Pointer to first particle in dihedral restraint. 00025 \param[in] p2 Pointer to second particle in dihedral restraint. 00026 \param[in] p3 Pointer to third particle in dihedral restraint. 00027 \param[in] p4 Pointer to fourth particle in dihedral restraint. 00028 */ 00029 DihedralRestraint(UnaryFunction* score_func, 00030 Particle* p1, Particle* p2, Particle* p3, Particle *p4); 00031 00032 IMP_RESTRAINT(DihedralRestraint); 00033 00034 private: 00035 IMP::internal::OwnerPointer<UnaryFunction> score_func_; 00036 IMP::internal::OwnerPointer<Particle> p_[4]; 00037 }; 00038 00039 IMPCORE_END_NAMESPACE 00040 00041 #endif /* IMPCORE_DIHEDRAL_RESTRAINT_H */