diff --git a/src/osgWrappers/osgVolume/FixedFunctionTechnique.cpp b/src/osgWrappers/osgVolume/FixedFunctionTechnique.cpp index 8f04b81de..4ea11ad4c 100644 --- a/src/osgWrappers/osgVolume/FixedFunctionTechnique.cpp +++ b/src/osgWrappers/osgVolume/FixedFunctionTechnique.cpp @@ -75,6 +75,16 @@ BEGIN_OBJECT_REFLECTOR(osgVolume::FixedFunctionTechnique) __void__cull__osgUtil_CullVisitor_P1, "", ""); + I_Method1(void, setNumSlices, IN, unsigned int, numSlices, + Properties::NON_VIRTUAL, + __void__setNumSlices__unsigned_int, + "", + ""); + I_Method0(unsigned int, getNumSlices, + Properties::NON_VIRTUAL, + __unsigned_int__getNumSlices, + "", + ""); I_Method0(void, cleanSceneGraph, Properties::VIRTUAL, __void__cleanSceneGraph, @@ -85,5 +95,8 @@ BEGIN_OBJECT_REFLECTOR(osgVolume::FixedFunctionTechnique) __void__traverse__osg_NodeVisitor_R1, "Traverse the terrain subgraph. ", ""); + I_SimpleProperty(unsigned int, NumSlices, + 0, + __void__setNumSlices__unsigned_int); END_REFLECTOR diff --git a/src/osgWrappers/osgVolume/Layer.cpp b/src/osgWrappers/osgVolume/Layer.cpp index 0bfb70bbc..4b8ebb241 100644 --- a/src/osgWrappers/osgVolume/Layer.cpp +++ b/src/osgWrappers/osgVolume/Layer.cpp @@ -183,6 +183,26 @@ BEGIN_OBJECT_REFLECTOR(osgVolume::ImageLayer) __C5_osg_Image_P1__getImage, "Return const image associated with layer. ", ""); + I_Method2(bool, computeMinMax, IN, osg::Vec4 &, min, IN, osg::Vec4 &, max, + Properties::NON_VIRTUAL, + __bool__computeMinMax__osg_Vec4_R1__osg_Vec4_R1, + "Compute the min and max pixel colors. ", + ""); + I_Method2(void, offsetAndScaleImage, IN, const osg::Vec4 &, offset, IN, const osg::Vec4 &, scale, + Properties::NON_VIRTUAL, + __void__offsetAndScaleImage__C5_osg_Vec4_R1__C5_osg_Vec4_R1, + "Apply color transformation to pixels using c' = offset + c * scale . ", + ""); + I_Method0(void, rescaleToZeroToOneRange, + Properties::NON_VIRTUAL, + __void__rescaleToZeroToOneRange, + "Compute the min max range of the image, and then remap this to a 0 to 1 range. ", + ""); + I_Method0(void, translateMinToZero, + Properties::NON_VIRTUAL, + __void__translateMinToZero, + "Compute the min color component of the image and then translate and pixels by this offset to make the new min component 0. ", + ""); I_Method0(void, dirty, Properties::VIRTUAL, __void__dirty, @@ -324,6 +344,11 @@ BEGIN_OBJECT_REFLECTOR(osgVolume::Layer) __C5_Property_P1__getProperty, "Get the const Property that informs the VolumeTechnique how this layer should be rendered. ", ""); + I_Method1(void, addProperty, IN, osgVolume::Property *, property, + Properties::NON_VIRTUAL, + __void__addProperty__Property_P1, + "Add a property, automatically creating a CompositePorperty if one isn't already assigned. ", + ""); I_Method0(void, dirty, Properties::VIRTUAL, __void__dirty, diff --git a/src/osgWrappers/osgVolume/Property.cpp b/src/osgWrappers/osgVolume/Property.cpp index ae14818e6..4bf20221e 100644 --- a/src/osgWrappers/osgVolume/Property.cpp +++ b/src/osgWrappers/osgVolume/Property.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include // Must undefine IN and OUT macros defined in Windows headers @@ -23,6 +24,103 @@ #undef OUT #endif +BEGIN_OBJECT_REFLECTOR(osgVolume::AlphaFuncProperty) + I_DeclaringFile("osgVolume/Property"); + I_BaseType(osgVolume::ScalarProperty); + I_ConstructorWithDefaults1(IN, float, value, 1.0, + Properties::NON_EXPLICIT, + ____AlphaFuncProperty__float, + "", + ""); + I_ConstructorWithDefaults2(IN, const osgVolume::AlphaFuncProperty &, isp, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY, + ____AlphaFuncProperty__C5_AlphaFuncProperty_R1__C5_osg_CopyOp_R1, + "", + ""); + I_Method0(osg::Object *, cloneType, + Properties::VIRTUAL, + __osg_Object_P1__cloneType, + "Clone the type of an object, with Object* return type. ", + "Must be defined by derived classes. "); + I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop, + Properties::VIRTUAL, + __osg_Object_P1__clone__C5_osg_CopyOp_R1, + "Clone an object, with Object* return type. ", + "Must be defined by derived classes. "); + I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj, + Properties::VIRTUAL, + __bool__isSameKindAs__C5_osg_Object_P1, + "", + ""); + I_Method0(const char *, libraryName, + Properties::VIRTUAL, + __C5_char_P1__libraryName, + "return the name of the object's library. ", + "Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. "); + I_Method0(const char *, className, + Properties::VIRTUAL, + __C5_char_P1__className, + "return the name of the object's class type. ", + "Must be defined by derived classes. "); + I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv, + Properties::VIRTUAL, + __void__accept__PropertyVisitor_R1, + "", + ""); +END_REFLECTOR + +BEGIN_OBJECT_REFLECTOR(osgVolume::CollectPropertiesVisitor) + I_DeclaringFile("osgVolume/Property"); + I_BaseType(osgVolume::PropertyVisitor); + I_Constructor0(____CollectPropertiesVisitor, + "", + ""); + I_Method1(void, apply, IN, osgVolume::Property &, x, + Properties::VIRTUAL, + __void__apply__Property_R1, + "", + ""); + I_Method1(void, apply, IN, osgVolume::CompositeProperty &, cp, + Properties::VIRTUAL, + __void__apply__CompositeProperty_R1, + "", + ""); + I_Method1(void, apply, IN, osgVolume::TransferFunctionProperty &, tf, + Properties::VIRTUAL, + __void__apply__TransferFunctionProperty_R1, + "", + ""); + I_Method1(void, apply, IN, osgVolume::ScalarProperty &, x, + Properties::VIRTUAL, + __void__apply__ScalarProperty_R1, + "", + ""); + I_Method1(void, apply, IN, osgVolume::IsoSurfaceProperty &, iso, + Properties::VIRTUAL, + __void__apply__IsoSurfaceProperty_R1, + "", + ""); + I_Method1(void, apply, IN, osgVolume::AlphaFuncProperty &, af, + Properties::VIRTUAL, + __void__apply__AlphaFuncProperty_R1, + "", + ""); + I_Method1(void, apply, IN, osgVolume::MaximumIntensityProjectionProperty &, mip, + Properties::VIRTUAL, + __void__apply__MaximumIntensityProjectionProperty_R1, + "", + ""); + I_Method1(void, apply, IN, osgVolume::LightingProperty &, lp, + Properties::VIRTUAL, + __void__apply__LightingProperty_R1, + "", + ""); + I_PublicMemberProperty(osg::ref_ptr< osgVolume::TransferFunctionProperty >, _tfProperty); + I_PublicMemberProperty(osg::ref_ptr< osgVolume::IsoSurfaceProperty >, _isoProperty); + I_PublicMemberProperty(osg::ref_ptr< osgVolume::AlphaFuncProperty >, _afProperty); + I_PublicMemberProperty(osg::ref_ptr< osgVolume::MaximumIntensityProjectionProperty >, _mipProperty); + I_PublicMemberProperty(osg::ref_ptr< osgVolume::LightingProperty >, _lightingProperty); +END_REFLECTOR + TYPE_NAME_ALIAS(std::vector< osg::ref_ptr< osgVolume::Property > >, osgVolume::CompositeProperty::Properties) BEGIN_OBJECT_REFLECTOR(osgVolume::CompositeProperty) @@ -60,6 +158,11 @@ BEGIN_OBJECT_REFLECTOR(osgVolume::CompositeProperty) __C5_char_P1__className, "return the name of the object's class type. ", "Must be defined by derived classes. "); + I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv, + Properties::VIRTUAL, + __void__accept__PropertyVisitor_R1, + "", + ""); I_Method0(void, clear, Properties::NON_VIRTUAL, __void__clear, @@ -101,6 +204,134 @@ BEGIN_OBJECT_REFLECTOR(osgVolume::CompositeProperty) 0); END_REFLECTOR +BEGIN_OBJECT_REFLECTOR(osgVolume::IsoSurfaceProperty) + I_DeclaringFile("osgVolume/Property"); + I_BaseType(osgVolume::ScalarProperty); + I_ConstructorWithDefaults1(IN, float, value, 1.0, + Properties::NON_EXPLICIT, + ____IsoSurfaceProperty__float, + "", + ""); + I_ConstructorWithDefaults2(IN, const osgVolume::IsoSurfaceProperty &, isp, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY, + ____IsoSurfaceProperty__C5_IsoSurfaceProperty_R1__C5_osg_CopyOp_R1, + "", + ""); + I_Method0(osg::Object *, cloneType, + Properties::VIRTUAL, + __osg_Object_P1__cloneType, + "Clone the type of an object, with Object* return type. ", + "Must be defined by derived classes. "); + I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop, + Properties::VIRTUAL, + __osg_Object_P1__clone__C5_osg_CopyOp_R1, + "Clone an object, with Object* return type. ", + "Must be defined by derived classes. "); + I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj, + Properties::VIRTUAL, + __bool__isSameKindAs__C5_osg_Object_P1, + "", + ""); + I_Method0(const char *, libraryName, + Properties::VIRTUAL, + __C5_char_P1__libraryName, + "return the name of the object's library. ", + "Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. "); + I_Method0(const char *, className, + Properties::VIRTUAL, + __C5_char_P1__className, + "return the name of the object's class type. ", + "Must be defined by derived classes. "); + I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv, + Properties::VIRTUAL, + __void__accept__PropertyVisitor_R1, + "", + ""); +END_REFLECTOR + +BEGIN_OBJECT_REFLECTOR(osgVolume::LightingProperty) + I_DeclaringFile("osgVolume/Property"); + I_BaseType(osgVolume::Property); + I_Constructor0(____LightingProperty, + "", + ""); + I_ConstructorWithDefaults2(IN, const osgVolume::LightingProperty &, mipp, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY, + ____LightingProperty__C5_LightingProperty_R1__C5_osg_CopyOp_R1, + "", + ""); + I_Method0(osg::Object *, cloneType, + Properties::VIRTUAL, + __osg_Object_P1__cloneType, + "Clone the type of an object, with Object* return type. ", + "Must be defined by derived classes. "); + I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop, + Properties::VIRTUAL, + __osg_Object_P1__clone__C5_osg_CopyOp_R1, + "Clone an object, with Object* return type. ", + "Must be defined by derived classes. "); + I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj, + Properties::VIRTUAL, + __bool__isSameKindAs__C5_osg_Object_P1, + "", + ""); + I_Method0(const char *, libraryName, + Properties::VIRTUAL, + __C5_char_P1__libraryName, + "return the name of the object's library. ", + "Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. "); + I_Method0(const char *, className, + Properties::VIRTUAL, + __C5_char_P1__className, + "return the name of the object's class type. ", + "Must be defined by derived classes. "); + I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv, + Properties::VIRTUAL, + __void__accept__PropertyVisitor_R1, + "", + ""); +END_REFLECTOR + +BEGIN_OBJECT_REFLECTOR(osgVolume::MaximumIntensityProjectionProperty) + I_DeclaringFile("osgVolume/Property"); + I_BaseType(osgVolume::Property); + I_Constructor0(____MaximumIntensityProjectionProperty, + "", + ""); + I_ConstructorWithDefaults2(IN, const osgVolume::MaximumIntensityProjectionProperty &, mipp, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY, + ____MaximumIntensityProjectionProperty__C5_MaximumIntensityProjectionProperty_R1__C5_osg_CopyOp_R1, + "", + ""); + I_Method0(osg::Object *, cloneType, + Properties::VIRTUAL, + __osg_Object_P1__cloneType, + "Clone the type of an object, with Object* return type. ", + "Must be defined by derived classes. "); + I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop, + Properties::VIRTUAL, + __osg_Object_P1__clone__C5_osg_CopyOp_R1, + "Clone an object, with Object* return type. ", + "Must be defined by derived classes. "); + I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj, + Properties::VIRTUAL, + __bool__isSameKindAs__C5_osg_Object_P1, + "", + ""); + I_Method0(const char *, libraryName, + Properties::VIRTUAL, + __C5_char_P1__libraryName, + "return the name of the object's library. ", + "Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. "); + I_Method0(const char *, className, + Properties::VIRTUAL, + __C5_char_P1__className, + "return the name of the object's class type. ", + "Must be defined by derived classes. "); + I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv, + Properties::VIRTUAL, + __void__accept__PropertyVisitor_R1, + "", + ""); +END_REFLECTOR + BEGIN_OBJECT_REFLECTOR(osgVolume::Property) I_DeclaringFile("osgVolume/Property"); I_BaseType(osg::Object); @@ -136,6 +367,130 @@ BEGIN_OBJECT_REFLECTOR(osgVolume::Property) __C5_char_P1__className, "return the name of the object's class type. ", "Must be defined by derived classes. "); + I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv, + Properties::VIRTUAL, + __void__accept__PropertyVisitor_R1, + "", + ""); +END_REFLECTOR + +BEGIN_VALUE_REFLECTOR(osgVolume::PropertyVisitor) + I_DeclaringFile("osgVolume/Property"); + I_Constructor0(____PropertyVisitor, + "", + ""); + I_Method1(void, apply, IN, osgVolume::Property &, x, + Properties::VIRTUAL, + __void__apply__Property_R1, + "", + ""); + I_Method1(void, apply, IN, osgVolume::CompositeProperty &, x, + Properties::VIRTUAL, + __void__apply__CompositeProperty_R1, + "", + ""); + I_Method1(void, apply, IN, osgVolume::TransferFunctionProperty &, x, + Properties::VIRTUAL, + __void__apply__TransferFunctionProperty_R1, + "", + ""); + I_Method1(void, apply, IN, osgVolume::ScalarProperty &, x, + Properties::VIRTUAL, + __void__apply__ScalarProperty_R1, + "", + ""); + I_Method1(void, apply, IN, osgVolume::IsoSurfaceProperty &, x, + Properties::VIRTUAL, + __void__apply__IsoSurfaceProperty_R1, + "", + ""); + I_Method1(void, apply, IN, osgVolume::AlphaFuncProperty &, x, + Properties::VIRTUAL, + __void__apply__AlphaFuncProperty_R1, + "", + ""); + I_Method1(void, apply, IN, osgVolume::MaximumIntensityProjectionProperty &, x, + Properties::VIRTUAL, + __void__apply__MaximumIntensityProjectionProperty_R1, + "", + ""); + I_Method1(void, apply, IN, osgVolume::LightingProperty &, x, + Properties::VIRTUAL, + __void__apply__LightingProperty_R1, + "", + ""); +END_REFLECTOR + +BEGIN_OBJECT_REFLECTOR(osgVolume::ScalarProperty) + I_DeclaringFile("osgVolume/Property"); + I_BaseType(osgVolume::Property); + I_Constructor0(____ScalarProperty, + "", + ""); + I_Constructor2(IN, const std::string &, scaleName, IN, float, value, + ____ScalarProperty__C5_std_string_R1__float, + "", + ""); + I_ConstructorWithDefaults2(IN, const osgVolume::ScalarProperty &, scalarProperty, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY, + ____ScalarProperty__C5_ScalarProperty_R1__C5_osg_CopyOp_R1, + "", + ""); + I_Method0(osg::Object *, cloneType, + Properties::VIRTUAL, + __osg_Object_P1__cloneType, + "Clone the type of an object, with Object* return type. ", + "Must be defined by derived classes. "); + I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop, + Properties::VIRTUAL, + __osg_Object_P1__clone__C5_osg_CopyOp_R1, + "Clone an object, with Object* return type. ", + "Must be defined by derived classes. "); + I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj, + Properties::VIRTUAL, + __bool__isSameKindAs__C5_osg_Object_P1, + "", + ""); + I_Method0(const char *, libraryName, + Properties::VIRTUAL, + __C5_char_P1__libraryName, + "return the name of the object's library. ", + "Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. "); + I_Method0(const char *, className, + Properties::VIRTUAL, + __C5_char_P1__className, + "return the name of the object's class type. ", + "Must be defined by derived classes. "); + I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv, + Properties::VIRTUAL, + __void__accept__PropertyVisitor_R1, + "", + ""); + I_Method1(void, setValue, IN, float, v, + Properties::NON_VIRTUAL, + __void__setValue__float, + "Set the value. ", + ""); + I_Method0(float, getValue, + Properties::NON_VIRTUAL, + __float__getValue, + "Get the value. ", + ""); + I_Method0(osg::Uniform *, getUniform, + Properties::NON_VIRTUAL, + __osg_Uniform_P1__getUniform, + "Get the underlying uniform. ", + ""); + I_Method0(const osg::Uniform *, getUniform, + Properties::NON_VIRTUAL, + __C5_osg_Uniform_P1__getUniform, + "Get the underlying uniform. ", + ""); + I_SimpleProperty(osg::Uniform *, Uniform, + __osg_Uniform_P1__getUniform, + 0); + I_SimpleProperty(float, Value, + __float__getValue, + __void__setValue__float); END_REFLECTOR BEGIN_OBJECT_REFLECTOR(osgVolume::TransferFunctionProperty) @@ -146,7 +501,7 @@ BEGIN_OBJECT_REFLECTOR(osgVolume::TransferFunctionProperty) ____TransferFunctionProperty__osg_TransferFunction_P1, "", ""); - I_ConstructorWithDefaults2(IN, const osgVolume::TransferFunctionProperty &, tfProperty, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY, + I_ConstructorWithDefaults2(IN, const osgVolume::TransferFunctionProperty &, tfp, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY, ____TransferFunctionProperty__C5_TransferFunctionProperty_R1__C5_osg_CopyOp_R1, "Copy constructor using CopyOp to manage deep vs shallow copy. ", ""); @@ -175,6 +530,29 @@ BEGIN_OBJECT_REFLECTOR(osgVolume::TransferFunctionProperty) __C5_char_P1__className, "return the name of the object's class type. ", "Must be defined by derived classes. "); + I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv, + Properties::VIRTUAL, + __void__accept__PropertyVisitor_R1, + "", + ""); + I_Method1(void, setTransferFunction, IN, osg::TransferFunction *, tf, + Properties::NON_VIRTUAL, + __void__setTransferFunction__osg_TransferFunction_P1, + "Set the transfer function. ", + ""); + I_Method0(osg::TransferFunction *, getTransferFunction, + Properties::NON_VIRTUAL, + __osg_TransferFunction_P1__getTransferFunction, + "Get the transfer function. ", + ""); + I_Method0(const osg::TransferFunction *, getTransferFunction, + Properties::NON_VIRTUAL, + __C5_osg_TransferFunction_P1__getTransferFunction, + "Get the const transfer function. ", + ""); + I_SimpleProperty(osg::TransferFunction *, TransferFunction, + __osg_TransferFunction_P1__getTransferFunction, + __void__setTransferFunction__osg_TransferFunction_P1); END_REFLECTOR BEGIN_VALUE_REFLECTOR(osg::ref_ptr< osgVolume::Property >) diff --git a/src/osgWrappers/osgVolume/VolumeTile.cpp b/src/osgWrappers/osgVolume/VolumeTile.cpp index fe5fb7f90..b772edcd3 100644 --- a/src/osgWrappers/osgVolume/VolumeTile.cpp +++ b/src/osgWrappers/osgVolume/VolumeTile.cpp @@ -156,17 +156,17 @@ BEGIN_OBJECT_REFLECTOR(osgVolume::VolumeTile) I_Method1(void, setVolumeTechnique, IN, osgVolume::VolumeTechnique *, VolumeTechnique, Properties::NON_VIRTUAL, __void__setVolumeTechnique__VolumeTechnique_P1, - "Set the VolumeTechnique. ", + "Set the VolumeTechnique that will be used to render this tile. ", ""); I_Method0(osgVolume::VolumeTechnique *, getVolumeTechnique, Properties::NON_VIRTUAL, __VolumeTechnique_P1__getVolumeTechnique, - "Get the VolumeTechnique. ", + "Get the VolumeTechnique that will be used to render this tile. ", ""); I_Method0(const osgVolume::VolumeTechnique *, getVolumeTechnique, Properties::NON_VIRTUAL, __C5_VolumeTechnique_P1__getVolumeTechnique, - "Get the const VolumeTechnique. ", + "Get the const VolumeTechnique that will be used to render this tile. ", ""); I_Method1(void, setDirty, IN, bool, dirty, Properties::NON_VIRTUAL,