rsConstructor.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: rsConstructor.h,v 1.4.10.2 2007/04/03 13:29:41 bertsch Exp $
00005 //
00006 // Author:
00007 //   Holger Franken
00008 //
00009 
00010 #ifndef BALL_STRUCTURE_RSCONSTRUCTOR_H
00011 #define BALL_STRUCTURE_RSCONSTRUCTOR_H
00012 
00013 #include <vector>
00014 #include <BALL/STRUCTURE/ringAnalyser.h>
00015 
00016 namespace BALL
00017 {
00018   class Atom;
00019 
00024 class BALL_EXPORT RSConstructor
00025 {
00026   public:
00027 
00028   typedef RingAnalyser::RingInfo RingInfo;
00029 
00033   RSConstructor();
00034 
00038   virtual ~RSConstructor();
00039 
00045   void constructRS(std::vector<RingInfo>& analysed_rings, Size& i);
00046 
00047 private:
00048 
00054   void buildRegularPolygon(std::vector<Atom*>& ring, Size& z);
00055 
00061   void attachFused(RingInfo& ring_info, std::vector<RingInfo>& ringsystem);
00062 
00068   void attachBridged(std::vector<Atom*>& ring, std::vector<RingInfo>& ringsystem);
00069 
00075   void attachSpiro(RingInfo& ring_info, std::vector<RingInfo>& ringsystem);
00076 
00082   void attachTemplate(std::vector<Atom*>& ring);
00083 
00090   bool inside(Atom*& test_a, vector<Atom*>& ring);
00091 
00092 };
00093 }
00094 #endif