-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial cut of Audio/Volume/Movie/Image presentation objects
- Loading branch information
1 parent
798150d
commit 1875d92
Showing
11 changed files
with
291 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2013 Robert Osfield | ||
* | ||
* This library is open source and may be redistributed and/or modified under | ||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or | ||
* (at your option) any later version. The full license is in LICENSE file | ||
* included with this distribution, and on the openscenegraph.org website. | ||
* | ||
* This library is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* OpenSceneGraph Public License for more details. | ||
*/ | ||
|
||
#include <osgPresentation/Audio> | ||
#include <osg/ValueObject> | ||
#include <osgDB/ReadFile> | ||
|
||
using namespace osgPresentation; | ||
|
||
|
||
bool Audio::load() | ||
{ | ||
OSG_NOTICE<<"Audio::load() Not implemented yet"<<std::endl; | ||
|
||
std::string filename; | ||
getPropertyValue("filename", filename); | ||
|
||
double volume = 1.0; | ||
getPropertyValue("volume", volume); | ||
|
||
OSG_NOTICE<<"Audio : filename = "<<filename<<std::endl; | ||
OSG_NOTICE<<" volume = "<<volume<<std::endl; | ||
|
||
return false; | ||
} | ||
|
||
bool Audio::getSupportedProperties(PropertyList& pl) | ||
{ | ||
pl.push_back(ObjectDescription(new osg::StringValueObject("filename",""), std::string("Audio filename to load."))); | ||
pl.push_back(ObjectDescription(new osg::DoubleValueObject("volume",1.0), std::string("Audio volume."))); | ||
return true; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2013 Robert Osfield | ||
* | ||
* This library is open source and may be redistributed and/or modified under | ||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or | ||
* (at your option) any later version. The full license is in LICENSE file | ||
* included with this distribution, and on the openscenegraph.org website. | ||
* | ||
* This library is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* OpenSceneGraph Public License for more details. | ||
*/ | ||
|
||
#include <osgPresentation/Image> | ||
#include <osg/ValueObject> | ||
#include <osg/Geometry> | ||
#include <osg/Texture2D> | ||
#include <osgDB/ReadFile> | ||
|
||
using namespace osgPresentation; | ||
|
||
|
||
bool Image::load() | ||
{ | ||
OSG_NOTICE<<"Image::load() Not implemented yet"<<std::endl; | ||
|
||
std::string filename; | ||
getPropertyValue("filename", filename); | ||
|
||
double scale = 1.0; | ||
getPropertyValue("scale", scale); | ||
|
||
OSG_NOTICE<<"Image : filename = "<<filename<<std::endl; | ||
OSG_NOTICE<<" scale = "<<scale<<std::endl; | ||
|
||
osg::ref_ptr<osg::Image> image = osgDB::readImageFile(filename); | ||
if (image.valid()) | ||
{ | ||
osg::Vec3d position(0.0,0.0,0.0); | ||
osg::Vec3d widthVec(1.0,0.0,0.0); | ||
osg::Vec3d heightVec(0.0,0.0,1.0); | ||
|
||
osg::ref_ptr<osg::Geometry> geometry = osg::createTexturedQuadGeometry(position, widthVec, heightVec); | ||
osg::ref_ptr<osg::Texture2D> texture = new osg::Texture2D(image.get()); | ||
texture->setResizeNonPowerOfTwoHint(false); | ||
texture->setFilter(osg::Texture::MIN_FILTER, osg::Texture::LINEAR); | ||
texture->setFilter(osg::Texture::MAG_FILTER, osg::Texture::LINEAR); | ||
geometry->getOrCreateStateSet()->setTextureAttributeAndModes(0, texture, osg::StateAttribute::ON); | ||
|
||
osg::ref_ptr<osg::Geode> geode = new osg::Geode; | ||
geode->addDrawable(geometry.get()); | ||
|
||
addChild(geode.get()); | ||
} | ||
|
||
return false; | ||
} | ||
|
||
bool Image::getSupportedProperties(PropertyList& pl) | ||
{ | ||
pl.push_back(ObjectDescription(new osg::StringValueObject("filename",""), std::string("Image filename to load."))); | ||
pl.push_back(ObjectDescription(new osg::DoubleValueObject("scale",1.0), std::string("Image scale."))); | ||
return true; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2013 Robert Osfield | ||
* | ||
* This library is open source and may be redistributed and/or modified under | ||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or | ||
* (at your option) any later version. The full license is in LICENSE file | ||
* included with this distribution, and on the openscenegraph.org website. | ||
* | ||
* This library is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* OpenSceneGraph Public License for more details. | ||
*/ | ||
|
||
#include <osgPresentation/Movie> | ||
#include <osg/ValueObject> | ||
#include <osg/Geometry> | ||
#include <osg/Texture2D> | ||
#include <osgDB/ReadFile> | ||
|
||
using namespace osgPresentation; | ||
|
||
|
||
bool Movie::load() | ||
{ | ||
OSG_NOTICE<<"Movie::load() Not implemented yet"<<std::endl; | ||
|
||
std::string filename; | ||
getPropertyValue("filename", filename); | ||
|
||
double volume = 1.0; | ||
getPropertyValue("volume", volume); | ||
|
||
double scale = 1.0; | ||
getPropertyValue("scale", scale); | ||
|
||
OSG_NOTICE<<"Movie : filename = "<<filename<<std::endl; | ||
OSG_NOTICE<<" volume = "<<volume<<std::endl; | ||
OSG_NOTICE<<" scale = "<<scale<<std::endl; | ||
|
||
osg::ref_ptr<osg::Image> image = osgDB::readImageFile(filename); | ||
if (image.valid()) | ||
{ | ||
osg::Vec3d position(0.0,0.0,0.0); | ||
osg::Vec3d widthVec(1.0,0.0,0.0); | ||
osg::Vec3d heightVec(0.0,0.0,1.0); | ||
|
||
osg::ref_ptr<osg::Geometry> geometry = osg::createTexturedQuadGeometry(position, widthVec, heightVec); | ||
osg::ref_ptr<osg::Texture2D> texture = new osg::Texture2D(image.get()); | ||
texture->setResizeNonPowerOfTwoHint(false); | ||
texture->setFilter(osg::Texture::MIN_FILTER, osg::Texture::LINEAR); | ||
texture->setFilter(osg::Texture::MAG_FILTER, osg::Texture::LINEAR); | ||
geometry->getOrCreateStateSet()->setTextureAttributeAndModes(0, texture, osg::StateAttribute::ON); | ||
|
||
osg::ref_ptr<osg::Geode> geode = new osg::Geode; | ||
geode->addDrawable(geometry.get()); | ||
|
||
addChild(geode.get()); | ||
} | ||
|
||
return false; | ||
} | ||
|
||
bool Movie::getSupportedProperties(PropertyList& pl) | ||
{ | ||
pl.push_back(ObjectDescription(new osg::StringValueObject("filename",""), std::string("Movie filename to load."))); | ||
pl.push_back(ObjectDescription(new osg::DoubleValueObject("volume",1.0), std::string("Audio volume."))); | ||
pl.push_back(ObjectDescription(new osg::DoubleValueObject("scale",1.0), std::string("Movie scale."))); | ||
return true; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2013 Robert Osfield | ||
* | ||
* This library is open source and may be redistributed and/or modified under | ||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or | ||
* (at your option) any later version. The full license is in LICENSE file | ||
* included with this distribution, and on the openscenegraph.org website. | ||
* | ||
* This library is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* OpenSceneGraph Public License for more details. | ||
*/ | ||
|
||
#include <osgPresentation/Volume> | ||
#include <osg/ValueObject> | ||
#include <osgVolume/VolumeTile> | ||
#include <osgDB/ReadFile> | ||
|
||
using namespace osgPresentation; | ||
|
||
|
||
bool Volume::load() | ||
{ | ||
OSG_NOTICE<<"Volume::load() Not implemented yet"<<std::endl; | ||
|
||
std::string filename; | ||
getPropertyValue("filename", filename); | ||
|
||
double scale = 1.0; | ||
getPropertyValue("scale", scale); | ||
|
||
std::string technique; | ||
getPropertyValue("technique", technique); | ||
|
||
OSG_NOTICE<<"Volume : filename = "<<filename<<std::endl; | ||
OSG_NOTICE<<" technique = "<<technique<<std::endl; | ||
OSG_NOTICE<<" scale = "<<scale<<std::endl; | ||
|
||
osg::ref_ptr<osg::Object> object = osgDB::readObjectFile(filename); | ||
if (object.valid()) | ||
{ | ||
osg::ref_ptr<osgVolume::VolumeTile> volume = dynamic_cast<osgVolume::VolumeTile*>(object.get()); | ||
if (volume.valid()) addChild(volume.get()); | ||
} | ||
|
||
return false; | ||
} | ||
|
||
bool Volume::getSupportedProperties(PropertyList& pl) | ||
{ | ||
pl.push_back(ObjectDescription(new osg::StringValueObject("filename",""), std::string("Volume filename to load."))); | ||
pl.push_back(ObjectDescription(new osg::StringValueObject("technique",""), std::string("Volume technique to use when rendering."))); | ||
pl.push_back(ObjectDescription(new osg::DoubleValueObject("scale",1.0), std::string("Volume scale."))); | ||
return true; | ||
} |