All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
BuildingSelectionController.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 
6 #include "BuildingFootprints.h"
7 #include "Types.h"
8 #include "CollisionVisualization.h"
9 #include "Collision.h"
10 
11 #include <string>
12 
13 namespace Eegeo
14 {
15  namespace BuildingFootprints
16  {
18  {
19  public:
20  enum Operation
21  {
22  Select,
23  Deselect,
24  Toggle,
25  SetFlashing,
26  CycleFlashing
27  };
28 
30  Eegeo::BuildingFootprints::BuildingFootprintSelectionController& buildingFootprintsSelectionController);
31 
32  void PerformOperation(const Eegeo::Collision::RayCasterResult& pickResult, Operation operation);
33  void DeselectAll();
34  private:
35  void PerformCollisionMaterialSelection(const std::string& collisionMaterialId, Operation operation);
36 
37  Eegeo::CollisionVisualization::MaterialSelectionController& m_collisionMaterialSelectionController;
38  Eegeo::BuildingFootprints::BuildingFootprintSelectionController& m_buildingFootprintsSelectionController;
39  };
40  }
41 }