residueIterator.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: residueIterator.h,v 1.15 2005/10/23 12:02:20 oliver Exp $
00005 //
00006 
00007 #ifndef BALL_KERNEL_RESIDUEITERATOR_H
00008 #define BALL_KERNEL_RESIDUEITERATOR_H
00009 
00010 #ifndef BALL_KERNEL_ITERATOR_H
00011 # include <BALL/KERNEL/iterator.h>
00012 #endif
00013 
00014 #ifndef BALL_KERNEL_PREDICATE_H
00015 # include <BALL/KERNEL/predicate.h>
00016 #endif
00017 
00018 namespace BALL 
00019 {
00024   class BALL_EXPORT ResidueIteratorTraits
00025     : public CompositeIteratorTraits
00026   {
00027     public:
00028 
00029     ResidueIteratorTraits()
00030       : CompositeIteratorTraits()
00031     {
00032       predicate_ = &RTTI::getDefault<KernelPredicate<Residue> >();
00033     }
00034       
00035     ResidueIteratorTraits(const Composite& composite)
00036       : CompositeIteratorTraits(composite)
00037     {
00038       predicate_ = &RTTI::getDefault<KernelPredicate<Residue> >();
00039     }
00040       
00041     ResidueIteratorTraits(const ResidueIteratorTraits& traits, bool /* deep */ = true)
00042       : CompositeIteratorTraits(traits)
00043     {
00044     }
00045       
00046     ResidueIteratorTraits& operator =(const ResidueIteratorTraits& traits)
00047     {
00048       CompositeIteratorTraits::operator=(traits);
00049       return *this;
00050     }
00051 
00052     void resetPredicate()
00053     {
00054       predicate_ = &RTTI::getDefault<KernelPredicate<Residue> >();
00055     }
00056   };
00057 
00058 
00060   typedef BidirectionalIterator
00061     <Composite, Residue, Composite::CompositeIterator, ResidueIteratorTraits>
00062     ResidueIterator;
00063 
00065   typedef ConstBidirectionalIterator
00066     <Composite, Residue, Composite::CompositeIterator, ResidueIteratorTraits>
00067     ResidueConstIterator;
00068 
00070   typedef std::reverse_iterator<ResidueIterator> ResidueReverseIterator;
00071 
00073   typedef std::reverse_iterator<ResidueConstIterator> ResidueConstReverseIterator;
00074 
00075 } // namespace BALL
00076 
00077 #endif // BALL_KERNEL_RESIDUEITERATOR_H