Moved basics of fixed function pipeline implementation from osgvolume example into osgVolume

This commit is contained in:
Robert Osfield
2009-01-16 11:27:20 +00:00
parent 5e629d1236
commit 29ac92df0e
5 changed files with 316 additions and 6 deletions

View File

@@ -44,6 +44,8 @@ class OSGVOLUME_EXPORT FixedFunctionTechnique : public VolumeTechnique
protected:
virtual ~FixedFunctionTechnique();
osg::ref_ptr<osg::Node> _node;
};
}

View File

@@ -48,6 +48,7 @@ class PropertyVisitor
virtual void apply(LightingProperty&) {}
};
class OSGVOLUME_EXPORT Property : public osg::Object
{
public:
@@ -238,6 +239,30 @@ class OSGVOLUME_EXPORT LightingProperty : public Property
};
class OSGVOLUME_EXPORT CollectPropertiesVisitor : public osgVolume::PropertyVisitor
{
public:
CollectPropertiesVisitor();
virtual void apply(Property&);
virtual void apply(CompositeProperty& cp);
virtual void apply(TransferFunctionProperty& tf);
virtual void apply(ScalarProperty&);
virtual void apply(IsoSurfaceProperty& iso);
virtual void apply(AlphaFuncProperty& af);
virtual void apply(MaximumIntensityProjectionProperty& mip);
virtual void apply(LightingProperty& lp);
osg::ref_ptr<TransferFunctionProperty> _tfProperty;
osg::ref_ptr<IsoSurfaceProperty> _isoProperty;
osg::ref_ptr<AlphaFuncProperty> _afProperty;
osg::ref_ptr<MaximumIntensityProjectionProperty> _mipProperty;
osg::ref_ptr<LightingProperty> _lightingProperty;
};
}
#endif