00001 /** 00002 * \file AngleRestraint.h \brief Angle restraint between three particles. 00003 * 00004 * Copyright 2007-2010 IMP Inventors. All rights reserved. 00005 * 00006 */ 00007 00008 #ifndef IMPCORE_ANGLE_RESTRAINT_H 00009 #define IMPCORE_ANGLE_RESTRAINT_H 00010 00011 #include "core_config.h" 00012 #include "AngleTripletScore.h" 00013 #include "XYZ.h" 00014 00015 #include "TripletRestraint.h" 00016 #include <IMP/Pointer.h> 00017 #include <IMP/UnaryFunction.h> 00018 00019 IMPCORE_BEGIN_NAMESPACE 00020 00021 //! Angle restraint between three particles 00022 /** \see AngleTripletScore 00023 */ 00024 class IMPCOREEXPORT AngleRestraint : public TripletRestraint 00025 { 00026 public: 00027 //! Create the angle restraint. 00028 /** \param[in] score_func Scoring function for the restraint. 00029 \param[in] p1 Pointer to first particle in angle restraint. 00030 \param[in] p2 Pointer to second particle in angle restraint. 00031 \param[in] p3 Pointer to third particle in angle restraint. 00032 */ 00033 AngleRestraint(UnaryFunction* score_func, 00034 Particle* p1, Particle* p2, Particle* p3); 00035 00036 AngleRestraint(UnaryFunction* score_func, 00037 XYZ p0, XYZ p1, XYZ p2); 00038 }; 00039 00040 IMPCORE_END_NAMESPACE 00041 00042 #endif /* IMPCORE_ANGLE_RESTRAINT_H */