SUMO - Simulation of Urban MObility
NBHeightMapper Class Reference

Set z-values for all network positions based on data from a height map. More...

#include <NBHeightMapper.h>

Collaboration diagram for NBHeightMapper:
Collaboration graph

Data Structures

class  QueryResult
 class for cirumventing the const-restriction of RTree::Search-context More...
 
class  Triangle
 

Public Types

typedef std::vector< const Triangle * > Triangles
 

Public Member Functions

const BoundarygetBoundary ()
 returns the convex boundary of all known triangles More...
 
double getZ (const Position &geo) const
 returns height for the given geo coordinate (WGS84) More...
 
bool ready () const
 returns whether the NBHeightMapper has data More...
 

Static Public Member Functions

static const NBHeightMapperget ()
 return the singleton instance (maybe 0) More...
 
static void loadIfSet (OptionsCont &oc)
 loads heigh map data if any loading options are set More...
 

Private Member Functions

void addTriangle (PositionVector corners)
 adds one triangles worth of height data More...
 
void clearData ()
 clears loaded data More...
 
int loadShapeFile (const std::string &file)
 load height data from Arcgis-shape file and returns the number of parsed features More...
 
int loadTiff (const std::string &file)
 load height data from GeoTIFF file and returns the number of non void pixels More...
 
 NBHeightMapper ()
 private constructor and destructor (Singleton) More...
 
 NBHeightMapper (const NBHeightMapper &)
 Invalidated copy constructor. More...
 
NBHeightMapperoperator= (const NBHeightMapper &)
 Invalidated assignment operator. More...
 
 ~NBHeightMapper ()
 

Private Attributes

Boundary myBoundary
 convex boundary of all known triangles; More...
 
std::vector< std::pair< Boundary, int16_t * > > myRasters
 raster height information in m for all loaded files More...
 
TRIANGLE_RTREE_QUAL myRTree
 The RTree for spatial queries. More...
 
Position mySizeOfPixel
 dimensions of one pixel in raster data More...
 
Triangles myTriangles
 

Static Private Attributes

static NBHeightMapper Singleton
 the singleton instance More...
 

Friends

class NBHeightMapperTest
 

Detailed Description

Set z-values for all network positions based on data from a height map.

Importing data from '.shp'-files works only if SUMO was compiled with GDAL-support. If not, an error message is generated.

Definition at line 58 of file NBHeightMapper.h.

Member Typedef Documentation

◆ Triangles

typedef std::vector<const Triangle*> NBHeightMapper::Triangles

Definition at line 113 of file NBHeightMapper.h.

Constructor & Destructor Documentation

◆ NBHeightMapper() [1/2]

NBHeightMapper::NBHeightMapper ( )
private

private constructor and destructor (Singleton)

Definition at line 59 of file NBHeightMapper.cpp.

◆ ~NBHeightMapper()

NBHeightMapper::~NBHeightMapper ( )
private

Definition at line 64 of file NBHeightMapper.cpp.

References clearData().

◆ NBHeightMapper() [2/2]

NBHeightMapper::NBHeightMapper ( const NBHeightMapper )
private

Invalidated copy constructor.

Member Function Documentation

◆ addTriangle()

void NBHeightMapper::addTriangle ( PositionVector  corners)
private

adds one triangles worth of height data

Definition at line 138 of file NBHeightMapper.cpp.

References PositionVector::getBoxBoundary(), myRTree, myTriangles, Boundary::xmax(), Boundary::xmin(), Boundary::ymax(), and Boundary::ymin().

Referenced by loadShapeFile().

◆ clearData()

void NBHeightMapper::clearData ( )
private

clears loaded data

Definition at line 332 of file NBHeightMapper.cpp.

References myBoundary, myRasters, myTriangles, and Boundary::reset().

Referenced by loadTiff(), and ~NBHeightMapper().

◆ get()

const NBHeightMapper & NBHeightMapper::get ( )
static

return the singleton instance (maybe 0)

