Changeset 8803
- Timestamp:
- 08/27/08 12:13:30
- Files:
-
- OpenSceneGraph/trunk/include/osgTerrain/Layer (modified) (1 diff)
- OpenSceneGraph/trunk/src/osgPlugins/ive/CMakeLists.txt (modified) (2 diffs)
- OpenSceneGraph/trunk/src/osgPlugins/ive/DataInputStream.cpp (modified) (2 diffs)
- OpenSceneGraph/trunk/src/osgPlugins/ive/DataOutputStream.cpp (modified) (2 diffs)
- OpenSceneGraph/trunk/src/osgPlugins/ive/Layer.cpp (modified) (3 diffs)
- OpenSceneGraph/trunk/src/osgPlugins/ive/ReadWrite.h (modified) (1 diff)
- OpenSceneGraph/trunk/src/osgPlugins/ive/SwitchLayer.cpp (added)
- OpenSceneGraph/trunk/src/osgPlugins/ive/SwitchLayer.h (added)
- OpenSceneGraph/trunk/src/osgPlugins/osgTerrain/CMakeLists.txt (modified) (1 diff)
- OpenSceneGraph/trunk/src/osgPlugins/osgTerrain/SwitchLayer.cpp (added)
- OpenSceneGraph/trunk/src/osgTerrain/Layer.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
OpenSceneGraph/trunk/include/osgTerrain/Layer
r7872 r8803 419 419 }; 420 420 421 422 423 class OSGTERRAIN_EXPORT SwitchLayer : public Layer 424 { 425 public: 426 427 SwitchLayer(); 428 429 /** Copy constructor using CopyOp to manage deep vs shallow copy.*/ 430 SwitchLayer(const SwitchLayer& switchLayer,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY); 431 432 META_Object(osgTerrain, SwitchLayer); 433 434 void clear(); 435 436 void setActiveLayer(unsigned int i) { _activeLayer = i; } 437 unsigned int getActiveLayer() const { return _activeLayer; } 438 439 void setFileName(unsigned int i, const std::string& filename) { _layers[i].first = filename; if (_layers[i].second.valid()) _layers[i].second->setFileName(filename); } 440 const std::string& getFileName(unsigned int i) const { return _layers[i].second.valid() ? _layers[i].second->getFileName() : _layers[i].first; } 441 442 void setLayer(unsigned int i, Layer* layer) { _layers[i].second = layer; } 443 Layer* getLayer(unsigned int i) { return _layers[i].second.get(); } 444 const Layer* getLayer(unsigned int i) const { return _layers[i].second.get(); } 445 446 void addLayer(const std::string& filename) { _layers.push_back(FileNameLayerPair(filename,0)); } 447 448 void addLayer(Layer* layer) { _layers.push_back(FileNameLayerPair(layer->getFileName(),layer)); } 449 450 void removeLayer(unsigned int i) { _layers.erase(_layers.begin()+i); } 451 452 unsigned int getNumLayers() const { return _layers.size(); } 453 454 protected: 455 456 virtual ~SwitchLayer() {} 457 458 typedef std::pair< std::string, osg::ref_ptr<Layer> > FileNameLayerPair; 459 460 typedef std::vector< FileNameLayerPair > Layers; 461 462 unsigned int _activeLayer; 463 Layers _layers; 464 }; 465 421 466 } 422 467 OpenSceneGraph/trunk/src/osgPlugins/ive/CMakeLists.txt
r8794 r8803 21 21 ColorMask.cpp 22 22 CompositeLayer.cpp 23 SwitchLayer.cpp 23 24 ConeSector.cpp 24 25 ConvexPlanarOccluder.cpp … … 134 135 ColorMask.h 135 136 CompositeLayer.h 137 SwitchLayer.h 136 138 ConeSector.h 137 139 ConvexPlanarOccluder.h OpenSceneGraph/trunk/src/osgPlugins/ive/DataInputStream.cpp
r8794 r8803 106 106 #include "HeightFieldLayer.h" 107 107 #include "CompositeLayer.h" 108 #include "SwitchLayer.h" 108 109 109 110 #include "FadeText.h" … … 1586 1587 ((ive::ImageLayer*)(layer))->read(this); 1587 1588 } 1589 else if (layerid==IVESWITCHLAYER) 1590 { 1591 layer = new osgTerrain::SwitchLayer; 1592 ((ive::SwitchLayer*)(layer))->read(this); 1593 } 1588 1594 else if (layerid==IVECOMPOSITELAYER) 1589 1595 { OpenSceneGraph/trunk/src/osgPlugins/ive/DataOutputStream.cpp
r8794 r8803 107 107 #include "HeightFieldLayer.h" 108 108 #include "CompositeLayer.h" 109 #include "SwitchLayer.h" 109 110 110 111 #include <osg/Notify> … … 1290 1291 ((ive::ImageLayer*)(layer))->write(this); 1291 1292 } 1293 else if (dynamic_cast<const osgTerrain::SwitchLayer*>(layer)) 1294 { 1295 ((ive::SwitchLayer*)(layer))->write(this); 1296 } 1292 1297 else if (dynamic_cast<const osgTerrain::CompositeLayer*>(layer)) 1293 1298 { OpenSceneGraph/trunk/src/osgPlugins/ive/Layer.cpp
r8389 r8803 20 20 #include "HeightFieldLayer.h" 21 21 #include "CompositeLayer.h" 22 #include "SwitchLayer.h" 22 23 23 24 #include <osgDB/ReadFile> … … 109 110 ((ive::ImageLayer*)(layer))->write(out); 110 111 } 112 else if (dynamic_cast<osgTerrain::SwitchLayer*>(layer)) 113 { 114 ((ive::SwitchLayer*)(layer))->write(out); 115 } 111 116 else if (dynamic_cast<osgTerrain::CompositeLayer*>(layer)) 112 117 { … … 149 154 osgTerrain::ImageLayer* layer = new osgTerrain::ImageLayer; 150 155 ((ive::ImageLayer*)(layer))->read(in); 156 return layer; 157 } 158 else if (id==IVESWITCHLAYER) 159 { 160 osgTerrain::SwitchLayer* layer = new osgTerrain::SwitchLayer; 161 ((ive::SwitchLayer*)(layer))->read(in); 151 162 return layer; 152 163 } OpenSceneGraph/trunk/src/osgPlugins/ive/ReadWrite.h
r8794 r8803 136 136 #define IVEGEOMETRYTECHNIQUE 0x00200009 137 137 #define IVEVALIDDATAOPERATOR 0x0020000A 138 #define IVEVALIDRANGE 0x0020000B 139 #define IVENODATAVALUE 0x0020000C 138 #define IVEVALIDRANGE 0x0020000B 139 #define IVENODATAVALUE 0x0020000C 140 #define IVESWITCHLAYER 0x0020000D 140 141 //#define IVETERRAIN 0x0020000A 141 142 OpenSceneGraph/trunk/src/osgPlugins/osgTerrain/CMakeLists.txt
r7999 r8803 7 7 HeightFieldLayer.cpp 8 8 CompositeLayer.cpp 9 SwitchLayer.cpp 9 10 Layer.cpp 10 11 TerrainTile.cpp OpenSceneGraph/trunk/src/osgTerrain/Layer.cpp
r8193 r8803 567 567 } 568 568 569 570 ///////////////////////////////////////////////////////////////////////////// 571 // 572 // SwitchLayer 573 // 574 SwitchLayer::SwitchLayer(): 575 _activeLayer(0) 576 { 577 } 578 579 SwitchLayer::SwitchLayer(const SwitchLayer& switchLayer,const osg::CopyOp& copyop): 580 Layer(switchLayer,copyop), 581 _activeLayer(0) 582 { 583 } 584 585 586 void SwitchLayer::clear() 587 { 588 _layers.clear(); 589 } 590
