1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CircularGeofencingRegion_h
6 #define CircularGeofencingRegion_h
8 #include "modules/geofencing/GeofencingRegion.h"
9 #include "public/platform/WebCircularGeofencingRegion.h"
15 class CircularGeofencingRegion final : public GeofencingRegion {
16 DEFINE_WRAPPERTYPEINFO();
17 WTF_MAKE_NONCOPYABLE(CircularGeofencingRegion);
19 static CircularGeofencingRegion* create(const Dictionary& init);
20 static CircularGeofencingRegion* create(const WebString& id, const WebCircularGeofencingRegion&);
21 virtual ~CircularGeofencingRegion() { }
23 double latitude() const { return m_webRegion.latitude; }
24 double longitude() const { return m_webRegion.longitude; }
25 double radius() const { return m_webRegion.radius; }
27 WebCircularGeofencingRegion webRegion() const;
29 virtual void trace(Visitor* visitor) override { GeofencingRegion::trace(visitor); }
31 virtual bool isCircularGeofencingRegion() const override { return true; }
34 explicit CircularGeofencingRegion(const String& id, const WebCircularGeofencingRegion&);
36 WebCircularGeofencingRegion m_webRegion;
39 DEFINE_TYPE_CASTS(CircularGeofencingRegion, GeofencingRegion, region, region->isCircularGeofencingRegion(), region.isCircularGeofencingRegion());
43 #endif // CircularGeofencingRegion_h