11 #include "vtdata/vtTime.h"
14 #include "AbstractLayer.h"
16 #include "Content3d.h"
17 #include "DynTerrain.h"
22 #include "TextureUnitManager.h"
23 #include "TiledGeom.h"
65 bool bShadowsEveryFrame;
137 vtString GetParamFile() {
return m_strParamFile; }
142 void SetName(
const vtString &str) { m_Params.SetValueString(STR_NAME, str); }
143 vtString GetName() {
return m_Params.GetValueString(STR_NAME); }
148 vtTin3d *GetTin() {
return m_pTin; }
162 vtString GetLastError() {
return m_strErrorMsg; }
166 bool ProgressCallback(
int i);
170 ColorMap *GetTextureColors() {
return m_pTextureColors.get(); }
177 virtual void PaintDib(
bool progress_callback(
int) = NULL);
183 void Enable(
bool bVisible);
189 void addNode(osg::Node *pNode);
203 void SetGlobalProjection();
212 void add_routepoint_earth(
vtRoute *f,
const DPoint2 &epos,
const char *structname);
215 vtRoute* GetLastRoute() {
return m_Routes.GetSize()>0?m_Routes[m_Routes.GetSize()-1]:0; }
216 vtRouteMap &GetRouteMap() {
return m_Routes; }
221 void RemoveLayer(
vtLayer *lay,
bool progress_callback(
int) = NULL);
241 void DeleteLayer(uint index);
242 bool FindClosestStructure(
const DPoint2 &point,
double epsilon,
243 int &structure,
double &closest,
float fMaxInstRadius,
244 float fLinearWidthBuffer);
249 vtLodGrid *GetStructureGrid() {
return m_pStructGrid; }
250 int DoStructurePaging();
252 float GetStructurePageOutDistance() {
return m_fPagingStructureDist; }
253 void SetStructurePageOutDistance(
float f);
254 int GetStructurePageMax() {
return m_iPagingStructureMax; }
264 int DeleteSelectedFeatures();
265 void SetFeatureLoader(
vtFeatureLoader *loader) { m_pFeatureLoader = loader; }
273 vtRoadMap3d *GetRoadMap() {
return m_pRoadMap.get(); }
283 void ActivateEngines(
bool bActive);
284 vtEngine *GetEngineGroup() {
return m_pEngineGroup; }
291 void SetFeatureVisible(TFType ftype,
bool bOn);
292 bool GetFeatureVisible(TFType ftype);
295 void SetLODDistance(TFType ftype,
float fDistance);
296 float GetLODDistance(TFType ftype);
297 void SetVerticalExag(
float fExag);
298 float GetVerticalExag()
const {
return m_fVerticalExag; }
303 vtTiledGeom *GetTiledGeom() {
return m_pTiledGeom.get(); }
304 vtGroup *GetTopGroup() {
return m_pContainerGroup; }
305 vtGroup *GetTerrainGroup() {
return m_pTerrainGroup; }
309 virtual bool FindAltitudeOnCulture(
const FPoint3 &p3,
float &fAltitude,
bool bTrue,
int iCultureFlags)
const;
310 int GetShadowTextureUnit();
314 float fOffset,
bool bInterp =
true,
bool bCurve =
false,
bool bTrue =
false);
317 void SetCamLocation(
FMatrix4 &mat) { m_CamLocation = mat; }
318 FMatrix4 &GetCamLocation() {
return m_CamLocation; }
320 void Visited(
bool bVisited) { m_bVisited = bVisited; }
321 bool IsVisited() {
return m_bVisited; }
327 void SetWaterLevel(
float fElev);
328 void SetFog(
bool fog);
329 bool GetFog() {
return m_bFog; }
330 void SetFogColor(
const RGBf &color);
331 void SetFogDistance(
float fMeters);
332 void SetBgColor(
const RGBf &color);
333 RGBf GetBgColor() {
return m_background_color; }
334 void SetShadows(
bool shadows);
335 bool GetShadows() {
return m_bShadows; }
338 void ForceShadowUpdate();
344 DPoint2 GetCenterGeoLocation();
347 vtGroup *GetOverlay() {
return m_pOverlay; }
350 void ActivateScenario(
int iScenario);
361 osg::Node *GetTerrainSurfaceNode();
372 bool CreateFromTIN();
373 bool CreateFromGrid();
374 bool CreateFromTiles();
375 bool CreateFromExternal();
376 void _CreateCulture();
377 void _CreateVegetation();
378 void _CreateStructures();
380 void _SetupVegGrid(
float fLODDistance);
381 void _SetupStructGrid(
float fLODDistance);
382 void _CreateAbstractLayers();
383 void _CreateImageLayers();
384 void _CreateTextures(
const FPoint3 &light_dir,
bool progress_callback(
int) = NULL);
385 void _CreateDetailTexture();
386 bool _CreateDynamicTerrain();
388 void _SetErrorMessage(
const vtString &msg);
393 const FPoint3 &light_dir,
bool progress_callback(
int) = NULL);
394 void _ComputeCenterLocation();
395 void GetTerrainBounds();
396 void EnforcePageOut();
397 void ConnectFogShadow(
bool bFog,
bool bShadow);
402 vtGroupPtr m_pContainerGroup;
403 vtGroupPtr m_pTerrainGroup;
404 vtGroupPtr m_pUnshadowedGroup;
407 vtDynTerrainGeomPtr m_pDynGeom;
408 vtTransformPtr m_pDynGeomScale;
409 float m_fVerticalExag;
415 vtTiledGeomPtr m_pTiledGeom;
417 osg::ref_ptr<vtExternalHeightField3d> m_pExternalHeightField;
424 bool m_bPreserveInputGrid;
437 vtShadowPtr m_pShadow;
438 vtMovGeodePtr m_pHorizonGeom;
439 vtMovGeodePtr m_pOceanGeom;
442 RGBf m_background_color;
444 vtTin3dPtr m_pWaterTin3d;
453 int m_iPagingStructureMax;
454 float m_fPagingStructureDist;
456 vtMaterialArrayPtr m_pTerrMats;
457 vtMaterialArrayPtr m_pDetailMats;
458 vtMaterialArrayPtr m_pEphemMats;
470 vtRoadMap3dPtr m_pRoadMap;
482 ImagePtr m_pUnshadedImage;
483 ImagePtr m_pSingleImage;
485 auto_ptr<ColorMap> m_pTextureColors;
486 bool m_bTextureInitialized;
488 int m_iShadowTextureUnit;
497 vtEnginePtr m_pEngineGroup;
500 auto_ptr<vtElevationGrid> m_pElevGrid;
505 int m_iDifferenceFromGMT;