00001 /* 00002 * Copyright (c) 2004 CSIRO ICT Centre 00003 * 00004 * $Id: BoundingBoxRefine.h 587 2004-12-03 15:06:33Z nch $ 00005 */ 00006 00007 /* 00008 * BoundingBoxRefine is a Refine that accepts those candidate pairs 00009 * whose bounding boxed intersect. This is /almost/ what the DecPlaneSweepFilter 00010 * does, so the BoundingBoxRefine will reject only a small number of 00011 * candidates pairs. 00012 */ 00013 00014 #ifndef BOUNDINGBOXREFINE_DEFINED 00015 #define BOUNDINGBOXREFINE_DEFINED 00016 00017 #include "String.h" 00018 00019 #include "Refine.h" 00020 00021 class ObjectPairConsumer; 00022 00023 00024 class BoundingBoxRefine : public Refine 00025 { 00026 public: 00027 BoundingBoxRefine(ObjectPairConsumer * mPPCons, 00028 ObjectPairConsumer * uPPCons); 00029 virtual ~BoundingBoxRefine(); 00030 virtual String const & getName() const { return name(); }; 00031 virtual bool refine(Object const * red, Object const * blue); 00032 00033 static String const & name() { return s_name; }; 00034 00035 private: 00036 static String s_name; 00037 00038 BoundingBoxRefine(); 00039 BoundingBoxRefine(BoundingBoxRefine const &); 00040 BoundingBoxRefine & operator=(BoundingBoxRefine const &); 00041 }; 00042 00043 #endif // ifndef BOUNDINGBOXREFINE_DEFINED 00044