Reverted back to using std::list<std::String>
This commit is contained in:
@@ -49,7 +49,7 @@ class OSG_EXPORT ImageSequence : public ImageStream
|
||||
virtual double getTimeMultiplier() const { return _timeMultiplier; }
|
||||
|
||||
typedef std::list< osg::ref_ptr<osg::Image> > Images;
|
||||
typedef std::vector< std::string > FileNames;
|
||||
typedef std::list< std::string > FileNames;
|
||||
|
||||
enum Mode
|
||||
{
|
||||
|
||||
@@ -214,9 +214,12 @@ void ImageSequence::update(osg::NodeVisitor* nv)
|
||||
{
|
||||
if (_fileNames.size()>_images.size())
|
||||
{
|
||||
for(unsigned int i=_images.size(); i<_fileNames.size(); ++i)
|
||||
FileNames::iterator itr = _fileNames.begin();
|
||||
for(unsigned int i=0;i<_images.size();++i) ++itr;
|
||||
|
||||
for(; itr!=_fileNames.end(); ++itr)
|
||||
{
|
||||
osg::Image* image = irh->readImageFile(_fileNames[i]);
|
||||
osg::Image* image = irh->readImageFile(*itr);
|
||||
_images.push_back(image);
|
||||
}
|
||||
}
|
||||
@@ -246,7 +249,7 @@ void ImageSequence::update(osg::NodeVisitor* nv)
|
||||
//
|
||||
if (_fileNamesIterator!=_fileNames.end())
|
||||
{
|
||||
// osg::notify(osg::NOTICE)<<" _fileNamesIteratorTime = "<<_fileNamesIteratorTime<<std::endl;
|
||||
//osg::notify(osg::NOTICE)<<" _fileNamesIteratorTime = "<<_fileNamesIteratorTime<<" "<<_timePerImage<<std::endl;
|
||||
while(preLoadTime > (_fileNamesIteratorTime + _timePerImage))
|
||||
{
|
||||
_fileNamesIteratorTime += _timePerImage;
|
||||
|
||||
@@ -32,6 +32,29 @@ void ImageSequence::write(DataOutputStream* out)
|
||||
else
|
||||
throw Exception("ImageSequence::write(): Could not cast this osg::ImageSequence to an osg::Object.");
|
||||
// Write ImageSequence's properties.
|
||||
|
||||
|
||||
out->writeInt(getMode());
|
||||
out->writeDouble(getDuration());
|
||||
|
||||
out->writeUInt(getFileNames().size());
|
||||
for(FileNames::iterator itr = getFileNames().begin();
|
||||
itr != getFileNames().end();
|
||||
++itr)
|
||||
{
|
||||
out->writeString(*itr);
|
||||
}
|
||||
|
||||
if (getFileNames().empty())
|
||||
{
|
||||
out->writeUInt(getImages().size());
|
||||
for(Images::iterator itr = getImages().begin();
|
||||
itr != getImages().end();
|
||||
++itr)
|
||||
{
|
||||
out->writeImage(itr->get());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -51,6 +74,27 @@ void ImageSequence::read(DataInputStream* in)
|
||||
throw Exception("ImageSequence::read(): Could not cast this osg::ImageSequence to an osg::Object.");
|
||||
// Read ImageSequence's properties.
|
||||
|
||||
|
||||
setMode((osg::ImageSequence::Mode)(in->readInt()));
|
||||
setDuration(in->readDouble());
|
||||
|
||||
unsigned int numFileNames = in->readUInt();
|
||||
if (numFileNames>0)
|
||||
{
|
||||
for(unsigned int i=0; i<numFileNames; ++i)
|
||||
{
|
||||
addImageFile(in->readString());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
unsigned int numImages = in->readUInt();
|
||||
for(unsigned int i=0; i<numImages; ++i)
|
||||
{
|
||||
addImage(in->readImage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else{
|
||||
throw Exception("ImageSequence::read(): Expected ImageSequence identification.");
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
TYPE_NAME_ALIAS(std::list< osg::ref_ptr< osg::Image > >, osg::ImageSequence::Images)
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< std::string >, osg::ImageSequence::FileNames)
|
||||
TYPE_NAME_ALIAS(std::list< std::string >, osg::ImageSequence::FileNames)
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::ImageSequence::Mode)
|
||||
I_DeclaringFile("osg/ImageSequence");
|
||||
@@ -233,5 +233,5 @@ END_REFLECTOR
|
||||
|
||||
STD_LIST_REFLECTOR(std::list< osg::ref_ptr< osg::Image > >)
|
||||
|
||||
STD_VECTOR_REFLECTOR(std::vector< std::string >)
|
||||
STD_LIST_REFLECTOR(std::list< std::string >)
|
||||
|
||||
|
||||
@@ -487,3 +487,5 @@ STD_VECTOR_REFLECTOR(std::vector< osg::Matrix >)
|
||||
|
||||
STD_VECTOR_REFLECTOR(std::vector< osg::NodePath >)
|
||||
|
||||
STD_VECTOR_REFLECTOR(std::vector< std::string >)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user