BALL  1.4.1
atomBijection.h
Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 
00005 #ifndef BALL_STRUCTURE_ATOMBIJECTION_H
00006 #define BALL_STRUCTURE_ATOMBIJECTION_H
00007 
00008 #ifndef BALL_COMMON_H
00009 # include <BALL/common.h>
00010 #endif
00011 
00012 #ifndef BALL_KERNEL_ATOMCONTAINER_H
00013 # include <BALL/KERNEL/atomContainer.h>
00014 #endif
00015 
00016 namespace BALL 
00017 {
00018 
00045   class BALL_EXPORT AtomBijection
00046     : public std::vector<std::pair<Atom*, Atom*> >
00047   {
00048     public:
00049 
00054     typedef std::pair<Atom*, Atom*> AtomPair;
00055     typedef std::vector<std::pair<Atom*, Atom*> > PairVector;
00057     
00061     
00064     AtomBijection() {}
00065 
00079     AtomBijection(AtomContainer& A, AtomContainer& B);
00080 
00082     virtual ~AtomBijection() {}
00083 
00085 
00106     Size assignTrivial(AtomContainer& A, AtomContainer& B);
00107 
00120     Size assignByName(AtomContainer& A, AtomContainer& B);
00121 
00132     Size assignCAlphaAtoms(AtomContainer& A, AtomContainer& B);
00133 
00134 
00146     Size assignBackboneAtoms(AtomContainer& A, AtomContainer& B);
00148     
00149 
00152 
00153     double calculateRMSD() const;
00155 
00158 
00159     using PairVector::size;
00161     using PairVector::push_back;
00163     using PairVector::begin;
00165     using PairVector::end;
00167     using PairVector::rbegin;
00169     using PairVector::rend;
00171   
00172   };
00173 
00174 } // namespace BALL
00175 
00176 #endif // BALL_STRUCTURE_ATOMBIJECTION_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines