Changed the DatabasePager so that it bypasses the Registry::readNode() method and calls

readNodeImplementation() directly to avoid calling the KdTreeBuilder.   

Updated wrappers.
This commit is contained in:
Robert Osfield 2008-07-06 18:27:10 +00:00
parent 3965fe357b
commit c4e8d6ee42
14 changed files with 214 additions and 115 deletions

View File

@ -227,6 +227,10 @@ class OSG_EXPORT KdTreeBuilder : public osg::NodeVisitor
KdTreeBuilder(); KdTreeBuilder();
KdTreeBuilder(const KdTreeBuilder& rhs);
virtual KdTreeBuilder* clone() { return new KdTreeBuilder(*this); }
void apply(osg::Geode& geode); void apply(osg::Geode& geode);
KdTree::BuildOptions _buildOptions; KdTree::BuildOptions _buildOptions;

View File

@ -104,6 +104,8 @@ class OSGDB_EXPORT DatabasePager : public osg::NodeVisitor::DatabaseRequestHandl
virtual void run(); virtual void run();
osg::ref_ptr<osg::Node> dpReadRefNodeFile(const std::string& fileName,const ReaderWriter::Options* options);
protected: protected:
virtual ~DatabaseThread(); virtual ~DatabaseThread();

View File

@ -320,7 +320,8 @@ class OSGDB_EXPORT Registry : public osg::Referenced
if (doKdTreeBuilder && _kdTreeBuilder.valid() && result.validNode()) if (doKdTreeBuilder && _kdTreeBuilder.valid() && result.validNode())
{ {
result.getNode()->accept(*_kdTreeBuilder); osg::ref_ptr<osg::KdTreeBuilder> builder = _kdTreeBuilder->clone();
result.getNode()->accept(*builder);
} }
} }

View File

@ -67,8 +67,6 @@ KdTree::KdTree(const KdTree& rhs, const osg::CopyOp& copyop):
bool KdTree::build(BuildOptions& options, osg::Geometry* geometry) bool KdTree::build(BuildOptions& options, osg::Geometry* geometry)
{ {
osg::notify(osg::NOTICE)<<"KdTree::build("<<geometry<<")"<<std::endl;
#ifdef VERBOSE_OUTPUT #ifdef VERBOSE_OUTPUT
osg::notify(osg::NOTICE)<<"osg::KDTreeBuilder::createKDTree()"<<std::endl; osg::notify(osg::NOTICE)<<"osg::KDTreeBuilder::createKDTree()"<<std::endl;
#endif #endif
@ -315,6 +313,12 @@ KdTreeBuilder::KdTreeBuilder():
_kdTreePrototype = new osg::KdTree; _kdTreePrototype = new osg::KdTree;
} }
KdTreeBuilder::KdTreeBuilder(const KdTreeBuilder& rhs):
osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN),
_kdTreePrototype(rhs._kdTreePrototype),
_buildOptions(rhs._buildOptions)
{
}
void KdTreeBuilder::apply(osg::Geode& geode) void KdTreeBuilder::apply(osg::Geode& geode)
{ {

View File

@ -1,8 +1,8 @@
#include <osgDB/DatabasePager> #include <osgDB/DatabasePager>
#include <osgDB/ReadFile>
#include <osgDB/WriteFile> #include <osgDB/WriteFile>
#include <osgDB/FileNameUtils> #include <osgDB/FileNameUtils>
#include <osgDB/FileUtils> #include <osgDB/FileUtils>
#include <osgDB/Registry>
#include <osg/Geode> #include <osg/Geode>
#include <osg/Timer> #include <osg/Timer>
@ -367,6 +367,17 @@ int DatabasePager::DatabaseThread::cancel()
} }
osg::ref_ptr<osg::Node> DatabasePager::DatabaseThread::dpReadRefNodeFile(const std::string& fileName,const ReaderWriter::Options* options)
{
ReaderWriter::ReadResult rr = Registry::instance()->getReadFileCallback() ?
Registry::instance()->getReadFileCallback()->readNode(fileName,options) :
Registry::instance()->readNodeImplementation(fileName,options);
if (rr.validNode()) return rr.getNode();
if (rr.error()) osg::notify(osg::WARN) << rr.message() << std::endl;
return 0;
}
void DatabasePager::DatabaseThread::run() void DatabasePager::DatabaseThread::run()
{ {
osg::notify(osg::INFO)<<_name<<": DatabasePager::DatabaseThread::run"<<std::endl; osg::notify(osg::INFO)<<_name<<": DatabasePager::DatabaseThread::run"<<std::endl;
@ -541,13 +552,13 @@ void DatabasePager::DatabaseThread::run()
// do *not* assume that we only have one DatabasePager, or that reaNodeFile is thread safe... // do *not* assume that we only have one DatabasePager, or that reaNodeFile is thread safe...
static OpenThreads::Mutex s_serialize_readNodeFile_mutex; static OpenThreads::Mutex s_serialize_readNodeFile_mutex;
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(s_serialize_readNodeFile_mutex); OpenThreads::ScopedLock<OpenThreads::Mutex> lock(s_serialize_readNodeFile_mutex);
databaseRequest->_loadedModel = osgDB::readRefNodeFile(databaseRequest->_fileName, databaseRequest->_loadedModel = dpReadRefNodeFile(databaseRequest->_fileName,
databaseRequest->_loadOptions.get()); databaseRequest->_loadOptions.get());
} }
else else
{ {
// assume that we only have one DatabasePager, or that readNodeFile is thread safe... // assume that we only have one DatabasePager, or that readNodeFile is thread safe...
databaseRequest->_loadedModel = osgDB::readRefNodeFile(databaseRequest->_fileName, databaseRequest->_loadedModel = dpReadRefNodeFile(databaseRequest->_fileName,
databaseRequest->_loadOptions.get()); databaseRequest->_loadOptions.get());
} }

