2 * Copyright (C) 2013 HERE Global B.V. All rights reserved.
3 * This software, including documentation, is protected by copyright controlled by
4 * HERE Global B.V. (“Software”). All rights are reserved. Copying, including reproducing,
5 * storing, adapting or translating, any or all of this material requires the prior
6 * written consent of HERE Global B.V. You may use this
7 * Software in accordance with the terms and conditions defined in the
8 * HERE Location Platform Services Terms and Conditions, available at
9 * http://developer.here.com/terms-conditions-base
11 * As an additional permission to the above, you may distribute Software,
12 * in object code format as part of an Application, according to, and subject to, terms and
13 * conditions defined in the Tizen Software Development kit (“SDK”) License Agreement.
14 * You may distribute such object code format Application under terms of your choice,
15 * provided that the header and source files of the Software have not been modified.
18 #ifndef GEOBOUNDINGCIRCLE_H
19 #define GEOBOUNDINGCIRCLE_H
21 #include "common/HereMaps_global.h"
22 #include "common/GeoBoundingArea.h"
24 HERE_MAPS_BEGIN_NAMESPACE
29 * This class encapsulates a bounding circle defined in terms of the geographic
30 * coordinates of its center and a radius.
32 class EXPORT_API GeoBoundingCircle : public GeoBoundingArea
36 * This method is the default constructor.
41 * This method is a copy constructor.
43 * @param rRhs A constant reference to an object whose contents are to be
44 * used to set the properties of a new instance of this class.
46 GeoBoundingCircle(const GeoBoundingCircle& rRhs);
49 * This method is a constructor that creates a new instance, using the
50 * coordinates of the center of the circle and the length of its radius.
52 * @param rCenter A constant reference to an object providing the
53 * geographic coordinates of the center of the given
56 * @param rRadius A value providing the length of the radius in meters.
58 GeoBoundingCircle(const GeoCoordinates& rCenter, double rRadius);
61 * This method is the destructor.
66 * This is the assignment operator.
68 * @param rRhs A constant reference to the right-hand object whose contents
69 * are to be copied to the given instance of the class.
71 * @return A reference to the given instance of the class after the
74 GeoBoundingCircle& operator = (const GeoBoundingCircle& rRhs);
77 * This method sets the coordinates of the center of the given
78 * instance of <code>GeoBoundingCircle</code>.
80 * @param A constant reference to an object containing the new geographic
81 * coordinates of the center of the bounding circle.
83 void SetCenter(const GeoCoordinates& rCenter);
86 * This method retrieves the coordinates of the center of the given
87 * instance of <code>GeoBoundingCircle</code>.
89 * @return A constant reference to an object containing the geographic
90 * coordinates of the center of the bounding circle.
92 const GeoCoordinates& GetCenter() const;
95 * This method sets the radius of the given
96 * instance of <code>GeoBoundingCircle</code>.
98 * @param rRadius A value providing the length of the radius in meters.
100 void SetRadius(double aRadius);
103 * This method retrieves the radius of the given
104 * instance of <code>GeoBoundingCircle</code>.
106 * @return A value providing the length of the radius in meters.
108 double GetRadius() const;
112 * This method retrieves a value indicating the area type applicable to the
115 * @return A value indicating the area type.
117 AreaType GetType() const;
120 * This method checks if the given bounding circle contains the location
121 * defined by the object provided by the caller.
123 * @param rCoordinate An object containing the geographic coordinates of the
126 * @return <code>true</code> if the location lies within the given bounding
127 * box, otherwise <code>false</code>.
129 bool Contains(const GeoCoordinates& rCoordinate) const;
132 class GeoBoundingCircleImpl;
133 GeoBoundingCircleImpl* m_pImpl;
136 HERE_MAPS_END_NAMESPACE
138 #endif /* GEOBOUNDINGCIRCLE_H */