osgEarth 2.1.1
|
Public Types | |
typedef std::vector < osg::ref_ptr < osgTerrain::TerrainTile > > | TerrainTiles |
typedef std::vector < osg::ref_ptr < osgTerrain::TerrainTile > > | TerrainTiles |
Public Member Functions | |
CollectTiles () | |
void | reset () |
void | apply (osg::Group &group) |
osgTerrain::Locator * | getLocator () |
bool | getRange (double &min_x, double &min_y, double &max_x, double &max_y) const |
CollectTiles () | |
void | reset () |
void | apply (osg::Group &group) |
osgTerrain::Locator * | getLocator () |
bool | getRange (double &min_x, double &min_y, double &max_x, double &max_y) const |
Public Attributes | |
TerrainTiles | _terrainTiles |
Definition at line 53 of file Copy of ReaderWriterVPB.cpp.
typedef std::vector< osg::ref_ptr<osgTerrain::TerrainTile> > CollectTiles::TerrainTiles |
Definition at line 135 of file Copy of ReaderWriterVPB.cpp.
typedef std::vector< osg::ref_ptr<osgTerrain::TerrainTile> > CollectTiles::TerrainTiles |
Definition at line 138 of file ReaderWriterVPB.cpp.
CollectTiles::CollectTiles | ( | ) | [inline] |
Definition at line 57 of file Copy of ReaderWriterVPB.cpp.
: osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN) { }
CollectTiles::CollectTiles | ( | ) | [inline] |
Definition at line 60 of file ReaderWriterVPB.cpp.
: osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN) { }
void CollectTiles::apply | ( | osg::Group & | group | ) | [inline] |
Definition at line 67 of file Copy of ReaderWriterVPB.cpp.
{ osgTerrain::TerrainTile* terrainTile = dynamic_cast<osgTerrain::TerrainTile*>(&group); if (terrainTile) { osg::notify(osg::INFO)<<"Found terrain tile TileID("<< TileKey::getLOD(terrainTile->getTileID())<<", "<< terrainTile->getTileID().x<<", "<< terrainTile->getTileID().y<<")"<<std::endl; _terrainTiles.push_back(terrainTile); } else { traverse(group); } }
void CollectTiles::apply | ( | osg::Group & | group | ) | [inline] |
Definition at line 70 of file ReaderWriterVPB.cpp.
{ osgTerrain::TerrainTile* terrainTile = dynamic_cast<osgTerrain::TerrainTile*>(&group); if (terrainTile) { OE_DEBUG<<"VPB: Found terrain tile TileID("<< TileKey::getLOD(terrainTile->getTileID())<<", "<< terrainTile->getTileID().x<<", "<< terrainTile->getTileID().y<<")"<<std::endl; _terrainTiles.push_back(terrainTile); } else { traverse(group); } }
osgTerrain::Locator* CollectTiles::getLocator | ( | ) | [inline] |
Definition at line 88 of file ReaderWriterVPB.cpp.
{ for(unsigned int i=0; i<_terrainTiles.size(); ++i) { osgTerrain::TerrainTile* tile = _terrainTiles[i].get(); osgTerrain::Locator* locator = tile->getLocator(); if (locator) return locator; } return 0; }
osgTerrain::Locator* CollectTiles::getLocator | ( | ) | [inline] |
Definition at line 85 of file Copy of ReaderWriterVPB.cpp.
{ for(unsigned int i=0; i<_terrainTiles.size(); ++i) { osgTerrain::TerrainTile* tile = _terrainTiles[i].get(); osgTerrain::Locator* locator = tile->getLocator(); if (locator) return locator; } return 0; }
bool CollectTiles::getRange | ( | double & | min_x, |
double & | min_y, | ||
double & | max_x, | ||
double & | max_y | ||
) | const [inline] |
Definition at line 96 of file Copy of ReaderWriterVPB.cpp.
{ min_x = DBL_MAX; max_x = -DBL_MAX; min_y = DBL_MAX; max_y = -DBL_MAX; typedef std::vector<osg::Vec3d> Corners; Corners corners; corners.push_back(osg::Vec3d(0.0f,0.0f,0.0f)); corners.push_back(osg::Vec3d(1.0f,0.0f,0.0f)); corners.push_back(osg::Vec3d(1.0f,1.0f,0.0f)); corners.push_back(osg::Vec3d(1.0f,1.0f,0.0f)); for(unsigned int i=0; i<_terrainTiles.size(); ++i) { osgTerrain::TerrainTile* tile = _terrainTiles[i].get(); osgTerrain::Locator* locator = tile->getLocator(); if (locator) { for(Corners::iterator itr = corners.begin(); itr != corners.end(); ++itr) { osg::Vec3d& local = *itr; osg::Vec3d projected = local * locator->getTransform(); if (projected.x()<min_x) min_x = projected.x(); if (projected.x()>max_x) max_x = projected.x(); if (projected.y()<min_y) min_y = projected.y(); if (projected.y()>max_y) max_y = projected.y(); } } } return min_x <= max_x; }
bool CollectTiles::getRange | ( | double & | min_x, |
double & | min_y, | ||
double & | max_x, | ||
double & | max_y | ||
) | const [inline] |
Definition at line 99 of file ReaderWriterVPB.cpp.
{ min_x = DBL_MAX; max_x = -DBL_MAX; min_y = DBL_MAX; max_y = -DBL_MAX; typedef std::vector<osg::Vec3d> Corners; Corners corners; corners.push_back(osg::Vec3d(0.0f,0.0f,0.0f)); corners.push_back(osg::Vec3d(1.0f,0.0f,0.0f)); corners.push_back(osg::Vec3d(1.0f,1.0f,0.0f)); corners.push_back(osg::Vec3d(1.0f,1.0f,0.0f)); for(unsigned int i=0; i<_terrainTiles.size(); ++i) { osgTerrain::TerrainTile* tile = _terrainTiles[i].get(); osgTerrain::Locator* locator = tile->getLocator(); if (locator) { for(Corners::iterator itr = corners.begin(); itr != corners.end(); ++itr) { osg::Vec3d& local = *itr; osg::Vec3d projected = local * locator->getTransform(); if (projected.x()<min_x) min_x = projected.x(); if (projected.x()>max_x) max_x = projected.x(); if (projected.y()<min_y) min_y = projected.y(); if (projected.y()>max_y) max_y = projected.y(); } } } return min_x <= max_x; }
void CollectTiles::reset | ( | ) | [inline] |
Definition at line 62 of file Copy of ReaderWriterVPB.cpp.
{ _terrainTiles.clear(); }
void CollectTiles::reset | ( | ) | [inline] |
Definition at line 65 of file ReaderWriterVPB.cpp.
{ _terrainTiles.clear(); }
Definition at line 136 of file Copy of ReaderWriterVPB.cpp.