View File

@ -54,6 +54,8 @@ static osg::ApplicationUsageProxy Registry_e0(osg::ApplicationUsage::ENVIRONMENT
static osg::ApplicationUsageProxy Registry_e1(osg::ApplicationUsage::ENVIRONMENTAL_VARIABLE,"OSG_LIBRARY_PATH <path>[;path]..","Paths for locating libraries/ plugins"); static osg::ApplicationUsageProxy Registry_e1(osg::ApplicationUsage::ENVIRONMENTAL_VARIABLE,"OSG_LIBRARY_PATH <path>[;path]..","Paths for locating libraries/ plugins");
#endif #endif
static osg::ApplicationUsageProxy Registry_e2(osg::ApplicationUsage::ENVIRONMENTAL_VARIABLE,"OSG_BUILD_KDTREES on/off","Enable/disable the automatic building of KdTrees for each loaded Geometry.");
class Registry::AvailableReaderWriterIterator class Registry::AvailableReaderWriterIterator
{ {

View File

@ -25,6 +25,7 @@
#include <osg/TexEnvCombine> #include <osg/TexEnvCombine>
#include <osg/Program> #include <osg/Program>
#include <osg/Math> #include <osg/Math>
#include <osg/Timer>
using namespace osgTerrain; using namespace osgTerrain;
@ -232,6 +233,8 @@ void GeometryTechnique::generateGeometry(Locator* masterLocator, const osg::Vec3
double i_sampleFactor = 1.0; double i_sampleFactor = 1.0;
double j_sampleFactor = 1.0; double j_sampleFactor = 1.0;
osg::notify(osg::NOTICE)<<"Sample ratio="<<sampleRatio<<std::endl;
if (sampleRatio!=1.0f) if (sampleRatio!=1.0f)
{ {
@ -647,9 +650,14 @@ void GeometryTechnique::generateGeometry(Locator* masterLocator, const osg::Vec3
if (osgDB::Registry::instance()->getBuildKdTreesHint()==osgDB::ReaderWriter::Options::BUILD_KDTREES && if (osgDB::Registry::instance()->getBuildKdTreesHint()==osgDB::ReaderWriter::Options::BUILD_KDTREES &&
osgDB::Registry::instance()->getKdTreeBuilder()) osgDB::Registry::instance()->getKdTreeBuilder())
{ {
osg::Timer_t before = osg::Timer::instance()->tick();
//osg::notify(osg::NOTICE)<<"osgTerrain::GeometryTechnique::build kd tree"<<std::endl; //osg::notify(osg::NOTICE)<<"osgTerrain::GeometryTechnique::build kd tree"<<std::endl;
buffer._geode->accept(*(osgDB::Registry::instance()->getKdTreeBuilder())); osg::ref_ptr<osg::KdTreeBuilder> builder = osgDB::Registry::instance()->getKdTreeBuilder()->clone();
//osg::notify(osg::NOTICE)<<"after"<<std::endl; buffer._geode->accept(*builder);
osg::Timer_t after = osg::Timer::instance()->tick();
osg::notify(osg::NOTICE)<<"KdTree build time "<<osg::Timer::instance()->delta_m(before, after)<<std::endl;
} }
} }

View File

@ -110,21 +110,6 @@ BEGIN_OBJECT_REFLECTOR(osg::Geometry)
__C5_Array_P1__getVertexArray, __C5_Array_P1__getVertexArray,
"", "",
""); "");
I_Method1(void, setVertexIndices, IN, osg::IndexArray *, array,
Properties::NON_VIRTUAL,
__void__setVertexIndices__IndexArray_P1,
"",
"");
I_Method0(osg::IndexArray *, getVertexIndices,
Properties::NON_VIRTUAL,
__IndexArray_P1__getVertexIndices,
"",
"");
I_Method0(const osg::IndexArray *, getVertexIndices,
Properties::NON_VIRTUAL,
__C5_IndexArray_P1__getVertexIndices,
"",
"");
I_Method1(void, setVertexData, IN, const osg::Geometry::ArrayData &, arrayData, I_Method1(void, setVertexData, IN, const osg::Geometry::ArrayData &, arrayData,
Properties::NON_VIRTUAL, Properties::NON_VIRTUAL,
__void__setVertexData__C5_ArrayData_R1, __void__setVertexData__C5_ArrayData_R1,
@ -165,21 +150,6 @@ BEGIN_OBJECT_REFLECTOR(osg::Geometry)
__C5_Array_P1__getNormalArray, __C5_Array_P1__getNormalArray,
"", "",
""); "");
I_Method1(void, setNormalIndices, IN, osg::IndexArray *, array,
Properties::NON_VIRTUAL,
__void__setNormalIndices__IndexArray_P1,
"",
"");
I_Method0(osg::IndexArray *, getNormalIndices,
Properties::NON_VIRTUAL,
__IndexArray_P1__getNormalIndices,
"",
"");
I_Method0(const osg::IndexArray *, getNormalIndices,
Properties::NON_VIRTUAL,
__C5_IndexArray_P1__getNormalIndices,
"",
"");
I_Method1(void, setNormalData, IN, const osg::Geometry::ArrayData &, arrayData, I_Method1(void, setNormalData, IN, const osg::Geometry::ArrayData &, arrayData,
Properties::NON_VIRTUAL, Properties::NON_VIRTUAL,
__void__setNormalData__C5_ArrayData_R1, __void__setNormalData__C5_ArrayData_R1,
@ -220,21 +190,6 @@ BEGIN_OBJECT_REFLECTOR(osg::Geometry)
__C5_Array_P1__getColorArray, __C5_Array_P1__getColorArray,
"", "",
""); "");
I_Method1(void, setColorIndices, IN, osg::IndexArray *, array,
Properties::NON_VIRTUAL,
__void__setColorIndices__IndexArray_P1,
"",
"");
I_Method0(osg::IndexArray *, getColorIndices,
Properties::NON_VIRTUAL,
__IndexArray_P1__getColorIndices,
"",
"");
I_Method0(const osg::IndexArray *, getColorIndices,
Properties::NON_VIRTUAL,
__C5_IndexArray_P1__getColorIndices,
"",
"");
I_Method1(void, setColorData, IN, const osg::Geometry::ArrayData &, arrayData, I_Method1(void, setColorData, IN, const osg::Geometry::ArrayData &, arrayData,
Properties::NON_VIRTUAL, Properties::NON_VIRTUAL,
__void__setColorData__C5_ArrayData_R1, __void__setColorData__C5_ArrayData_R1,
@ -275,21 +230,6 @@ BEGIN_OBJECT_REFLECTOR(osg::Geometry)
__C5_Array_P1__getSecondaryColorArray, __C5_Array_P1__getSecondaryColorArray,
"", "",
""); "");
I_Method1(void, setSecondaryColorIndices, IN, osg::IndexArray *, array,
Properties::NON_VIRTUAL,
__void__setSecondaryColorIndices__IndexArray_P1,
"",
"");
I_Method0(osg::IndexArray *, getSecondaryColorIndices,
Properties::NON_VIRTUAL,
__IndexArray_P1__getSecondaryColorIndices,
"",
"");
I_Method0(const osg::IndexArray *, getSecondaryColorIndices,
Properties::NON_VIRTUAL,
__C5_IndexArray_P1__getSecondaryColorIndices,
"",
"");
I_Method1(void, setSecondaryColorData, IN, const osg::Geometry::ArrayData &, arrayData, I_Method1(void, setSecondaryColorData, IN, const osg::Geometry::ArrayData &, arrayData,
Properties::NON_VIRTUAL, Properties::NON_VIRTUAL,
__void__setSecondaryColorData__C5_ArrayData_R1, __void__setSecondaryColorData__C5_ArrayData_R1,
@ -330,21 +270,6 @@ BEGIN_OBJECT_REFLECTOR(osg::Geometry)
__C5_Array_P1__getFogCoordArray, __C5_Array_P1__getFogCoordArray,
"", "",
""); "");
I_Method1(void, setFogCoordIndices, IN, osg::IndexArray *, array,
Properties::NON_VIRTUAL,
__void__setFogCoordIndices__IndexArray_P1,
"",
"");
I_Method0(osg::IndexArray *, getFogCoordIndices,
Properties::NON_VIRTUAL,
__IndexArray_P1__getFogCoordIndices,
"",
"");
I_Method0(const osg::IndexArray *, getFogCoordIndices,
Properties::NON_VIRTUAL,
__C5_IndexArray_P1__getFogCoordIndices,
"",
"");
I_Method1(void, setFogCoordData, IN, const osg::Geometry::ArrayData &, arrayData, I_Method1(void, setFogCoordData, IN, const osg::Geometry::ArrayData &, arrayData,
Properties::NON_VIRTUAL, Properties::NON_VIRTUAL,
__void__setFogCoordData__C5_ArrayData_R1, __void__setFogCoordData__C5_ArrayData_R1,
@ -375,21 +300,6 @@ BEGIN_OBJECT_REFLECTOR(osg::Geometry)
__C5_Array_P1__getTexCoordArray__unsigned_int, __C5_Array_P1__getTexCoordArray__unsigned_int,
"", "",
""); "");
I_Method2(void, setTexCoordIndices, IN, unsigned int, unit, IN, osg::IndexArray *, x,
Properties::NON_VIRTUAL,
__void__setTexCoordIndices__unsigned_int__IndexArray_P1,
"",
"");
I_Method1(osg::IndexArray *, getTexCoordIndices, IN, unsigned int, unit,
Properties::NON_VIRTUAL,
__IndexArray_P1__getTexCoordIndices__unsigned_int,
"",
"");
I_Method1(const osg::IndexArray *, getTexCoordIndices, IN, unsigned int, unit,
Properties::NON_VIRTUAL,
__C5_IndexArray_P1__getTexCoordIndices__unsigned_int,
"",
"");
I_Method2(void, setTexCoordData, IN, unsigned int, index, IN, const osg::Geometry::ArrayData &, arrayData, I_Method2(void, setTexCoordData, IN, unsigned int, index, IN, const osg::Geometry::ArrayData &, arrayData,
Properties::NON_VIRTUAL, Properties::NON_VIRTUAL,
__void__setTexCoordData__unsigned_int__C5_ArrayData_R1, __void__setTexCoordData__unsigned_int__C5_ArrayData_R1,
@ -435,21 +345,6 @@ BEGIN_OBJECT_REFLECTOR(osg::Geometry)
__C5_Array_P1__getVertexAttribArray__unsigned_int, __C5_Array_P1__getVertexAttribArray__unsigned_int,
"", "",
""); "");
I_Method2(void, setVertexAttribIndices, IN, unsigned int, index, IN, osg::IndexArray *, array,
Properties::NON_VIRTUAL,
__void__setVertexAttribIndices__unsigned_int__IndexArray_P1,
"",
"");
I_Method1(osg::IndexArray *, getVertexAttribIndices, IN, unsigned int, index,
Properties::NON_VIRTUAL,
__IndexArray_P1__getVertexAttribIndices__unsigned_int,
"",
"");
I_Method1(const osg::IndexArray *, getVertexAttribIndices, IN, unsigned int, index,
Properties::NON_VIRTUAL,
__C5_IndexArray_P1__getVertexAttribIndices__unsigned_int,
"",
"");
I_Method2(void, setVertexAttribBinding, IN, unsigned int, index, IN, osg::Geometry::AttributeBinding, ab, I_Method2(void, setVertexAttribBinding, IN, unsigned int, index, IN, osg::Geometry::AttributeBinding, ab,
Properties::NON_VIRTUAL, Properties::NON_VIRTUAL,
__void__setVertexAttribBinding__unsigned_int__AttributeBinding, __void__setVertexAttribBinding__unsigned_int__AttributeBinding,
@ -555,6 +450,111 @@ BEGIN_OBJECT_REFLECTOR(osg::Geometry)
__unsigned_int__getPrimitiveSetIndex__C5_PrimitiveSet_P1, __unsigned_int__getPrimitiveSetIndex__C5_PrimitiveSet_P1,
"Get the index number of a primitive set, return a value between 0 and getNumPrimitiveSet()-1 if found, if not found then return getNumPrimitiveSet(). ", "Get the index number of a primitive set, return a value between 0 and getNumPrimitiveSet()-1 if found, if not found then return getNumPrimitiveSet(). ",
"When checking for a valid find value use if ((value=geometry->getPrimitiveSetIndex(primitive))!=geometry.getNumPrimitiveSet()) "); "When checking for a valid find value use if ((value=geometry->getPrimitiveSetIndex(primitive))!=geometry.getNumPrimitiveSet()) ");
I_Method1(void, setVertexIndices, IN, osg::IndexArray *, array,
Properties::NON_VIRTUAL,
__void__setVertexIndices__IndexArray_P1,
"deprecated - forces OpenGL slow path, just kept for backwards compatibility. ",
"");
I_Method0(osg::IndexArray *, getVertexIndices,
Properties::NON_VIRTUAL,
__IndexArray_P1__getVertexIndices,
"",
"");
I_Method0(const osg::IndexArray *, getVertexIndices,
Properties::NON_VIRTUAL,
__C5_IndexArray_P1__getVertexIndices,
"",
"");
I_Method1(void, setNormalIndices, IN, osg::IndexArray *, array,
Properties::NON_VIRTUAL,
__void__setNormalIndices__IndexArray_P1,
"deprecated - forces OpenGL slow path, just kept for backwards compatibility. ",
"");
I_Method0(osg::IndexArray *, getNormalIndices,
Properties::NON_VIRTUAL,
__IndexArray_P1__getNormalIndices,
"",
"");
I_Method0(const osg::IndexArray *, getNormalIndices,
Properties::NON_VIRTUAL,
__C5_IndexArray_P1__getNormalIndices,
"",
"");
I_Method1(void, setColorIndices, IN, osg::IndexArray *, array,
Properties::NON_VIRTUAL,
__void__setColorIndices__IndexArray_P1,
"deprecated - forces OpenGL slow path, just kept for backwards compatibility. ",
"");
I_Method0(osg::IndexArray *, getColorIndices,
Properties::NON_VIRTUAL,
__IndexArray_P1__getColorIndices,
"",
"");
I_Method0(const osg::IndexArray *, getColorIndices,
Properties::NON_VIRTUAL,
__C5_IndexArray_P1__getColorIndices,
"",
"");
I_Method1(void, setSecondaryColorIndices, IN, osg::IndexArray *, array,
Properties::NON_VIRTUAL,
__void__setSecondaryColorIndices__IndexArray_P1,
"deprecated - forces OpenGL slow path, just kept for backwards compatibility. ",
"");
I_Method0(osg::IndexArray *, getSecondaryColorIndices,
Properties::NON_VIRTUAL,
__IndexArray_P1__getSecondaryColorIndices,
"",
"");
I_Method0(const osg::IndexArray *, getSecondaryColorIndices,
Properties::NON_VIRTUAL,
__C5_IndexArray_P1__getSecondaryColorIndices,
"",
"");
I_Method1(void, setFogCoordIndices, IN, osg::IndexArray *, array,
Properties::NON_VIRTUAL,
__void__setFogCoordIndices__IndexArray_P1,
"deprecated - forces OpenGL slow path, just kept for backwards compatibility. ",
"");
I_Method0(osg::IndexArray *, getFogCoordIndices,
Properties::NON_VIRTUAL,
__IndexArray_P1__getFogCoordIndices,
"",
"");
I_Method0(const osg::IndexArray *, getFogCoordIndices,
Properties::NON_VIRTUAL,
__C5_IndexArray_P1__getFogCoordIndices,
"",
"");
I_Method2(void, setTexCoordIndices, IN, unsigned int, unit, IN, osg::IndexArray *, x,
Properties::NON_VIRTUAL,
__void__setTexCoordIndices__unsigned_int__IndexArray_P1,
"deprecated - forces OpenGL slow path, just kept for backwards compatibility. ",
"");
I_Method1(osg::IndexArray *, getTexCoordIndices, IN, unsigned int, unit,
Properties::NON_VIRTUAL,
__IndexArray_P1__getTexCoordIndices__unsigned_int,
"",
"");
I_Method1(const osg::IndexArray *, getTexCoordIndices, IN, unsigned int, unit,
Properties::NON_VIRTUAL,
__C5_IndexArray_P1__getTexCoordIndices__unsigned_int,
"",
"");
I_Method2(void, setVertexAttribIndices, IN, unsigned int, index, IN, osg::IndexArray *, array,
Properties::NON_VIRTUAL,
__void__setVertexAttribIndices__unsigned_int__IndexArray_P1,
"deprecated - forces OpenGL slow path, just kept for backwards compatibility. ",
"");
I_Method1(osg::IndexArray *, getVertexAttribIndices, IN, unsigned int, index,
Properties::NON_VIRTUAL,
__IndexArray_P1__getVertexAttribIndices__unsigned_int,
"",
"");
I_Method1(const osg::IndexArray *, getVertexAttribIndices, IN, unsigned int, index,
Properties::NON_VIRTUAL,
__C5_IndexArray_P1__getVertexAttribIndices__unsigned_int,
"",
"");
I_Method1(void, setUseVertexBufferObjects, IN, bool, flag, I_Method1(void, setUseVertexBufferObjects, IN, bool, flag,
Properties::VIRTUAL, Properties::VIRTUAL,
__void__setUseVertexBufferObjects__bool, __void__setUseVertexBufferObjects__bool,

View File

@ -449,6 +449,11 @@ BEGIN_OBJECT_REFLECTOR(osgDB::DatabasePager::DatabaseThread)
__void__run, __void__run,
"Thread's run method. ", "Thread's run method. ",
"Must be implemented by derived classes. This is where the action happens. "); "Must be implemented by derived classes. This is where the action happens. ");
I_Method2(osg::ref_ptr< osg::Node >, dpReadRefNodeFile, IN, const std::string &, fileName, IN, const osgDB::ReaderWriter::Options *, options,
Properties::NON_VIRTUAL,
__osg_ref_ptrT1_osg_Node___dpReadRefNodeFile__C5_std_string_R1__C5_ReaderWriter_Options_P1,
"",
"");
I_SimpleProperty(bool, Done, I_SimpleProperty(bool, Done,
__bool__getDone, __bool__getDone,
__void__setDone__bool); __void__setDone__bool);

View File

@ -198,6 +198,13 @@ BEGIN_ENUM_REFLECTOR(osgDB::ReaderWriter::Options::CacheHintOptions)
I_EnumLabel(osgDB::ReaderWriter::Options::CACHE_ALL); I_EnumLabel(osgDB::ReaderWriter::Options::CACHE_ALL);
END_REFLECTOR END_REFLECTOR
BEGIN_ENUM_REFLECTOR(osgDB::ReaderWriter::Options::BuildKdTreesHint)
I_DeclaringFile("osgDB/ReaderWriter");
I_EnumLabel(osgDB::ReaderWriter::Options::NO_PREFERENCE);
I_EnumLabel(osgDB::ReaderWriter::Options::DO_NOT_BUILD_KDTREES);
I_EnumLabel(osgDB::ReaderWriter::Options::BUILD_KDTREES);
END_REFLECTOR
BEGIN_OBJECT_REFLECTOR(osgDB::ReaderWriter::Options) BEGIN_OBJECT_REFLECTOR(osgDB::ReaderWriter::Options)
I_DeclaringFile("osgDB/ReaderWriter"); I_DeclaringFile("osgDB/ReaderWriter");
I_BaseType(osg::Object); I_BaseType(osg::Object);
@ -273,6 +280,16 @@ BEGIN_OBJECT_REFLECTOR(osgDB::ReaderWriter::Options)
__CacheHintOptions__getObjectCacheHint, __CacheHintOptions__getObjectCacheHint,
"Get whether the Registry::ObjectCache should be used by default. ", "Get whether the Registry::ObjectCache should be used by default. ",
""); "");
I_Method1(void, setBuildKdTreesHint, IN, osgDB::ReaderWriter::Options::BuildKdTreesHint, hint,
Properties::NON_VIRTUAL,
__void__setBuildKdTreesHint__BuildKdTreesHint,
"Set whether the KdTrees should be built for geometry in the loader model. ",
"");
I_Method0(osgDB::ReaderWriter::Options::BuildKdTreesHint, getBuildKdTreesHint,
Properties::NON_VIRTUAL,
__BuildKdTreesHint__getBuildKdTreesHint,
"Get whether the KdTrees should be built for geometry in the loader model. ",
"");
I_Method2(void, setPluginData, IN, const std::string &, s, IN, void *, v, I_Method2(void, setPluginData, IN, const std::string &, s, IN, void *, v,
Properties::NON_VIRTUAL, Properties::NON_VIRTUAL,
__void__setPluginData__C5_std_string_R1__void_P1, __void__setPluginData__C5_std_string_R1__void_P1,
@ -293,6 +310,9 @@ BEGIN_OBJECT_REFLECTOR(osgDB::ReaderWriter::Options)
__void__removePluginData__C5_std_string_R1, __void__removePluginData__C5_std_string_R1,
"Remove a value from the PluginData. ", "Remove a value from the PluginData. ",
""); "");
I_SimpleProperty(osgDB::ReaderWriter::Options::BuildKdTreesHint, BuildKdTreesHint,
__BuildKdTreesHint__getBuildKdTreesHint,
__void__setBuildKdTreesHint__BuildKdTreesHint);
I_SimpleProperty(const std::string &, DatabasePath, I_SimpleProperty(const std::string &, DatabasePath,
0, 0,
__void__setDatabasePath__C5_std_string_R1); __void__setDatabasePath__C5_std_string_R1);

View File

@ -13,6 +13,7 @@
#include <osg/ArgumentParser> #include <osg/ArgumentParser>
#include <osg/Drawable> #include <osg/Drawable>
#include <osg/Image> #include <osg/Image>
#include <osg/KdTree>
#include <osg/Node> #include <osg/Node>
#include <osg/Object> #include <osg/Object>
#include <osg/Shader> #include <osg/Shader>
@ -330,6 +331,31 @@ BEGIN_OBJECT_REFLECTOR(osgDB::Registry)
__ReaderWriter_WriteResult__writeShaderImplementation__C5_osg_Shader_R1__C5_std_string_R1__C5_ReaderWriter_Options_P1, __ReaderWriter_WriteResult__writeShaderImplementation__C5_osg_Shader_R1__C5_std_string_R1__C5_ReaderWriter_Options_P1,
"", "",
""); "");
I_Method2(void, buildKdTreeIfRequired, IN, osgDB::ReaderWriter::ReadResult &, result, IN, const osgDB::ReaderWriter::Options *, options,
Properties::NON_VIRTUAL,
__void__buildKdTreeIfRequired__ReaderWriter_ReadResult_R1__C5_ReaderWriter_Options_P1,
"",
"");
I_Method1(void, setBuildKdTreesHint, IN, osgDB::ReaderWriter::Options::BuildKdTreesHint, hint,
Properties::NON_VIRTUAL,
__void__setBuildKdTreesHint__ReaderWriter_Options_BuildKdTreesHint,
"",
"");
I_Method0(osgDB::ReaderWriter::Options::BuildKdTreesHint, getBuildKdTreesHint,
Properties::NON_VIRTUAL,
__ReaderWriter_Options_BuildKdTreesHint__getBuildKdTreesHint,
"",
"");
I_Method1(void, setKdTreeBuilder, IN, osg::KdTreeBuilder *, builder,
Properties::NON_VIRTUAL,
__void__setKdTreeBuilder__osg_KdTreeBuilder_P1,
"",
"");
I_Method0(osg::KdTreeBuilder *, getKdTreeBuilder,
Properties::NON_VIRTUAL,
__osg_KdTreeBuilder_P1__getKdTreeBuilder,
"",
"");
I_Method1(void, setCreateNodeFromImage, IN, bool, flag, I_Method1(void, setCreateNodeFromImage, IN, bool, flag,
Properties::NON_VIRTUAL, Properties::NON_VIRTUAL,
__void__setCreateNodeFromImage__bool, __void__setCreateNodeFromImage__bool,
@ -528,6 +554,9 @@ BEGIN_OBJECT_REFLECTOR(osgDB::Registry)
__ReaderWriter_ReadResult__readImplementation__C5_ReadFunctor_R1__bool, __ReaderWriter_ReadResult__readImplementation__C5_ReadFunctor_R1__bool,
"", "",
""); "");
I_SimpleProperty(osgDB::ReaderWriter::Options::BuildKdTreesHint, BuildKdTreesHint,
__ReaderWriter_Options_BuildKdTreesHint__getBuildKdTreesHint,
__void__setBuildKdTreesHint__ReaderWriter_Options_BuildKdTreesHint);
I_SimpleProperty(bool, CreateNodeFromImage, I_SimpleProperty(bool, CreateNodeFromImage,
__bool__getCreateNodeFromImage, __bool__getCreateNodeFromImage,
__void__setCreateNodeFromImage__bool); __void__setCreateNodeFromImage__bool);
@ -537,6 +566,9 @@ BEGIN_OBJECT_REFLECTOR(osgDB::Registry)
I_SimpleProperty(osgDB::DatabasePager *, DatabasePager, I_SimpleProperty(osgDB::DatabasePager *, DatabasePager,
__DatabasePager_P1__getDatabasePager, __DatabasePager_P1__getDatabasePager,
__void__setDatabasePager__DatabasePager_P1); __void__setDatabasePager__DatabasePager_P1);
I_SimpleProperty(osg::KdTreeBuilder *, KdTreeBuilder,
__osg_KdTreeBuilder_P1__getKdTreeBuilder,
__void__setKdTreeBuilder__osg_KdTreeBuilder_P1);
I_SimpleProperty(const osgDB::FilePathList &, LibraryFilePathList, I_SimpleProperty(const osgDB::FilePathList &, LibraryFilePathList,
__C5_FilePathList_R1__getLibraryFilePathList, __C5_FilePathList_R1__getLibraryFilePathList,
__void__setLibraryFilePathList__C5_FilePathList_R1); __void__setLibraryFilePathList__C5_FilePathList_R1);

