VR-Forces 4.5 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
include
vantageTerrainImplementation
boundingVolumeTerrainSourcePager.h
Go to the documentation of this file.
1
/*******************************************************************************
2
** Copyright (c) 2011 MAK Technologies, Inc.
3
** All rights reserved.
4
*******************************************************************************/
5
8
9
#pragma once
10
11
#include <
vantageTerrainImplementation/terrainPagerCommand.h
>
12
#include <
vantageTerrainImplementation/terrainSourcePager.h
>
13
#include <
vantageTerrainImplementation/pageInVisitor.h
>
14
#include <
vantageTerrainImplementation/boundingVolumeTerrainSourceTracker.h
>
15
#include <
terrainInterface/terrainPagingGeometry.h
>
16
19
class
DT_DLL_vantageTerrainImplementation
DtBoundingVolumeTerrainSourcePager
20
:
public
DtTerrainSourcePager
21
{
22
public
:
23
24
DtBoundingVolumeTerrainSourcePager
(
DtVantageTerrainEngine
* terrainEngine);
25
26
virtual
~
DtBoundingVolumeTerrainSourcePager
();
27
32
virtual
bool
pageInGeometry(
33
const
DtTerrainPagingGeometryPtr
geometry,
34
DtTerrainIntersectIDType
intersectId = 0) = 0;
35
39
virtual
bool
pageOutNodes(std::list<DtNodeId>& nodesToRemove) = 0;
40
41
virtual
void
updatePageTracker
(
DtTerrainIntersectIDType
intersectId = 0) = 0;
42
43
protected
:
45
class
DtBoundingVolumeActivePageVisitor
:
public
DtMaintainMatrixVisitor
46
{
47
public
:
48
DtBoundingVolumeActivePageVisitor
(
DtTerrainIntersectIDType
intersectId = 0);
49
50
const
DtNodeBoundingInfoList
& pagedOutBoundingVolumes()
const
;
51
const
DtNodeBoundingInfoMap
& pagedInBoundingVolumes()
const
;
52
bool
noValidAreas()
const
;
53
54
protected
:
55
class
ScopedBound
56
{
57
public
:
58
ScopedBound
(
DtBoundingVolumeActivePageVisitor
& visitor, osg::Node&);
59
~
ScopedBound
();
60
61
private
:
62
DtBoundingVolumeActivePageVisitor
*
myVisitor
;
63
};
64
65
friend
class
ScopedBound
;
66
67
void
pushBound(
const
osg::BoundingSphere&);
68
void
popBound();
69
70
bool
addToPagedOutVolumesList(
DtNodeBoundingInfoPtr
pagedOutArea);
71
bool
addToPagedOutVolumesList(
DtNodeBoundingInfo
* pagedOutArea);
72
73
void
addToPagedInVolumesList(osg::Node*,
DtNodeBoundingInfoPtr
pagedOutArea);
74
void
addToPagedInVolumesList(osg::Node*,
DtNodeBoundingInfo
* pagedOutArea);
75
76
DtNodeBoundingInfoList
myPagedOutBoundingList
;
77
DtNodeBoundingInfoMap
myPagedInBoundingMap
;
78
bool
myNoValidAreas
;
79
std::stack<osg::BoundingSphere>
myBoundingNodeStack
;
80
DtTerrainIntersectIDType
myIntersectId
;
81
};
82
83
};
Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (
www.mak.com
)