3D Forest
Software for analysis of Lidar data from forest environment.
Query Class Reference

#include <Query.hpp>

Classes

struct  Key
 

Public Member Functions

 Query (Editor *editor)
 
 ~Query ()
 
void setWhere (const QueryWhere &queryWhere)
 
const QueryWherewhere () const
 
QueryWherewhere ()
 
void applyCamera (const Camera &camera)
 
void setMaximumResults (size_t nPoints)
 
size_t maximumResults () const
 
void exec ()
 
void exec (const std::vector< IndexFile::Selection > &selectedPages)
 
void reset ()
 
void clear ()
 
const std::vector< IndexFile::Selection > & selectedPages () const
 
bool next ()
 
bool nextPage ()
 
Pagepage ()
 
size_t pageSizeEstimate () const
 
void setGrid (size_t pointsPerCell=100000, double cellLengthMinPct=1.0)
 
bool nextGrid ()
 
const Box< double > & gridCell () const
 
size_t gridSize () const
 
void setVoxels (double voxelSize, const Box< double > &region)
 
bool nextVoxel ()
 
const Box< double > & voxelBox () const
 
uint64_t numberOfVoxels () const
 
uint64_t numberOfVisitedVoxels () const
 
void setState (Page::State state)
 
bool nextState ()
 
void setModified ()
 
void flush ()
 
size_t resultSize () const
 
void addResults (size_t n)
 
size_t cacheSize () const
 
Pagecache (size_t index)
 
bool mean (double &meanX, double &meanY, double &meanZ)
 
Point data available after next()
double & x ()
 
double & y ()
 
double & z ()
 
double & intensity ()
 
uint8_t & returnNumber ()
 
uint8_t & numberOfReturns ()
 
uint8_t & classification ()
 
uint8_t & userData ()
 
double & gpsTime ()
 
double & red ()
 
double & green ()
 
double & blue ()
 
size_t & segment ()
 
double & elevation ()
 
double & descriptor ()
 
size_t & voxel ()
 

Protected Member Functions

bool nextVoxel (Query *query)
 
void pushVoxel (size_t x1, size_t y1, size_t z1, size_t x2, size_t y2, size_t z2)
 
std::shared_ptr< Pageread (size_t dataset, size_t index)
 

Protected Attributes

Editoreditor_
 
QueryWhere where_
 
size_t maximumResults_
 
size_t nResults_
 
Box< double > gridCell_
 
Box< double > gridCellBase_
 
Box< double > gridBoundary_
 
size_t gridXSize_
 
size_t gridYSize_
 
size_t gridIndex_
 
std::vector< uint64_t > grid_
 
Box< double > voxelRegion_
 
Vector3< double > voxelSize_
 
uint64_t voxelTotalCount_
 
std::vector< Box< size_t > > voxelStack_
 
Box< double > voxelBox_
 
Vector3< size_t > voxelIndex_
 
uint64_t voxelVisitedCount_
 
std::shared_ptr< Pagepage_
 
double * position_
 
double * intensity_
 
uint8_t * returnNumber_
 
uint8_t * numberOfReturns_
 
uint8_t * classification_
 
uint8_t * userData_
 
double * gpsTime_
 
double * color_
 
size_t * segment_
 
double * elevation_
 
double * descriptor_
 
size_t * voxel_
 
uint32_t * selection_
 
size_t pageIndex_
 
size_t pagePointIndex_
 
size_t pagePointIndexMax_
 
std::vector< IndexFile::SelectionselectedPages_
 
size_t cacheSizeMax_
 
std::map< Key, std::shared_ptr< Page > > cache_
 
std::vector< std::shared_ptr< Page > > lru_
 

Detailed Description

A editor query is a request for a editor’s data so we can retrieve or manipulate it.

A query may be used to access up to quintillions of point records that meet certain criteria.

Constructor & Destructor Documentation

◆ Query()

Query::Query ( Editor * editor)

◆ ~Query()

Query::~Query ( )

