17242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 27242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci// Use of this source code is governed by a BSD-style license that can be 37242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci// found in the LICENSE file. 47242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 57242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#ifndef CircularGeofencingRegion_h 67242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#define CircularGeofencingRegion_h 77242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 87242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#include "modules/geofencing/GeofencingRegion.h" 97242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#include "public/platform/WebCircularGeofencingRegion.h" 107242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 117242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tuccinamespace blink { 127242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 137242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucciclass Dictionary; 147242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 157242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucciclass CircularGeofencingRegion FINAL : public GeofencingRegion { 167242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci DEFINE_WRAPPERTYPEINFO(); 177242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci WTF_MAKE_NONCOPYABLE(CircularGeofencingRegion); 187242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tuccipublic: 197242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci static CircularGeofencingRegion* create(const Dictionary& init); 207242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci static CircularGeofencingRegion* create(const WebString& id, const WebCircularGeofencingRegion&); 217242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci virtual ~CircularGeofencingRegion() { } 227242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 237242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci double latitude() const { return m_webRegion.latitude; } 247242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci double longitude() const { return m_webRegion.longitude; } 257242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci double radius() const { return m_webRegion.radius; } 267242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 277242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci WebCircularGeofencingRegion webRegion() const; 287242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 297242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci virtual void trace(Visitor* visitor) OVERRIDE { GeofencingRegion::trace(visitor); } 307242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 317242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci virtual bool isCircularGeofencingRegion() const OVERRIDE { return true; } 327242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 337242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucciprivate: 347242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci explicit CircularGeofencingRegion(const String& id, const WebCircularGeofencingRegion&); 357242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 367242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci WebCircularGeofencingRegion m_webRegion; 377242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci}; 387242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 397242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano TucciDEFINE_TYPE_CASTS(CircularGeofencingRegion, GeofencingRegion, region, region->isCircularGeofencingRegion(), region.isCircularGeofencingRegion()); 407242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 417242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci} // namespace blink 427242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 437242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#endif // CircularGeofencingRegion_h 44