IndexedActiveList.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2004 CSIRO ICT Centre
00003  *
00004  * $Id: IndexedActiveList.h 587 2004-12-03 15:06:33Z nch $
00005  */
00006 
00007 /*
00008  * IndexedActiveList implements an ActiveList with a data
00009  * structure that is very efficient for:
00010  *  - adding objects in order of declination;
00011  *  - removing all objects up to a given declination limit; and
00012  *  - reporting all objects that fall within a given right
00013  *    ascension range.
00014  */
00015 
00016 #ifndef INDEXEDACTIVELIST_DEFINED
00017 #define INDEXEDACTIVELIST_DEFINED
00018 
00019 #include "ActiveList.h"
00020 #include "ALStructure.h"
00021 
00022 class ActiveObject;
00023 class Object;
00024 class ObjectPairConsumer;
00025 class ObjectConsumer;
00026 
00027 
00028 class IndexedActiveList : public ActiveList
00029 {
00030   public:
00031     IndexedActiveList();
00032     virtual ~IndexedActiveList();
00033 
00034     virtual void deletePriorObjects(double boundary,
00035                                     ObjectConsumer * uActiveCons);
00036     virtual void pushBack(Object const * object,
00037                           bool matchedPreviously=false);
00038     virtual bool testObject(Object const * testObject,
00039                             double upperLimitOnDistance,
00040                             ObjectPairConsumer * matchedConsumer);
00041     virtual void clear(ObjectConsumer * uActiveCons);
00042     virtual void finished(ObjectConsumer * uActiveCons);
00043     virtual bool isEmpty();
00044     virtual ActiveObject * popFront();
00045 
00046   private:
00047     ALStructure * activeStructure;
00048     double        activeMaxSD;
00049 
00050     IndexedActiveList(IndexedActiveList const &);
00051     IndexedActiveList & operator=(IndexedActiveList const &);
00052 
00053     ALElement * remove(ALElement * i);
00054 };
00055 
00056 #endif // ifndef INDEXEDACTIVELIST_DEFINED
00057 
Generated on Mon Oct 4 10:39:55 2010 for Matching.kdevelop by  doxygen 1.6.3