diff --git a/include/osgPresentation/deprecated/SlideShowConstructor b/include/osgPresentation/deprecated/SlideShowConstructor index a9f860e1c..5c117a185 100644 --- a/include/osgPresentation/deprecated/SlideShowConstructor +++ b/include/osgPresentation/deprecated/SlideShowConstructor @@ -328,6 +328,7 @@ public: osg::ColorSpaceOperation colorSpaceOperation; osg::Vec4 colorModulate; Technique technique; + std::string hull; }; diff --git a/src/osgPlugins/p3d/ReaderWriterP3D.cpp b/src/osgPlugins/p3d/ReaderWriterP3D.cpp index 1491ed009..001e884ed 100644 --- a/src/osgPlugins/p3d/ReaderWriterP3D.cpp +++ b/src/osgPlugins/p3d/ReaderWriterP3D.cpp @@ -1307,6 +1307,12 @@ void ReaderWriterP3DXML::parseVolume(osgPresentation::SlideShowConstructor& cons else if (renderer=="MultiPass") volumeData.technique = osgPresentation::SlideShowConstructor::VolumeData::MultiPass; } + std::string hull; + if (getProperty(cur, "hull", hull)) + { + volumeData.hull = hull; + } + if (getProperty(cur, "alpha", volumeData.alphaValue)) {} if (getProperty(cur, "cutoff", volumeData.cutoffValue)) {} if (getProperty(cur, "region", volumeData.region)) {} diff --git a/src/osgPresentation/deprecated/SlideShowConstructor.cpp b/src/osgPresentation/deprecated/SlideShowConstructor.cpp index 3d29447e1..82637c9eb 100644 --- a/src/osgPresentation/deprecated/SlideShowConstructor.cpp +++ b/src/osgPresentation/deprecated/SlideShowConstructor.cpp @@ -2816,6 +2816,15 @@ void SlideShowConstructor::addVolume(const std::string& filename, const Position } } + if (!volumeData.hull.empty()) + { + osg::ref_ptr hull = osgDB::readNodeFile(volumeData.hull, _options.get()); + if (hull.valid()) + { + tile->addChild(hull); + } + } + osg::ref_ptr model = volume.get();