15 #define OSGDB_OPTIONS 1
17 #include <osgDB/Callbacks>
18 #include <osgDB/ObjectCache>
19 #include <osg/ObserverNodePath>
45 CACHE_HEIGHTFIELDS = 1<<2,
48 CACHE_ARCHIVES = 1<<3,
57 CACHE_ALL = CACHE_NODES |
70 FLOAT_PRECISION_ALL = 0,
72 DOUBLE_PRECISION_VERTEX = 1<<0,
73 DOUBLE_PRECISION_NORMAL = 1<<1,
74 DOUBLE_PRECISION_COLOR = 1<<2,
75 DOUBLE_PRECISION_SECONDARY_COLOR = 1<<3,
76 DOUBLE_PRECISION_FOG_COORD = 1<<4,
77 DOUBLE_PRECISION_TEX_COORD = 1<<5,
78 DOUBLE_PRECISION_VERTEX_ATTRIB = 1<<6,
80 DOUBLE_PRECISION_ALL = DOUBLE_PRECISION_VERTEX |
81 DOUBLE_PRECISION_NORMAL |
82 DOUBLE_PRECISION_COLOR |
83 DOUBLE_PRECISION_SECONDARY_COLOR |
84 DOUBLE_PRECISION_FOG_COORD |
85 DOUBLE_PRECISION_TEX_COORD |
86 DOUBLE_PRECISION_VERTEX_ATTRIB
100 _objectCacheHint(CACHE_ARCHIVES),
101 _precisionHint(FLOAT_PRECISION_ALL),
102 _buildKdTreesHint(NO_PREFERENCE) {}
107 _objectCacheHint(CACHE_ARCHIVES),
108 _precisionHint(FLOAT_PRECISION_ALL),
109 _buildKdTreesHint(NO_PREFERENCE)
111 parsePluginStringData(str);
121 void setOptionString(
const std::string& str) { _str = str; parsePluginStringData(str); }
127 void setDatabasePath(
const std::string& str) { _databasePaths.clear(); _databasePaths.push_back(str); }
170 void setPluginData(
const std::string& s,
void* v)
const { _pluginData[s] = v; }
178 PluginDataMap::const_iterator itr = _pluginData.find(s);
179 return (itr == _pluginData.end()) ? 0 : itr->second;
186 unsigned int getNumPluginData()
const {
return static_cast<unsigned int>(_pluginData.size()); }
198 PluginStringDataMap::const_iterator itr = _pluginStringData.find(s);
199 return (itr == _pluginStringData.end()) ? std::string(
"") : itr->second;
209 void parsePluginStringData(
const std::string& str,
char separator1=
' ',
char separator2=
'=');
290 #endif // OSGDB_OPTIONS
WriteFileCallback * getWriteFileCallback() const
CacheHintOptions
bit mask for setting up which object types get cached by readObject/Image/HeightField/Node(filename) ...
const void * getPluginData(const std::string &s) const
BuildKdTreesHint getBuildKdTreesHint() const
osg::ref_ptr< AuthenticationMap > _authenticationMap
BuildKdTreesHint
range of options of whether to build kdtrees automatically on loading
void setBuildKdTreesHint(BuildKdTreesHint hint)
PrecisionHint getPrecisionHint() const
void setObjectCache(ObjectCache *objectCache)
const AuthenticationMap * getAuthenticationMap() const
CacheHintOptions getObjectCacheHint() const
void setOptionString(const std::string &str)
const FilePathList & getDatabasePathList() const
ReadFileCallback * getReadFileCallback() const
void setReadFileCallback(ReadFileCallback *cb)
void setPluginData(const std::string &s, void *v) const
FileLocationCallback * getFileLocationCallback() const
void * getPluginData(const std::string &s)
void setFileLocationCallback(FileLocationCallback *cb)
const osg::observer_ptr< osg::Node > & getTerrain() const
void setPrecisionHint(PrecisionHint hint)
osg::ref_ptr< WriteFileCallback > _writeFileCallback
Options(const std::string &str)
void removePluginData(const std::string &s) const
T * clone(const T *t, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)
PluginDataMap _pluginData
#define META_Object(library, name)
FilePathList _databasePaths
FileCache * getFileCache() const
BuildKdTreesHint _buildKdTreesHint
ObjectCache * getObjectCache() const
osg::observer_ptr< osg::Node > _terrain
std::string & getPluginStringData(const std::string &s)
void setPluginStringData(const std::string &s, const std::string &v) const
std::deque< std::string > FilePathList
osg::ref_ptr< ReadFileCallback > _readFileCallback
void setDatabasePath(const std::string &str)
const std::string & getOptionString() const
void setFindFileCallback(FindFileCallback *cb)
unsigned int getNumPluginStringData() const
osg::ref_ptr< FindFileCallback > _findFileCallback
CacheHintOptions _objectCacheHint
FilePathList & getDatabasePathList()
Options * cloneOptions(const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) const
const osg::observer_ptr< osg::Group > & getParentGroup() const
unsigned int getNumPluginData() const
void removePluginStringData(const std::string &s) const
void setFileCache(FileCache *fileCache)
const std::string getPluginStringData(const std::string &s) const
void setTerrain(osg::observer_ptr< osg::Node > &terrain)
PrecisionHint _precisionHint
osg::ref_ptr< ObjectCache > _objectCache
void setObjectCacheHint(CacheHintOptions useObjectCache)
osg::observer_ptr< osg::Group > _parentGroup
std::map< std::string, std::string > PluginStringDataMap
PluginStringDataMap _pluginStringData
osg::ref_ptr< FileLocationCallback > _fileLocationCallback
void setAuthenticationMap(AuthenticationMap *authenticationMap)
void setWriteFileCallback(WriteFileCallback *cb)
void setParentGroup(osg::observer_ptr< osg::Group > &parentGroup)
std::map< std::string, void * > PluginDataMap
osg::ref_ptr< FileCache > _fileCache
FindFileCallback * getFindFileCallback() const