From 2ea2872cfb41b5ffaa8d75691a68970b3a527c9f Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 9 Jan 2008 21:00:38 +0000 Subject: [PATCH] Simplified the image reading/writing --- src/osgPlugins/ive/ImageLayer.cpp | 38 ++++++++----------------------- 1 file changed, 9 insertions(+), 29 deletions(-) diff --git a/src/osgPlugins/ive/ImageLayer.cpp b/src/osgPlugins/ive/ImageLayer.cpp index 306c7e962..f3c683309 100644 --- a/src/osgPlugins/ive/ImageLayer.cpp +++ b/src/osgPlugins/ive/ImageLayer.cpp @@ -32,19 +32,12 @@ void ImageLayer::write(DataOutputStream* out) throw Exception("ImageLayer::write(): Could not cast this osgLayer::ImageLayer to an osgTerrain::Layer."); - if (getFileName().empty() && getImage()) - { - // using inline image - out->writeBool(true); - out->writeChar(out->getIncludeImageMode()); - out->writeImage(out->getIncludeImageMode(),getImage()); - } - else - { - // using external image file - out->writeBool(false); - out->writeString(getFileName()); - } + IncludeImageMode imMode = out->getIncludeImageMode(); + + if (getFileName().empty() && imMode==IMAGE_REFERENCE_FILE) imMode = IMAGE_INCLUDE_DATA; + + out->writeChar(imMode); + out->writeImage(imMode,getImage()); } @@ -66,21 +59,8 @@ void ImageLayer::read(DataInputStream* in) throw Exception("ImageLayer::read(): Could not cast this osgLayer::Layer to an osg::Group."); - bool useInlineImage = in->readBool(); - - if (useInlineImage) - { - // Should we read image data from stream - IncludeImageMode includeImg = (IncludeImageMode)in->readChar(); - - setImage(in->readImage(includeImg)); - } - else - { - std::string filename = in->readString(); - setFileName(filename); - - setImage(osgDB::readImageFile(filename,in->getOptions())); - } + // Should we read image data from stream + IncludeImageMode includeImg = (IncludeImageMode)in->readChar(); + setImage(in->readImage(includeImg)); }