34 #ifndef __TXPARCHIVE_H_
35 #define __TXPARCHIVE_H_
41 #include <osg/Referenced>
42 #include <osg/BoundingBox>
43 #include <osg/Texture2D>
44 #include <osg/StateSet>
46 #include <osg/PagedLOD>
48 #include <osgSim/LightPointNode>
49 #include <osgText/Font>
51 #include <OpenThreads/Mutex>
72 bool openFile(
const std::string& archiveName);
75 bool loadMaterial(
int ix);
76 bool loadTexture(
int i);
80 bool loadModel(
int ix);
83 bool loadLightAttributes();
86 bool loadTextStyles();
87 inline std::map<int, osg::ref_ptr<osgText::Font> >&
getStyles()
97 void addLightAttribute(osgSim::LightPointNode* lpn, osg::StateSet* fallback ,
const osg::Vec3& attitude,
int handle);
101 return _lights.size();
126 x( gx ), y( gy ), lod( glod ), addr( gaddr ), zmin( gzmin ), zmax( gzmax )
133 bool getTileInfo(
int x,
int y,
int lod,
TileInfo& info);
154 void getExtents(osg::BoundingBox& extents);
169 return GetTexMapEntry(
id).get();
176 osg::Group* getTileContent(
183 osg::Vec3& tileCenter,
184 std::vector<TileLocationInfo>& childInfoList);
187 osg::Group* getTileContent(
192 osg::Vec3& tileCenter,
193 std::vector<TileLocationInfo>& childInfoList);
196 bool getLODSize(
int lod,
int& x,
int& y);
200 majorVer = _majorVersion;
201 minorVer = _minorVersion;
213 if(!_loadMaterialsToStateSet)
218 for(
int attrIter = 0 ; attrIter < 4; ++attrIter)
220 mat.
GetAttr(attrIter, attr_values);
221 ourValueArray->push_back(attr_values);
223 osg_state_set.setUserData(ourValueArray.get());
229 static void setShouldLoadDisplayData(
bool);
230 static bool shouldLoadDisplayData();
237 static void setShouldLoadLocalMaterials(
bool);
238 static bool shouldLoadLocalMaterials();
278 std::map<int, DeferredLightAttribute>
_lights;
281 std::map<int, osg::ref_ptr<osgText::Font> >
_fonts;
Definition: TXPArchive.h:65
bool GetAttr(int attrCode, int &val) const
Get an attribute (e.g. fid/smc)
int _numLODs
Number of the LODs.
Definition: TXPArchive.h:249
int _minorVersion
Definition: TXPArchive.h:290
std::map< int, osg::ref_ptr< osg::Node > > OSGModelsMapType
Models.
Definition: TXPArchive.h:274
osg::Texture2D * getGlobalTexture(int id)
Returns global texture.
Definition: TXPArchive.h:167
#define DT_DLL_osgdb_vrftxp
Contains DLL export macros.
Definition: osgdb_vrftxpDefines.h:25
void SetUserDataToMaterialAttributes(osg::StateSet &osg_state_set, const trpgMaterial &mat)
This section brought to you by A.
Definition: TXPArchive.h:211
const int & getId() const
Definition: TXPArchive.h:141
std::map< int, osg::Vec4 > _fcolors
Text colors.
Definition: TXPArchive.h:284
this one handles different placement of light direction in osg and terrapage
Definition: TXPArchive.h:56
trpg2dPoint _neExtents
Definition: TXPArchive.h:253
OSGModelsMapType _models
Definition: TXPArchive.h:275
bool _loadMaterialsToStateSet
Definition: TXPArchive.h:294
Gets some informations for a given tile.
Definition: TXPArchive.h:111
std::map< int, osg::ref_ptr< osgText::Font > > & getStyles()
Definition: TXPArchive.h:87
double minRange
Definition: TXPArchive.h:114
int y
Definition: TXPArchive.h:128
trpgwAppAddress addr
Definition: TXPArchive.h:129
osg::ref_ptr< osg::StateSet > fallback
Definition: TXPArchive.h:60
osg::Vec3 center
Definition: TXPArchive.h:113
osg::BoundingBox bbox
Definition: TXPArchive.h:119
osg::ref_ptr< osgSim::LightPointNode > lightPoint
light point at (0,0,0) looking in (0,0,0) direction
Definition: TXPArchive.h:59
float radius
Definition: TXPArchive.h:117
TileLocationInfo()
Definition: TXPArchive.h:123
std::map< int, DeferredLightAttribute > _lights
Light attributes vector.
Definition: TXPArchive.h:278
trpg2dPoint _swExtents
Archive extents.
Definition: TXPArchive.h:252
void SetMaterialAttributesToStateSetVar(bool value)
Definition: TXPArchive.h:226
DeferredLightAttribute & getLightAttribute(unsigned int i)
Get light attrib.
Definition: TXPArchive.h:105
osg::ref_ptr< TXPParser > _parser
Terra Page Parser.
Definition: TXPArchive.h:256
TileLocationInfo(int gx, int gy, int glod, const trpgwAppAddress &gaddr, float gzmin=0.0f, float gzmax=0.0f)
Definition: TXPArchive.h:125
Definition: trpage_io.h:265
Definition: trpage_read.h:185
int getNumLightAttributes()
Definition: TXPArchive.h:99
std::map< int, osg::ref_ptr< osg::StateSet > > OSGStatesMapType
States.
Definition: TXPArchive.h:267
const int & getNumLODs() const
Returns the number of LODs for this archive.
Definition: TXPArchive.h:147
Definition: trpage_io.h:632
OpenThreads::Mutex Mutex
Definition: DtOsgThreadingUtils.h:12
void getOrigin(double &x, double &y)
{ extents.set(_swExtents.x,_swExtents.y,0.0f,_neExtents.x,_neExtents.y,0.0f); }
Definition: TXPArchive.h:160
OSGStatesMapType _statesMap
Definition: TXPArchive.h:268
float zmin
Definition: TXPArchive.h:130
osg::Vec3 size
Definition: TXPArchive.h:118
OpenThreads::Mutex _mutex
Definition: TXPArchive.h:287
double maxRange
Definition: TXPArchive.h:115
int _id
Id of the archive.
Definition: TXPArchive.h:246
Definition: trpage_geom.h:345
void GetVersion(int &majorVer, int &minorVer) const
Definition: TXPArchive.h:198
Definition: TXPParser.h:109
std::map< int, osg::ref_ptr< osg::Texture2D > > OSGTexMapType
Textures.
Definition: TXPArchive.h:259
std::map< int, osg::ref_ptr< osgText::Font > > _fonts
Text styles / Fonts.
Definition: TXPArchive.h:281
bool _isMaster
Definition: TXPArchive.h:292
double lod0Range
Definition: TXPArchive.h:116
std::map< int, osg::Vec4 > & getTextColors()
Definition: TXPArchive.h:91
Definition: TXPArchive.h:121
osg::Vec3 attitude
Definition: TXPArchive.h:61
OSGTexMapType _texmap
Definition: TXPArchive.h:260
void setId(int id)
Set/Get the archive id.
Definition: TXPArchive.h:137
Grid and file location of a tile.
Definition: trpage_managers.h:32