Ignore:
Timestamp:
Nov 6, 2013 12:50:36 AM (11 years ago)
Author:
ldelgass
Message:

Add type parameter to layer add, first pass at feature layers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/packages/vizservers/geovis/Renderer.cpp

    r4033 r4036  
    2626#include <osgEarth/ModelLayer>
    2727#include <osgEarthUtil/EarthManipulator>
     28#include <osgEarthUtil/AutoClipPlaneHandler>
    2829#include <osgEarthUtil/MouseCoordsTool>
    2930
     
    128129    _mouseCoordsTool = new osgEarth::Util::MouseCoordsTool(mapNode);
    129130    _mouseCoordsTool->addCallback(_coordsCallback.get());
     131    if (_clipPlaneCullCallback.valid()) {
     132        _viewer->getCamera()->removeCullCallback(_clipPlaneCullCallback.get());
     133        _clipPlaneCullCallback = NULL;
     134    }
     135    if (_map->isGeocentric()) {
     136        _clipPlaneCullCallback = new osgEarth::Util::AutoClipPlaneCullCallback(mapNode);
     137        _viewer->getCamera()->addCullCallback(_clipPlaneCullCallback.get());
     138    }
    130139    _viewer->addEventHandler(_mouseCoordsTool.get());
    131140    _viewer->setSceneData(_sceneRoot.get());
     
    162171    _mouseCoordsTool->addCallback(_coordsCallback.get());
    163172    _viewer->addEventHandler(_mouseCoordsTool.get());
     173
     174    if (_clipPlaneCullCallback.valid()) {
     175        _viewer->getCamera()->removeCullCallback(_clipPlaneCullCallback.get());
     176        _clipPlaneCullCallback = NULL;
     177    }
     178    if (_map->isGeocentric()) {
     179        _clipPlaneCullCallback = new osgEarth::Util::AutoClipPlaneCullCallback(mapNode);
     180        _viewer->getCamera()->addCullCallback(_clipPlaneCullCallback.get());
     181    }
    164182    _viewer->setSceneData(_sceneRoot.get());
    165183    _manipulator = new osgEarth::Util::EarthManipulator;
     
    172190}
    173191
     192void Renderer::clearMap()
     193{
     194    if (_map.valid()) {
     195        _map->clear();
     196    }
     197}
     198
    174199bool Renderer::mapMouseCoords(float mouseX, float mouseY, osgEarth::GeoPoint& map)
    175200{
     
    191216{
    192217    osgEarth::ImageLayer *layer = _map->getImageLayerByName(name);
    193     _map->removeImageLayer(layer);
     218    if (layer != NULL) {
     219        _map->removeImageLayer(layer);
     220    }
    194221}
    195222
     
    197224{
    198225    osgEarth::ImageLayer *layer = _map->getImageLayerByName(name);
    199     _map->moveImageLayer(layer, pos);
     226    if (layer != NULL) {
     227        _map->moveImageLayer(layer, pos);
     228    }
    200229}
    201230
     
    203232{
    204233    osgEarth::ImageLayer *layer = _map->getImageLayerByName(name);
    205     layer->setOpacity(opacity);
     234    if (layer != NULL) {
     235        layer->setOpacity(opacity);
     236    }
    206237}
    207238
     
    210241#if OSGEARTH_MIN_VERSION_REQUIRED(2, 4, 0)
    211242    osgEarth::ImageLayer *layer = _map->getImageLayerByName(name);
    212     layer->setVisible(state);
     243    if (layer != NULL) {
     244        layer->setVisible(state);
     245    }
    213246#endif
    214247}
     
    223256{
    224257    osgEarth::ElevationLayer *layer = _map->getElevationLayerByName(name);
    225     _map->removeElevationLayer(layer);
     258    if (layer != NULL) {
     259        _map->removeElevationLayer(layer);
     260    }
    226261}
    227262
     
    229264{
    230265    osgEarth::ElevationLayer *layer = _map->getElevationLayerByName(name);
    231     _map->moveElevationLayer(layer, pos);
     266    if (layer != NULL) {
     267        _map->moveElevationLayer(layer, pos);
     268    }
     269}
     270
     271void Renderer::setElevationLayerVisibility(const char *name, bool state)
     272{
     273#if OSGEARTH_MIN_VERSION_REQUIRED(2, 4, 0)
     274    osgEarth::ElevationLayer *layer = _map->getElevationLayerByName(name);
     275    if (layer != NULL) {
     276        layer->setVisible(state);
     277    }
     278#endif
    232279}
    233280
     
    241288{
    242289    osgEarth::ModelLayer *layer = _map->getModelLayerByName(name);
    243     _map->removeModelLayer(layer);
     290    if (layer != NULL) {
     291        _map->removeModelLayer(layer);
     292    }
    244293}
    245294
     
    247296{
    248297    osgEarth::ModelLayer *layer = _map->getModelLayerByName(name);
    249     _map->moveModelLayer(layer, pos);
     298    if (layer != NULL) {
     299        _map->moveModelLayer(layer, pos);
     300    }
     301}
     302
     303void Renderer::setModelLayerVisibility(const char *name, bool state)
     304{
     305#if OSGEARTH_MIN_VERSION_REQUIRED(2, 4, 0)
     306    osgEarth::ModelLayer *layer = _map->getModelLayerByName(name);
     307    if (layer != NULL) {
     308        layer->setVisible(state);
     309    }
     310#endif
    250311}
    251312
Note: See TracChangeset for help on using the changeset viewer.