Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
platform
Data
StencilArea
StencilAreaController.h
1
// Copyright (c) 2015 eeGeo. All rights reserved.
2
3
#pragma once
4
5
#include "Types.h"
6
#include "StencilAreaModel.h"
7
#include "StencilAreaView.h"
8
#include "StencilAreaRenderer.h"
9
#include "StencilAreaViewFactory.h"
10
#include "DataEntityController.h"
11
#include "StencilAreaPaletteModel.h"
12
13
#include <map>
14
15
namespace
Eegeo
16
{
17
namespace
Data
18
{
19
namespace
StencilArea
20
{
21
struct
StencilAreaArgs
22
{
23
typedef
TStencilAreaId TId;
24
typedef
StencilAreaModel
TModel
;
25
typedef
StencilAreaView
TView
;
26
typedef
StencilAreaViewFactory
TViewFactory
;
27
typedef
StencilAreaRenderer
TRenderableFilter
;
28
};
29
30
class
StencilAreaController
:
private
Eegeo::NonCopyable
31
{
32
public
:
33
StencilAreaController
(
StencilAreaViewFactory
& viewFactory,
StencilAreaRenderer
& renderableFilter);
34
35
~
StencilAreaController
();
36
37
void
Add(
StencilAreaModel
& model);
38
39
void
Remove(
StencilAreaModel
& model);
40
41
bool
TryRemoveById(
const
TStencilAreaId&
id
,
StencilAreaModel
*& out_removedItem);
42
43
private
:
44
void
RemovePalette(
const
StencilAreaPaletteModel
& model);
45
46
void
AddPalette(
const
StencilAreaPaletteModel
& model);
47
48
void
Clear();
49
50
bool
HasPalette(
const
StencilAreaPaletteModel
& model)
const
;
51
52
bool
ShouldRemovePalette(
const
StencilAreaPaletteModel
& model)
const
;
53
54
typedef
std::map<const TStencilPaletteId, Rendering::Renderables::WorldMeshRenderable*> TStencilPalettesToQuads;
55
typedef
std::map<const TStencilPaletteId, int> TStencilPaletteModelCounts;
56
57
DataEntityController<StencilAreaArgs>
m_controller;
58
59
TStencilPalettesToQuads m_paletteQuads;
60
TStencilPaletteModelCounts m_paletteMemberCounts;
61
};
62
}
63
}
64
}
Generated on Sat Jun 10 2023 02:00:29 for eeGeo Platform SDK by
1.8.3.1