Definition at line 70 of file NBHeightMapper.cpp.

References Singleton.

Referenced by NBNetBuilder::transformCoordinate().

◆ getBoundary()

const Boundary& NBHeightMapper::getBoundary ( )
inline

returns the convex boundary of all known triangles

Definition at line 77 of file NBHeightMapper.h.

References getZ(), myBoundary, and Singleton.

Referenced by loadIfSet().

◆ getZ()

◆ loadIfSet()

void NBHeightMapper::loadIfSet ( OptionsCont oc)
static

loads heigh map data if any loading options are set

Parameters
[in]ocThe options container to get further options from
Exceptions
ProcessErrorif something fails

Definition at line 149 of file NBHeightMapper.cpp.

References MsgHandler::endProcessMsg(), getBoundary(), MsgHandler::getMessageInstance(), OptionsCont::getStringVector(), OptionsCont::isSet(), loadShapeFile(), loadTiff(), PROGRESS_BEGIN_MESSAGE, Singleton, and toString().

Referenced by NILoader::load().

◆ loadShapeFile()

int NBHeightMapper::loadShapeFile ( const std::string &  file)
private

load height data from Arcgis-shape file and returns the number of parsed features

Returns
The number of parsed features
Exceptions
ProcessError

Definition at line 176 of file NBHeightMapper.cpp.

References Boundary::add(), addTriangle(), myBoundary, UNUSED_PARAMETER, WRITE_ERROR, and WRITE_WARNING.

Referenced by loadIfSet().

◆ loadTiff()

int NBHeightMapper::loadTiff ( const std::string &  file)
private

load height data from GeoTIFF file and returns the number of non void pixels

Returns
The number of valid pixels
Exceptions
ProcessError

Definition at line 276 of file NBHeightMapper.cpp.

References Boundary::add(), clearData(), myRasters, mySizeOfPixel, Position::set(), UNUSED_PARAMETER, WRITE_ERROR, Position::x(), and Position::y().

Referenced by loadIfSet().

◆ operator=()

NBHeightMapper& NBHeightMapper::operator= ( const NBHeightMapper )
private

Invalidated assignment operator.

◆ ready()

bool NBHeightMapper::ready ( ) const

returns whether the NBHeightMapper has data

Definition at line 76 of file NBHeightMapper.cpp.

References myRasters, and myTriangles.

Referenced by getZ(), and NBNetBuilder::transformCoordinate().

Friends And Related Function Documentation

◆ NBHeightMapperTest

friend class NBHeightMapperTest
friend

Definition at line 60 of file NBHeightMapper.h.

Field Documentation

◆ myBoundary

Boundary NBHeightMapper::myBoundary
private

convex boundary of all known triangles;

Definition at line 143 of file NBHeightMapper.h.

Referenced by clearData(), getBoundary(), and loadShapeFile().

◆ myRasters

std::vector<std::pair<Boundary, int16_t*> > NBHeightMapper::myRasters
private

raster height information in m for all loaded files

Definition at line 137 of file NBHeightMapper.h.

Referenced by clearData(), getZ(), loadTiff(), and ready().

◆ myRTree

TRIANGLE_RTREE_QUAL NBHeightMapper::myRTree
private

The RTree for spatial queries.

Definition at line 134 of file NBHeightMapper.h.

Referenced by addTriangle(), and getZ().

◆ mySizeOfPixel

Position NBHeightMapper::mySizeOfPixel
private

dimensions of one pixel in raster data

Definition at line 140 of file NBHeightMapper.h.

Referenced by getZ(), and loadTiff().

◆ myTriangles

Triangles NBHeightMapper::myTriangles
private

Definition at line 131 of file NBHeightMapper.h.

Referenced by addTriangle(), clearData(), and ready().

◆ Singleton

NBHeightMapper NBHeightMapper::Singleton
staticprivate

the singleton instance

Definition at line 129 of file NBHeightMapper.h.

Referenced by get(), getBoundary(), and loadIfSet().


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