Member Function Documentation

◆ addResults()

void Query::addResults ( size_t n)

◆ applyCamera()

void Query::applyCamera ( const Camera & camera)

◆ blue()

double & Query::blue ( )
inline

◆ cache()

Page & Query::cache ( size_t index)
inline

◆ cacheSize()

size_t Query::cacheSize ( ) const
inline

◆ classification()

◆ clear()

◆ descriptor()

◆ elevation()

◆ exec() [1/2]

◆ exec() [2/2]

void Query::exec ( const std::vector< IndexFile::Selection > & selectedPages)

◆ flush()

◆ gpsTime()

double & Query::gpsTime ( )
inline

◆ green()

double & Query::green ( )
inline

◆ gridCell()

const Box< double > & Query::gridCell ( ) const
inline

◆ gridSize()

size_t Query::gridSize ( ) const
inline

◆ intensity()

◆ maximumResults()

size_t Query::maximumResults ( ) const
inline

◆ mean()

bool Query::mean ( double & meanX,
double & meanY,
double & meanZ )

◆ next()

◆ nextGrid()

bool Query::nextGrid ( )

◆ nextPage()

bool Query::nextPage ( )

◆ nextState()

bool Query::nextState ( )

◆ nextVoxel() [1/2]

bool Query::nextVoxel ( )

Referenced by nextVoxel().

◆ nextVoxel() [2/2]

bool Query::nextVoxel ( Query * query)
protected

◆ numberOfReturns()

uint8_t & Query::numberOfReturns ( )
inline

◆ numberOfVisitedVoxels()

uint64_t Query::numberOfVisitedVoxels ( ) const
inline

◆ numberOfVoxels()

uint64_t Query::numberOfVoxels ( ) const
inline

◆ page()

Page * Query::page ( )
inline

Referenced by applyCamera().

◆ pageSizeEstimate()

size_t Query::pageSizeEstimate ( ) const

◆ pushVoxel()

void Query::pushVoxel ( size_t x1,
size_t y1,
size_t z1,
size_t x2,
size_t y2,
size_t z2 )
protected

Referenced by nextVoxel(), and setVoxels().

◆ read()

std::shared_ptr< Page > Query::read ( size_t dataset,
size_t index )
protected

Referenced by nextPage().

◆ red()

double & Query::red ( )
inline

◆ reset()

◆ resultSize()

size_t Query::resultSize ( ) const
inline

◆ returnNumber()

uint8_t & Query::returnNumber ( )
inline

◆ segment()

◆ selectedPages()

const std::vector< IndexFile::Selection > & Query::selectedPages ( ) const
inline

Referenced by exec().

◆ setGrid()

void Query::setGrid ( size_t pointsPerCell = 100000,
double cellLengthMinPct = 1.0 )

◆ setMaximumResults()

void Query::setMaximumResults ( size_t nPoints)

Referenced by nextVoxel().

◆ setModified()

◆ setState()

void Query::setState ( Page::State state)

Referenced by applyCamera(), exec(), and exec().

◆ setVoxels()

void Query::setVoxels ( double voxelSize,
const Box< double > & region )

◆ setWhere()

◆ userData()

uint8_t & Query::userData ( )
inline

◆ voxel()

◆ voxelBox()

const Box< double > & Query::voxelBox ( ) const
inline

◆ where() [1/2]

QueryWhere & Query::where ( )
inline

◆ where() [2/2]

◆ x()

◆ y()

◆ z()

Member Data Documentation

◆ cache_

std::map<Key, std::shared_ptr<Page> > Query::cache_
protected

Referenced by applyCamera(), clear(), read(), and setState().

◆ cacheSizeMax_

size_t Query::cacheSizeMax_
protected

Referenced by applyCamera(), Query(), and read().

◆ classification_

uint8_t* Query::classification_
protected

Referenced by nextPage(), and reset().

◆ color_

double* Query::color_
protected

Referenced by nextPage(), and reset().

◆ descriptor_

