Added support for <imagesequence interaction_mode="USE_MOUSE_Y_POSITION">
This commit is contained in:
@@ -265,7 +265,8 @@ public:
|
||||
enum ImageSequenceInteractionMode
|
||||
{
|
||||
PLAY_AUTOMATICALLY_LIKE_MOVIE,
|
||||
USE_MOUSE_X_POSITION
|
||||
USE_MOUSE_X_POSITION,
|
||||
USE_MOUSE_Y_POSITION
|
||||
};
|
||||
ImageSequenceInteractionMode imageSequenceInteractionMode;
|
||||
|
||||
|
||||
@@ -895,6 +895,7 @@ bool ReaderWriterP3DXML::getProperties(osgDB::XmlNode*cur, osgPresentation::Slid
|
||||
|
||||
if (str=="PLAY_AUTOMATICALLY_LIKE_MOVIE") value.imageSequenceInteractionMode = osgPresentation::SlideShowConstructor::ImageData::PLAY_AUTOMATICALLY_LIKE_MOVIE;
|
||||
else if (str=="USE_MOUSE_X_POSITION") value.imageSequenceInteractionMode = osgPresentation::SlideShowConstructor::ImageData::USE_MOUSE_X_POSITION;
|
||||
else if (str=="USE_MOUSE_Y_POSITION") value.imageSequenceInteractionMode = osgPresentation::SlideShowConstructor::ImageData::USE_MOUSE_Y_POSITION;
|
||||
|
||||
OSG_NOTIFY(_notifyLevel)<<"read imageSequencePagingMode \""<<value.imageSequenceInteractionMode<<"\""<<std::endl;
|
||||
}
|
||||
|
||||
@@ -1037,6 +1037,11 @@ osg::Image* SlideShowConstructor::readImage(const std::string& filename, const I
|
||||
{
|
||||
imageSequence->setName("USE_MOUSE_X_POSITION");
|
||||
}
|
||||
else if (imageData.imageSequenceInteractionMode==ImageData::USE_MOUSE_Y_POSITION)
|
||||
{
|
||||
imageSequence->setName("USE_MOUSE_Y_POSITION");
|
||||
}
|
||||
|
||||
|
||||
imageSequence->play();
|
||||
|
||||
@@ -1131,9 +1136,16 @@ void SlideShowConstructor::addImage(const std::string& filename, const PositionD
|
||||
}
|
||||
|
||||
osg::ImageSequence* imageSequence = dynamic_cast<osg::ImageSequence*>(image.get());
|
||||
if (imageSequence && imageData.imageSequenceInteractionMode==ImageData::USE_MOUSE_X_POSITION)
|
||||
if (imageSequence)
|
||||
{
|
||||
subgraph->setUpdateCallback(new osgPresentation::ImageSequenceUpdateCallback(imageSequence, _propertyManager.get(), "mouse.x_normalized"));
|
||||
if (imageData.imageSequenceInteractionMode==ImageData::USE_MOUSE_X_POSITION)
|
||||
{
|
||||
subgraph->setUpdateCallback(new osgPresentation::ImageSequenceUpdateCallback(imageSequence, _propertyManager.get(), "mouse.x_normalized"));
|
||||
}
|
||||
else if (imageData.imageSequenceInteractionMode==ImageData::USE_MOUSE_Y_POSITION)
|
||||
{
|
||||
subgraph->setUpdateCallback(new osgPresentation::ImageSequenceUpdateCallback(imageSequence, _propertyManager.get(), "mouse.y_normalized"));
|
||||
}
|
||||
}
|
||||
|
||||
// attached any rotation
|
||||
@@ -1318,9 +1330,16 @@ void SlideShowConstructor::addStereoImagePair(const std::string& filenameLeft, c
|
||||
subgraph->addChild(pictureRight);
|
||||
|
||||
osg::ImageSequence* imageSequence = dynamic_cast<osg::ImageSequence*>(imageLeft.get());
|
||||
if (imageSequence && imageDataLeft.imageSequenceInteractionMode==ImageData::USE_MOUSE_X_POSITION)
|
||||
if (imageSequence)
|
||||
{
|
||||
subgraph->setUpdateCallback(new osgPresentation::ImageSequenceUpdateCallback(imageSequence, _propertyManager.get(), "mouse.x_normalized"));
|
||||
if (imageDataLeft.imageSequenceInteractionMode==ImageData::USE_MOUSE_X_POSITION)
|
||||
{
|
||||
subgraph->setUpdateCallback(new osgPresentation::ImageSequenceUpdateCallback(imageSequence, _propertyManager.get(), "mouse.x_normalized"));
|
||||
}
|
||||
else if (imageDataLeft.imageSequenceInteractionMode==ImageData::USE_MOUSE_Y_POSITION)
|
||||
{
|
||||
subgraph->setUpdateCallback(new osgPresentation::ImageSequenceUpdateCallback(imageSequence, _propertyManager.get(), "mouse.y_normalized"));
|
||||
}
|
||||
}
|
||||
|
||||
// attach any meterial animation.
|
||||
|
||||
Reference in New Issue
Block a user