Changed VolumeTile::setImage(Image*) to setImage(uint i, Image*) to allow multiple images to be attached to single tile
This commit is contained in:
parent
adced97dcd
commit
f4c26f9cc8
@ -114,10 +114,9 @@ class OSGVOLUME_EXPORT VolumeTile : public osg::Group
|
||||
const osg::RefMatrix* getLocator() const { return _locator.get(); }
|
||||
|
||||
|
||||
void setImage(osg::Image* image) { _image = image; }
|
||||
osg::Image* getImage() { return _image.get(); }
|
||||
const osg::Image* getImage() const { return _image.get(); }
|
||||
|
||||
void setImage(unsigned int i, osg::Image* image);
|
||||
osg::Image* getImage(unsigned int i) { return i<_images.size() ? _images[i].get() : 0; }
|
||||
const osg::Image* getImage(unsigned int i) const { return i<_images.size() ? _images[i].get() : 0; }
|
||||
|
||||
/** Set the VolumeTechnique*/
|
||||
void setVolumeTechnique(VolumeTechnique* VolumeTechnique);
|
||||
@ -154,7 +153,9 @@ class OSGVOLUME_EXPORT VolumeTile : public osg::Group
|
||||
osg::ref_ptr<VolumeTechnique> _volumeTechnique;
|
||||
|
||||
osg::ref_ptr<osg::RefMatrix> _locator;
|
||||
osg::ref_ptr<osg::Image> _image;
|
||||
|
||||
typedef std::vector< osg::ref_ptr<osg::Image> > Images;
|
||||
Images _images;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -121,7 +121,7 @@ class ReaderWriterDICOM : public osgDB::ReaderWriter
|
||||
|
||||
osg::ref_ptr<osgVolume::VolumeTile> tile = new osgVolume::VolumeTile;
|
||||
tile->setVolume(volume.get());
|
||||
tile->setImage(result.getImage());
|
||||
tile->setImage(0, result.getImage());
|
||||
|
||||
// get matrix providing size of texels (in mm)
|
||||
osg::RefMatrix* matrix = dynamic_cast<osg::RefMatrix*>(result.getImage()->getUserData());
|
||||
|
@ -30,16 +30,16 @@ VolumeTile::VolumeTile():
|
||||
setThreadSafeRefUnref(true);
|
||||
}
|
||||
|
||||
VolumeTile::VolumeTile(const VolumeTile& brick,const osg::CopyOp& copyop):
|
||||
Group(brick,copyop),
|
||||
VolumeTile::VolumeTile(const VolumeTile& volumeTile,const osg::CopyOp& copyop):
|
||||
Group(volumeTile,copyop),
|
||||
_volume(0),
|
||||
_dirty(false),
|
||||
_hasBeenTraversal(false),
|
||||
_image(brick._image)
|
||||
_images(volumeTile._images)
|
||||
{
|
||||
if (brick.getVolumeTechnique())
|
||||
if (volumeTile.getVolumeTechnique())
|
||||
{
|
||||
setVolumeTechnique(osg::clone(brick.getVolumeTechnique()));
|
||||
setVolumeTechnique(osg::clone(volumeTile.getVolumeTechnique()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -138,19 +138,19 @@ BEGIN_OBJECT_REFLECTOR(osgVolume::VolumeTile)
|
||||
__C5_osg_RefMatrix_P1__getLocator,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setImage, IN, osg::Image *, image,
|
||||
I_Method2(void, setImage, IN, unsigned int, i, IN, osg::Image *, image,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setImage__osg_Image_P1,
|
||||
__void__setImage__unsigned_int__osg_Image_P1,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osg::Image *, getImage,
|
||||
I_Method1(osg::Image *, getImage, IN, unsigned int, i,
|
||||
Properties::NON_VIRTUAL,
|
||||
__osg_Image_P1__getImage,
|
||||
__osg_Image_P1__getImage__unsigned_int,
|
||||
"",
|
||||
"");
|
||||
I_Method0(const osg::Image *, getImage,
|
||||
I_Method1(const osg::Image *, getImage, IN, unsigned int, i,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_osg_Image_P1__getImage,
|
||||
__C5_osg_Image_P1__getImage__unsigned_int,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setVolumeTechnique, IN, osgVolume::VolumeTechnique *, VolumeTechnique,
|
||||
@ -186,9 +186,10 @@ BEGIN_OBJECT_REFLECTOR(osgVolume::VolumeTile)
|
||||
I_SimpleProperty(bool, Dirty,
|
||||
__bool__getDirty,
|
||||
__void__setDirty__bool);
|
||||
I_SimpleProperty(osg::Image *, Image,
|
||||
__osg_Image_P1__getImage,
|
||||
__void__setImage__osg_Image_P1);
|
||||
I_IndexedProperty(osg::Image *, Image,
|
||||
__osg_Image_P1__getImage__unsigned_int,
|
||||
__void__setImage__unsigned_int__osg_Image_P1,
|
||||
0);
|
||||
I_SimpleProperty(osg::RefMatrix *, Locator,
|
||||
__osg_RefMatrix_P1__getLocator,
|
||||
__void__setLocator__osg_RefMatrix_P1);
|
||||
|
Loading…
Reference in New Issue
Block a user