28#ifndef __TERRALIB_VP_INTERNAL_KDTREEMULTIINDEX_H 
   29#define __TERRALIB_VP_INTERNAL_KDTREEMULTIINDEX_H 
   34#include "../common/STLUtils.h" 
   35#include "../sam/kdtree/Index.h" 
   76      std::unique_ptr<te::vp::IndexReport<T>> 
getData() 
const;
 
   91  : m_index(
te::gm::Envelope())
 
  105  m_indexContainer.clear();
 
  112  std::size_t newDataIndex = m_indexContainer.insert(data);
 
  113  m_index.insert(coord, newDataIndex);
 
  119  m_indexContainer.remove(dataIndex);
 
  125  std::vector<std::size_t> vecValidIndexes = m_indexContainer.getValidIndexes();
 
  127  std::unique_ptr<te::vp::IndexReport<T>> indexReport(
new te::vp::IndexReport<T>(&m_indexContainer, vecValidIndexes));
 
  134  std::vector<KD_NODE*> vecNodesReport;
 
  135  m_index.search(mbr, vecNodesReport);
 
  137  std::vector<std::size_t> vecFullIndexesReport;
 
  138  for (std::size_t i = 0; i < vecNodesReport.size(); ++i)
 
  140    const std::vector<std::size_t>& vecNodeIndexes = vecNodesReport.at(i)->getData();
 
  141    vecFullIndexesReport.insert(vecFullIndexesReport.end(), vecNodeIndexes.begin(), vecNodeIndexes.end());
 
  144  std::vector<std::size_t> vecNetIndexesReport = m_indexContainer.getValidIndexes(vecFullIndexesReport);
 
  146  std::unique_ptr<te::vp::IndexReport<T>> indexReport(
new te::vp::IndexReport<T>(&m_indexContainer, vecNetIndexesReport));
 
mydialect insert("=", new te::da::BinaryOpEncoder("="))
 
An Envelope defines a 2D rectangular region.
 
A class that represents a two dimensional K-d Tree (2-d Tree).
 
A class that represents an Kd-tree node.
 
std::unique_ptr< te::vp::IndexReport< T > > getData() const
Searches from all data consdering the given mbr.
 
te::sam::kdtree::Index< KD_NODE > m_index
The internal rtree to store the data indexes.
 
void remove(const te::gm::Coord2D &coord, std::size_t dataIndex)
Gets all data from the KDTreeIndex.
 
IndexContainer< T > m_indexContainer
The indexed data container.
 
std::unique_ptr< te::vp::IndexReport< T > > search(const te::gm::Envelope &mbr) const
 
KDTreeMultiIndex()
< Constructor
 
void clear()
Inserts the given data considering the given envelope as key.
 
~KDTreeMultiIndex()
Clears the index.
 
void insert(const te::gm::Coord2D &coord, const T &data)
Removes the given data considering the given envelope as key.
 
An utility struct for representing 2D coordinates.
 
Kd-Tree node type for nodes with multuple elements (used by template instantiation).
 
Proxy configuration file for TerraView (see terraview_config.h).
 
Utility classes, structures and definitions for Vector Processing.