GEOS
3.6.2
|
00001 /********************************************************************** 00002 * 00003 * GEOS - Geometry Engine Open Source 00004 * http://geos.osgeo.org 00005 * 00006 * Copyright (C) 2006 Refractions Research Inc. 00007 * 00008 * This is free software; you can redistribute and/or modify it under 00009 * the terms of the GNU Lesser General Public Licence as published 00010 * by the Free Software Foundation. 00011 * See the COPYING file for more information. 00012 * 00013 * 00014 **********************************************************************/ 00015 00016 #ifndef GEOS_INDEX_INTERVALRTREE_INTERVALRTREEBRANCHNODE_H 00017 #define GEOS_INDEX_INTERVALRTREE_INTERVALRTREEBRANCHNODE_H 00018 00019 #include <geos/index/intervalrtree/IntervalRTreeNode.h> // inherited 00020 00021 #include <algorithm> 00022 00023 // forward declarations 00024 namespace geos { 00025 namespace index { 00026 class ItemVisitor; 00027 } 00028 } 00029 00030 00031 namespace geos { 00032 namespace index { 00033 namespace intervalrtree { 00034 00035 class IntervalRTreeBranchNode : public IntervalRTreeNode 00036 { 00037 private: 00038 const IntervalRTreeNode * node1; 00039 const IntervalRTreeNode * node2; 00040 00041 //void buildExtent( IntervalRTreeNode * n1, IntervalRTreeNode * n2) 00042 //{ 00043 // min = std::min( n1->min, n2->min); 00044 // max = std::max( n1->max, n2->max); 00045 //} 00046 00047 protected: 00048 public: 00049 IntervalRTreeBranchNode( const IntervalRTreeNode * n1, const IntervalRTreeNode * n2) 00050 : IntervalRTreeNode( std::min( n1->getMin(), n2->getMin()), std::max( n1->getMax(), n2->getMax())), 00051 node1( n1), 00052 node2( n2) 00053 { } 00054 00055 ~IntervalRTreeBranchNode() 00056 { 00057 delete node1; 00058 delete node2; 00059 } 00060 00061 00062 void query(double queryMin, double queryMax, index::ItemVisitor * visitor) const; 00063 }; 00064 00065 } // geos::intervalrtree 00066 } // geos::index 00067 } // geos 00068 00069 #endif // GEOS_INDEX_INTERVALRTREE_INTERVALRTREEBRANCHNODE_H 00070