5 #include "BuildingFootprints.h"
6 #include "BuildingFootprintService.h"
9 #include "LatLongAltitude.h"
10 #include "BuildingFootprintResourceService.h"
18 namespace BuildingFootprints
21 struct IFootprintDistanceFunctor;
22 struct IFootprintAltitudeOverlapFunctor;
26 enum DistanceSelectionType
33 double CentreAltitude;
36 bool AllFootprintsForGroup;
37 bool OnlyOverlappingAltitude;
38 DistanceSelectionType DistanceType;
42 : CentreLatLong(centreLatLong)
44 , SearchRadius(searchRadius)
45 , MaxResults(maxResults)
46 , AllFootprintsForGroup(allFootprintsForGroup)
47 , OnlyOverlappingAltitude(
false)
48 , DistanceType(distanceType)
49 , UserCallback(userCallback)
53 : CentreLatLong(centreLatLongAlt.GetLatLong())
54 , CentreAltitude(centreLatLongAlt.GetAltitude())
55 , SearchRadius(searchRadius)
56 , MaxResults(maxResults)
57 , AllFootprintsForGroup(allFootprintsForGroup)
58 , OnlyOverlappingAltitude(
true)
59 , DistanceType(distanceType)
60 , UserCallback(userCallback)
66 typedef std::vector<Streaming::MortonKey> MortonKeyVector;
78 virtual void Execute();
82 bool IsCancelled()
const {
return m_isCancelled; }
84 BuildingFootprintServiceRequestId GetRequestId()
const {
return m_requestId; }
86 virtual QueryParams GetQueryParams()
const {
return m_queryParams; }
88 const MortonKeyVector& GetKeysToGather()
const {
return m_keysToGather; }
90 virtual void Finalise();
93 bool AllSucceeded()
const {
return m_keysRemaining == 0 && !m_anyFail; }
94 bool AnySucceeded()
const {
return m_keysRemaining == 0 && m_anySuccess; }
98 BuildingFootprintServiceRequestId m_requestId;
114 MortonKeyVector m_keysToGather;
118 bool m_preventQueryDeletion;
119 std::vector<const BuildingFootprint*> m_footprints;
120 float m_overrideSearchRadius;
121 std::vector<BuildingFootprintResourceService::CancelHandle> m_cancellableFootprintQueries;