diff --git a/src/osgWrappers/genwrapper.conf b/src/osgWrappers/genwrapper.conf index a884395f8..1ae4bc63e 100644 --- a/src/osgWrappers/genwrapper.conf +++ b/src/osgWrappers/genwrapper.conf @@ -270,6 +270,8 @@ suppress reflector "osgAnimation::TemplateChannel< osgAnimation::Vec2CubicBezier suppress reflector "osgAnimation::TemplateChannel< osgAnimation::Vec3CubicBezierSampler >" suppress reflector "osgAnimation::TemplateChannel< osgAnimation::Vec4CubicBezierSampler >" +suppress reflector "osgAnimation::AnimationUpdateCallback" + ############################################################################# # StateSet and related types need some advanced tweaking diff --git a/src/osgWrappers/osgAnimation/Bone.cpp b/src/osgWrappers/osgAnimation/Bone.cpp index 817ae8a9b..02f1fa2df 100644 --- a/src/osgWrappers/osgAnimation/Bone.cpp +++ b/src/osgWrappers/osgAnimation/Bone.cpp @@ -262,7 +262,6 @@ END_REFLECTOR BEGIN_OBJECT_REFLECTOR(osgAnimation::Bone::UpdateBone) I_DeclaringFile("osgAnimation/Bone"); - I_BaseType(osgAnimation::AnimationUpdateCallback); I_Method0(osg::Object *, cloneType, Properties::VIRTUAL, __osg_Object_P1__cloneType, diff --git a/src/osgWrappers/osgAnimation/LinkVisitor.cpp b/src/osgWrappers/osgAnimation/LinkVisitor.cpp index 44ba190aa..eeb9d1c3f 100644 --- a/src/osgWrappers/osgAnimation/LinkVisitor.cpp +++ b/src/osgWrappers/osgAnimation/LinkVisitor.cpp @@ -10,6 +10,7 @@ #include #include +#include #include #include #include @@ -43,6 +44,11 @@ BEGIN_OBJECT_REFLECTOR(osgAnimation::LinkVisitor) __void__apply__osg_Node_R1, "", ""); + I_Method1(void, apply, IN, osg::Geode &, node, + Properties::VIRTUAL, + __void__apply__osg_Geode_R1, + "", + ""); I_Method0(osgAnimation::AnimationList &, getAnimationList, Properties::NON_VIRTUAL, __AnimationList_R1__getAnimationList, @@ -53,6 +59,18 @@ BEGIN_OBJECT_REFLECTOR(osgAnimation::LinkVisitor) __void__reset, "Method to call to reset visitor. ", "Useful if your visitor accumulates state during a traversal, and you plan to reuse the visitor. To flush that state for the next traversal: call reset() prior to each traversal. "); + I_ProtectedMethod1(void, handle_stateset, IN, osg::StateSet *, stateset, + Properties::NON_VIRTUAL, + Properties::NON_CONST, + __void__handle_stateset__osg_StateSet_P1, + "", + ""); + I_ProtectedMethod1(void, link, IN, osgAnimation::AnimationUpdateCallbackBase *, cb, + Properties::NON_VIRTUAL, + Properties::NON_CONST, + __void__link__osgAnimation_AnimationUpdateCallbackBase_P1, + "", + ""); I_SimpleProperty(osgAnimation::AnimationList &, AnimationList, __AnimationList_R1__getAnimationList, 0); diff --git a/src/osgWrappers/osgAnimation/MorphGeometry.cpp b/src/osgWrappers/osgAnimation/MorphGeometry.cpp index e4b1e4f8b..4cac24e85 100644 --- a/src/osgWrappers/osgAnimation/MorphGeometry.cpp +++ b/src/osgWrappers/osgAnimation/MorphGeometry.cpp @@ -200,7 +200,6 @@ END_REFLECTOR BEGIN_OBJECT_REFLECTOR(osgAnimation::UpdateMorph) I_DeclaringFile("osgAnimation/MorphGeometry"); - I_BaseType(osgAnimation::AnimationUpdateCallback); I_Method0(osg::Object *, cloneType, Properties::VIRTUAL, __osg_Object_P1__cloneType, diff --git a/src/osgWrappers/osgAnimation/UpdateCallback.cpp b/src/osgWrappers/osgAnimation/UpdateCallback.cpp index 5b84652da..94144061e 100644 --- a/src/osgWrappers/osgAnimation/UpdateCallback.cpp +++ b/src/osgWrappers/osgAnimation/UpdateCallback.cpp @@ -11,11 +11,13 @@ #include #include +#include #include #include #include #include #include +#include #include #include #include @@ -29,21 +31,14 @@ #undef OUT #endif -BEGIN_ABSTRACT_OBJECT_REFLECTOR(osgAnimation::AnimationUpdateCallback) +BEGIN_ABSTRACT_OBJECT_REFLECTOR(osgAnimation::AnimationUpdateCallbackBase) I_DeclaringFile("osgAnimation/UpdateCallback"); - I_BaseType(osg::NodeCallback); - I_ConstructorWithDefaults1(IN, const std::string &, name, "", - Properties::NON_EXPLICIT, - ____AnimationUpdateCallback__C5_std_string_R1, - "", - ""); - I_Constructor2(IN, const osgAnimation::AnimationUpdateCallback &, apc, IN, const osg::CopyOp &, copyop, - ____AnimationUpdateCallback__C5_AnimationUpdateCallback_R1__C5_osg_CopyOp_R1, + I_Constructor0(____AnimationUpdateCallbackBase, "", ""); I_Method0(osgAnimation::AnimationManagerBase *, getAnimationManager, - Properties::NON_VIRTUAL, - __osgAnimation_AnimationManagerBase_P1__getAnimationManager, + Properties::PURE_VIRTUAL, + __AnimationManagerBase_P1__getAnimationManager, "", ""); I_Method0(bool, needLink, @@ -57,23 +52,83 @@ BEGIN_ABSTRACT_OBJECT_REFLECTOR(osgAnimation::AnimationUpdateCallback) "", ""); I_Method1(int, link, IN, osgAnimation::Animation *, animation, - Properties::VIRTUAL, + Properties::PURE_VIRTUAL, __int__link__osgAnimation_Animation_P1, "", ""); I_Method0(void, updateLink, - Properties::VIRTUAL, + Properties::PURE_VIRTUAL, __void__updateLink, "", ""); + I_Method0(const std::string &, getName, + Properties::PURE_VIRTUAL, + __C5_std_string_R1__getName, + "", + ""); I_SimpleProperty(osgAnimation::AnimationManagerBase *, AnimationManager, - __osgAnimation_AnimationManagerBase_P1__getAnimationManager, + __AnimationManagerBase_P1__getAnimationManager, 0); + I_SimpleProperty(const std::string &, Name, + __C5_std_string_R1__getName, + 0); +END_REFLECTOR + +BEGIN_OBJECT_REFLECTOR(osgAnimation::UpdateMaterial) + I_DeclaringFile("osgAnimation/UpdateCallback"); + 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 &, x, + 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_ConstructorWithDefaults1(IN, const std::string &, name, "", + Properties::NON_EXPLICIT, + ____UpdateMaterial__C5_std_string_R1, + "", + ""); + I_Constructor2(IN, const osgAnimation::UpdateMaterial &, apc, IN, const osg::CopyOp &, copyop, + ____UpdateMaterial__C5_UpdateMaterial_R1__C5_osg_CopyOp_R1, + "", + ""); + I_Method1(void, update, IN, osg::Material &, material, + Properties::NON_VIRTUAL, + __void__update__osg_Material_R1, + "", + ""); + I_Method0(bool, needLink, + Properties::VIRTUAL, + __bool__needLink, + "", + ""); + I_Method1(bool, link, IN, osgAnimation::Channel *, channel, + Properties::VIRTUAL, + __bool__link__osgAnimation_Channel_P1, + "", + ""); END_REFLECTOR BEGIN_OBJECT_REFLECTOR(osgAnimation::UpdateTransform) I_DeclaringFile("osgAnimation/UpdateCallback"); - I_BaseType(osgAnimation::AnimationUpdateCallback); I_Method0(osg::Object *, cloneType, Properties::VIRTUAL, __osg_Object_P1__cloneType, diff --git a/src/osgWrappers/osgDB/Registry.cpp b/src/osgWrappers/osgDB/Registry.cpp index 8bceee329..c68ee528a 100644 --- a/src/osgWrappers/osgDB/Registry.cpp +++ b/src/osgWrappers/osgDB/Registry.cpp @@ -12,6 +12,7 @@ #include #include +#include #include #include #include @@ -555,16 +556,26 @@ BEGIN_OBJECT_REFLECTOR(osgDB::Registry) __C5_FilePathList_R1__getLibraryFilePathList, "get the const library file path which is used when search for library (dso/dll's) files. ", ""); - I_Method1(void, updateTimeStampOfObjectsInCacheWithExternalReferences, IN, double, currentTime, + I_Method1(void, updateTimeStampOfObjectsInCacheWithExternalReferences, IN, const osg::FrameStamp &, frameStamp, Properties::NON_VIRTUAL, - __void__updateTimeStampOfObjectsInCacheWithExternalReferences__double, + __void__updateTimeStampOfObjectsInCacheWithExternalReferences__C5_osg_FrameStamp_R1, "For each object in the cache which has an reference count greater than 1 (and therefore referenced by elsewhere in the application) set the time stamp for that object in the cache to specified time. ", - "This would typically be called once per frame by applications which are doing database paging, and need to prune objects that are no longer required. Time value is time in seconds. "); - I_Method1(void, removeExpiredObjectsInCache, IN, double, expiryTime, + "This would typically be called once per frame by applications which are doing database paging, and need to prune objects that are no longer required. The time used is taken from the FrameStamp::getReferenceTime(). "); + I_Method1(void, removeExpiredObjectsInCache, IN, const osg::FrameStamp &, frameStamp, Properties::NON_VIRTUAL, - __void__removeExpiredObjectsInCache__double, + __void__removeExpiredObjectsInCache__C5_osg_FrameStamp_R1, "Removed object in the cache which have a time stamp at or before the specified expiry time. ", - "This would typically be called once per frame by applications which are doing database paging, and need to prune objects that are no longer required, and called after the a called after the call to updateTimeStampOfObjectsInCacheWithExternalReferences(currentTime). Note, the currentTime is not the expiryTime, one would typically set the expiry time to a fixed amount of time before currentTime, such as expiryTime = currentTime-10.0. Time value is time in seconds. "); + "This would typically be called once per frame by applications which are doing database paging, and need to prune objects that are no longer required, and called after the a called after the call to updateTimeStampOfObjectsInCacheWithExternalReferences(frameStamp). "); + I_Method1(void, setExpiryDelay, IN, double, expiryDelay, + Properties::NON_VIRTUAL, + __void__setExpiryDelay__double, + "set hint to viewer code calling removeExpiredObjectsInCache to specify how long it should give before expiring objects in Registry cache, ", + ""); + I_Method0(double, getExpiryDelay, + Properties::NON_VIRTUAL, + __double__getExpiryDelay, + "", + ""); I_Method0(void, clearObjectCache, Properties::NON_VIRTUAL, __void__clearObjectCache, @@ -676,6 +687,9 @@ BEGIN_OBJECT_REFLECTOR(osgDB::Registry) I_SimpleProperty(const osgDB::FilePathList &, DataFilePathList, __C5_FilePathList_R1__getDataFilePathList, __void__setDataFilePathList__C5_FilePathList_R1); + I_SimpleProperty(double, ExpiryDelay, + __double__getExpiryDelay, + __void__setExpiryDelay__double); I_SimpleProperty(osgDB::FileCache *, FileCache, __FileCache_P1__getFileCache, __void__setFileCache__FileCache_P1); diff --git a/src/osgWrappers/osgViewer/Scene.cpp b/src/osgWrappers/osgViewer/Scene.cpp index 61177bf17..4c69f32ca 100644 --- a/src/osgWrappers/osgViewer/Scene.cpp +++ b/src/osgWrappers/osgViewer/Scene.cpp @@ -11,6 +11,7 @@ #include #include +#include #include #include #include @@ -71,6 +72,11 @@ BEGIN_OBJECT_REFLECTOR(osgViewer::Scene) __C5_osgDB_ImagePager_P1__getImagePager, "", ""); + I_Method1(void, updateSceneGraph, IN, osg::NodeVisitor &, updateVisitor, + Properties::NON_VIRTUAL, + __void__updateSceneGraph__osg_NodeVisitor_R1, + "", + ""); I_StaticMethod1(osgViewer::Scene *, getScene, IN, osg::Node *, node, __Scene_P1__getScene__osg_Node_P1_S, "Get the Scene object that has the specified node assigned to it. ",