00001
00002
00003
00004
00005 #ifndef BALL_STRUCTURE_PEPTIDECAPPROCESSOR_H
00006 #define BALL_STRUCTURE_PEPTIDECAPPROCESSOR_H
00007
00008 #ifndef BALL_COMMON_H
00009 # include <BALL/common.h>
00010 #endif
00011
00012 #ifndef BALL_CONCEPT_COMPOSITE_H
00013 # include <BALL/CONCEPT/composite.h>
00014 #endif
00015
00016 #ifndef BALL_MATHS_VECTOR3_H
00017 # include <BALL/MATHS/vector3.h>
00018 #endif
00019
00020 #ifndef BALL_KERNEL_RESIDUE_H
00021 # include <BALL/KERNEL/residue.h>
00022 #endif
00023
00024 #ifndef BALL_STRUCTURE_ATOMBIJECTION_H
00025 # include <BALL/STRUCTURE/atomBijection.h>
00026 #endif
00027
00028 namespace BALL
00029 {
00030
00038 class BALL_EXPORT PeptideCapProcessor
00039 : public UnaryProcessor<Composite>
00040 {
00041 public:
00042
00045
00046 PeptideCapProcessor();
00048
00051
00052 virtual Processor::Result operator() (Composite& composite);
00054
00055 protected:
00056
00057
00058 float computeDistance(std::vector<Atom*>& a, std::vector<Atom*>& b);
00059
00060
00061 void optimizeCapPosition(Protein* p, bool start);
00062 };
00063
00064 }
00065
00066 #endif // BALL_STRUCTURE_PEPTIDECAPPROCESSOR_H