View File

@ -126,6 +126,12 @@ BEGIN_OBJECT_REFLECTOR(osgGA::DriveManipulator)
__double__getHeight, __double__getHeight,
"", "",
""); "");
I_ProtectedMethod4(bool, intersect, IN, const osg::Vec3d &, start, IN, const osg::Vec3d &, end, IN, osg::Vec3d &, intersection, IN, osg::Vec3d &, normal,
Properties::NON_VIRTUAL,
Properties::CONST,
__bool__intersect__C5_osg_Vec3d_R1__C5_osg_Vec3d_R1__osg_Vec3d_R1__osg_Vec3d_R1,
"",
"");
I_ProtectedMethod0(void, flushMouseEventStack, I_ProtectedMethod0(void, flushMouseEventStack,
Properties::NON_VIRTUAL, Properties::NON_VIRTUAL,
Properties::NON_CONST, Properties::NON_CONST,

View File

@ -118,6 +118,12 @@ BEGIN_OBJECT_REFLECTOR(osgGA::TerrainManipulator)
__void__getUsage__osg_ApplicationUsage_R1, __void__getUsage__osg_ApplicationUsage_R1,
"Get the keyboard and mouse usage of this manipulator. ", "Get the keyboard and mouse usage of this manipulator. ",
""); "");
I_ProtectedMethod3(bool, intersect, IN, const osg::Vec3d &, start, IN, const osg::Vec3d &, end, IN, osg::Vec3d &, intersection,
Properties::NON_VIRTUAL,
Properties::CONST,
__bool__intersect__C5_osg_Vec3d_R1__C5_osg_Vec3d_R1__osg_Vec3d_R1,
"",
"");
I_ProtectedMethod0(void, flushMouseEventStack, I_ProtectedMethod0(void, flushMouseEventStack,
Properties::NON_VIRTUAL, Properties::NON_VIRTUAL,
Properties::NON_CONST, Properties::NON_CONST,

View File

@ -187,5 +187,3 @@ END_REFLECTOR
STD_SET_REFLECTOR(std::multiset< osgUtil::LineSegmentIntersector::Intersection >) STD_SET_REFLECTOR(std::multiset< osgUtil::LineSegmentIntersector::Intersection >)
STD_VECTOR_REFLECTOR(std::vector< double >)