double* Query::descriptor_
protected

Referenced by nextPage(), and reset().

◆ editor_

Editor* Query::editor_
protected

Referenced by applyCamera(), exec(), read(), and setGrid().

◆ elevation_

double* Query::elevation_
protected

Referenced by nextPage(), and reset().

◆ gpsTime_

double* Query::gpsTime_
protected

Referenced by nextPage(), and reset().

◆ grid_

std::vector<uint64_t> Query::grid_
protected

Referenced by clear(), nextGrid(), and setGrid().

◆ gridBoundary_

Box<double> Query::gridBoundary_
protected

Referenced by clear(), nextGrid(), and setGrid().

◆ gridCell_

Box<double> Query::gridCell_
protected

Referenced by clear(), nextGrid(), and setGrid().

◆ gridCellBase_

Box<double> Query::gridCellBase_
protected

Referenced by clear(), nextGrid(), and setGrid().

◆ gridIndex_

size_t Query::gridIndex_
protected

Referenced by clear(), nextGrid(), and setGrid().

◆ gridXSize_

size_t Query::gridXSize_
protected

Referenced by clear(), and setGrid().

◆ gridYSize_

size_t Query::gridYSize_
protected

Referenced by clear(), and setGrid().

◆ intensity_

double* Query::intensity_
protected

Referenced by nextPage(), and reset().

◆ lru_

std::vector<std::shared_ptr<Page> > Query::lru_
protected

◆ maximumResults_

size_t Query::maximumResults_
protected

◆ nResults_

size_t Query::nResults_
protected

Referenced by addResults(), clear(), exec(), exec(), and nextPage().

◆ numberOfReturns_

uint8_t* Query::numberOfReturns_
protected

Referenced by nextPage(), and reset().

◆ page_

std::shared_ptr<Page> Query::page_
protected

Referenced by clear(), nextPage(), and setModified().

◆ pageIndex_

size_t Query::pageIndex_
protected

Referenced by nextPage(), and reset().

◆ pagePointIndex_

size_t Query::pagePointIndex_
protected

Referenced by nextPage(), and reset().

◆ pagePointIndexMax_

size_t Query::pagePointIndexMax_
protected

Referenced by nextPage(), and reset().

◆ position_

double* Query::position_
protected

Referenced by nextPage(), and reset().

◆ returnNumber_

uint8_t* Query::returnNumber_
protected

Referenced by nextPage(), and reset().

◆ segment_

size_t* Query::segment_
protected

Referenced by nextPage(), and reset().

◆ selectedPages_

std::vector<IndexFile::Selection> Query::selectedPages_
protected

◆ selection_

uint32_t* Query::selection_
protected

Referenced by nextPage(), and reset().

◆ userData_

uint8_t* Query::userData_
protected

Referenced by nextPage(), and reset().

◆ voxel_

size_t* Query::voxel_
protected

Referenced by nextPage(), and reset().

◆ voxelBox_

Box<double> Query::voxelBox_
protected

Referenced by clear(), and nextVoxel().

◆ voxelIndex_

Vector3<size_t> Query::voxelIndex_
protected

Referenced by clear(), and nextVoxel().

◆ voxelRegion_

Box<double> Query::voxelRegion_
protected

Referenced by clear(), nextVoxel(), and setVoxels().

◆ voxelSize_

Vector3<double> Query::voxelSize_
protected

Referenced by clear(), nextVoxel(), and setVoxels().

◆ voxelStack_

std::vector<Box<size_t> > Query::voxelStack_
protected

Referenced by clear(), nextVoxel(), and pushVoxel().

◆ voxelTotalCount_

uint64_t Query::voxelTotalCount_
protected

Referenced by clear(), and setVoxels().

◆ voxelVisitedCount_

uint64_t Query::voxelVisitedCount_
protected

Referenced by clear(), nextVoxel(), and setVoxels().

◆ where_

QueryWhere Query::where_
protected

Referenced by clear(), and exec().


The documentation for this class was generated from the following files: