############################################################################# # # # GenWrapper Configuration File # # # ############################################################################# configure library "osgFX" dependency unix "-losgUtil -losgDB" end configure library "osgParticle" dependency unix "-losgUtil -losgDB" end configure library "osgGA" dependency unix "-losgUtil" end configure library "osgSim" dependency unix "-losgUtil -losgText -losgDB" end configure library "osgTerrain" dependency win32-debug "gdal_iD.lib" dependency win32-release "gdal_i.lib" dependency unix "-losgDB -losgUtil -losgFX" end configure library "osgText" dependency unix "-losgDB" end configure library "osgViewer" dependency unix "-losgUtil -losgDB -losgGA -losgText" end ############################################################################# ignore file "osgViewer/api/X11/GraphicsWindowX11" ignore file "osgViewer/api/Win32/GraphicsWindowWin32" ignore file "osgViewer/api/Cocoa/GraphicsWindowCocoa" suppress reflector "CPluginFunction" suppress reflector "PluginFunctionProxy" ############################################################################# configure file /osg\/GraphicsContext/ emit before "#include " end ############################################################################# # add header to Plane, Quat and Vec* files configure file /osg\/(Plane|Quat|(Vec(2|3|4)(f|d|b|ub)))/ emit before "#include " end # add ReaderWriter and Comparator objects to Vec*, Quat and Plane classes configure reflector /osg::(Plane|Quat|(Vec(2|3|4)(f|d|b|ub)))/ readerwriter "osgIntrospection::StdReaderWriter" comparator "osgIntrospection::PartialOrderComparator" end # add StateGraph includes in RenderLeaf.cpp configure file /osgUtil\/RenderLeaf/ emit before "#include " end ############################################################################# # Doxygen fails to detect that std::vector is a base class for # osg::Vector*, so we need to specify that manually configure reflector "osg::VectorGLsizei" add base "std::vector" end configure reflector "osg::VectorGLubyte" add base "std::vector" end configure reflector "osg::VectorGLushort" add base "std::vector" end configure reflector "osg::VectorGLuint" add base "std::vector" end configure reflector "osgText::VectorUInt" add base "std::vector" end ############################################################################# # Doxygen fails to detect that std::vector is a base class for # TemplateArray<> and TemplateIndexArray<> templates, so we need # to specify that manually configure reflector /osg::TemplateIndexArray< GLbyte.*/ add base "std::vector" end configure reflector /osg::TemplateIndexArray< GLubyte.*/ add base "std::vector" end configure reflector /osg::TemplateIndexArray< GLshort.*/ add base "std::vector" end configure reflector /osg::TemplateIndexArray< GLushort.*/ add base "std::vector" end configure reflector /osg::TemplateIndexArray< GLint.*/ add base "std::vector" end configure reflector /osg::TemplateIndexArray< GLuint.*/ add base "std::vector" end configure reflector /osg::TemplateArray< GLfloat.*/ add base "std::vector" end configure reflector /osg::TemplateArray< osg::Vec2\s*\,.*/ add base "std::vector" end configure reflector /osg::TemplateArray< osg::Vec3\s*\,.*/ add base "std::vector" end configure reflector /osg::TemplateArray< osg::Vec4\s*\,.*/ add base "std::vector" end configure reflector /osg::TemplateArray< osg::Vec2b\s*\,.*/ add base "std::vector" end configure reflector /osg::TemplateArray< osg::Vec3b\s*\,.*/ add base "std::vector" end configure reflector /osg::TemplateArray< osg::Vec4b\s*\,.*/ add base "std::vector" end configure reflector /osg::TemplateArray< osg::Vec2s\s*\,.*/ add base "std::vector" end configure reflector /osg::TemplateArray< osg::Vec3s\s*\,.*/ add base "std::vector" end configure reflector /osg::TemplateArray< osg::Vec4s\s*\,.*/ add base "std::vector" end configure reflector /osg::TemplateArray< osg::Vec4ub\s*\,.*/ add base "std::vector" end configure file "osg/Array" emit after " STD_VECTOR_REFLECTOR(std::vector); STD_VECTOR_REFLECTOR(std::vector); STD_VECTOR_REFLECTOR(std::vector); STD_VECTOR_REFLECTOR(std::vector); STD_VECTOR_REFLECTOR(std::vector); STD_VECTOR_REFLECTOR(std::vector); STD_VECTOR_REFLECTOR(std::vector); STD_VECTOR_REFLECTOR(std::vector); STD_VECTOR_REFLECTOR(std::vector); STD_VECTOR_REFLECTOR(std::vector); STD_VECTOR_REFLECTOR(std::vector); STD_VECTOR_REFLECTOR(std::vector); STD_VECTOR_REFLECTOR(std::vector); STD_VECTOR_REFLECTOR(std::vector); STD_VECTOR_REFLECTOR(std::vector); STD_VECTOR_REFLECTOR(std::vector); " end ############################################################################# # StateSet and related types need some advanced tweaking configure reflector "std::map< osg::StateAttribute::GLMode, osg::StateAttribute::GLModeValue >" replace with "STD_MAP_REFLECTOR_WITH_TYPES(std::map< osg::StateAttribute::GLMode COMMA osg::StateAttribute::GLModeValue >, osg::StateAttribute::GLMode, osg::StateAttribute::Values);" end configure reflector "osg::StateSet" # remove indexed property "Mode" because its index would not belong to a # finite set of values configure property "Mode" replace with "" end end configure reflector "osg::Geometry" # define the count method for some Property configure property "TexCoordData" count_method "__unsigned_int__getNumTexCoordArrays" end configure property "TexCoordIndices" count_method "__unsigned_int__getNumTexCoordArrays" end configure property "VertexAttribBinding" count_method "__unsigned_int__getNumVertexAttribArrays" end configure property "VertexAttribData" count_method "__unsigned_int__getNumVertexAttribArrays" end configure property "VertexAttribIndices" count_method "__unsigned_int__getNumVertexAttribArrays" end configure property "VertexAttribNormalize" count_method "__unsigned_int__getNumVertexAttribArrays" end end ############################################################################# # Doxygen fails to detect that /osg::Texture(1D|2D|3D|Rectangle)/ and # osgText::Font::GlyphTexture are not-abstract class, so we need # to specify that manually configure reflector /osg::Texture(1D|2D|3D|Rectangle)/ object-type end configure reflector "osgText::Font::GlyphTexture" object-type end ############################################################################# # must suppress reflector for osgDB::Output because some of its methods # are not supported by osgIntrospection (they return non-const references) suppress reflector "osgDB::Output" ############################################################################# # some types are incorrectly detected as value type or object type. Here we # specify the type kind explicitly configure reflector "OpenThreads::Mutex" object-type end configure reflector "OpenThreads::Condition" object-type end configure reflector "OpenThreads::Block" object-type end configure reflector "OpenThreads::BlockCount" object-type end configure reflector "OpenThreads::Barrier" object-type end configure reflector "OpenThreads::ReentrantMutex" object-type end configure reflector "OpenThreads::ReadWriteMutex" object-type end configure reflector "osg::DeleteHandler" object-type end configure reflector "osg::GraphicsContext" abstract-object-type end ############################################################################# # Suppress nested nested class method configure reflector "osgShadow::OccluderGeometry" configure method /.*_Edge_.*/ replace with "" end end ############################################################################# # Doxygen doesn't parse ReadFunc and WriteFunc correctly... configure reflector "osgDB::DotOsgWrapper::ReadFunc" replace with "TYPE_NAME_ALIAS(bool (*)(osg::Object&,osgDB::Input&), osgDB::DotOsgWrapper::ReadFunc); " end configure reflector "osgDB::DotOsgWrapper::WriteFunc" replace with "TYPE_NAME_ALIAS(bool (*)(const osg::Object&,osgDB::Output&), osgDB::DotOsgWrapper::WriteFunc); " end ############################################################################# # temporary workaround for problems related to ambiguous name resolution suppress reflector "osg::ref_ptr< const osg::StateAttribute >" suppress reflector "osg::ref_ptr< const osgFX::Effect >" ############################################################################# # Doxygen incorrectly parses function typedefs as methods configure reflector "osg::BufferObject::Extensions" configure method "__typedef__void__APIENTRY_P1" replace with "" end configure method "__typedef__GLboolean__APIENTRY_P1" replace with "" end end configure reflector "osg::Drawable::Extensions" configure method "__typedef__void__APIENTRY_P1" replace with "" end configure method "__typedef__GLboolean__APIENTRY_P1" replace with "" end end configure reflector "osg::State" configure method "__typedef__void__APIENTRY_P1" replace with "" end end ############################################################################# # avoid functions that use protected types, since those are not handled # currently configure reflector "osg::Shader" configure method /.*_PerContextShader_.*/ replace with "" end end configure reflector "osg::State" configure method /.*_(ModeStack|AttributeStack|ModeMap|AttributeMap|UniformMap)_.*/ replace with "" end end configure reflector "osgUtil::Optimizer::TextureAtlasBuilder" configure method /.*_Source_.*/ replace with "" end end configure reflector "osgUtil::Tessellator" configure method /.*_VertexPtrToIndexMap_.*/ replace with "" end end configure reflector "osgDB::Registry" configure method /.*_(DynamicLibraryList_iterator|DotOsgWrapperMap)_.*/ replace with "" end end configure reflector "osgText::FadeText" configure method /.*_ViewBlendColou?rMap_.*/ replace with "" end end configure reflector "osgParticle::PrecipitationEffect" configure method /.*_PrecipitationDrawableSet_.*/ replace with "" end end configure reflector "osgManipulator::MotionCommand" configure method /.*_SelectionList_.*/ replace with "" end end