Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1207)

Unified Diff: ppapi/cpp/point.h

Issue 7285010: Implement an input event resource. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ppapi/cpp/point.h
===================================================================
--- ppapi/cpp/point.h (revision 90976)
+++ ppapi/cpp/point.h (working copy)
@@ -15,32 +15,33 @@
/// A 2 dimensional point with 0,0 being the upper-left starting coordinate.
class Point {
public:
- /// A constructor for a point at 0,0.
- Point() {
+ /// A constructor for a point at 0,0.
+ Point() {
point_.x = 0;
point_.y = 0;
}
- /// A constructor accepting two int32_t values for x and y and converting
- /// them to a Point.
- /// @param[in] in_x An int32_t value representing a horizontal coordinate
- /// of a point, starting with 0 as the left-most coordinate.
- /// @param[in] in_y An int32_t value representing a vertical coordinate
- /// of a point, starting with 0 as the top-most coordinate.
- Point(int32_t in_x, int32_t in_y) {
+ /// A constructor accepting two int32_t values for x and y and converting
+ /// them to a Point.
+ /// @param[in] in_x An int32_t value representing a horizontal coordinate
+ /// of a point, starting with 0 as the left-most coordinate.
+ /// @param[in] in_y An int32_t value representing a vertical coordinate
+ /// of a point, starting with 0 as the top-most coordinate.
+ Point(int32_t in_x, int32_t in_y) {
point_.x = in_x;
point_.y = in_y;
}
- /// A constructor accepting a pointer to a PP_Point and converting the
- /// PP_Point to a Point. This is an implicit conversion constructor.
- /// @param[in] point A pointer to a PP_Point.
- Point(const PP_Point& point) { // Implicit.
+ /// A constructor accepting a pointer to a PP_Point and converting the
+ /// PP_Point to a Point. This is an implicit conversion constructor.
+ /// @param[in] point A pointer to a PP_Point.
dmichael (off chromium) 2011/07/01 20:04:19 This should just say 'A PP_Point' I think.
+ Point(const PP_Point& point) { // Implicit.
point_.x = point.x;
point_.y = point.y;
}
- /// Destructor.
- ~Point() {
+
+ /// Destructor.
+ ~Point() {
}
/// A function allowing implicit conversion of a Point to a PP_Point.
@@ -132,6 +133,129 @@
PP_Point point_;
};
+/// A 2 dimensional floating-point point with 0,0 being the upper-left starting
+/// coordinate.
+class FloatPoint {
+ public:
+ /// A constructor for a point at 0,0.
+ FloatPoint() {
+ float_point_.x = 0.0f;
+ float_point_.y = 0.0f;
+ }
+
+ /// A constructor accepting two values for x and y and converting / them to a
dmichael (off chromium) 2011/07/01 20:04:19 nit: extra '/' after converting, and again at 149
+ /// FloatPoint.
+ ///
+ /// @param[in] in_x An value representing a horizontal coordinate / of a
+ /// point, starting with 0 as the left-most coordinate.
+ ///
+ /// @param[in] in_y An value representing a vertical coordinate / of a point,
+ /// starting with 0 as the top-most coordinate.
+ FloatPoint(float in_x, float in_y) {
+ float_point_.x = in_x;
+ float_point_.y = in_y;
+ }
+
+ /// A constructor accepting a pointer to a PP_FloatPoint and converting the
+ /// PP_Point to a Point. This is an implicit conversion constructor.
+ /// @param[in] point A pointer to a PP_Point.
dmichael (off chromium) 2011/07/01 20:04:19 Copy/paste error duplication :-) I would just say
+ FloatPoint(const PP_FloatPoint& point) { // Implicit.
+ float_point_.x = point.x;
+ float_point_.y = point.y;
+ }
+ /// Destructor.
+ ~FloatPoint() {
+ }
+
+ /// A function allowing implicit conversion of a FloatPoint to a
+ /// PP_FloatPoint.
+ operator PP_FloatPoint() const {
+ return float_point_;
+ }
+
+ /// Getter function for returning the internal PP_FloatPoint struct.
+ /// @return A const reference to the internal PP_FloatPoint struct.
+ const PP_FloatPoint& pp_float_point() const {
+ return float_point_;
+ }
+
+ /// Getter function for returning the internal PP_Point struct.
+ /// @return A mutable reference to the PP_Point struct.
+ PP_FloatPoint& pp_float_point() {
+ return float_point_;
+ }
+
+ /// Getter function for returning the value of x.
+ /// @return The value of x for this Point.
+ float x() const { return float_point_.x; }
+
+ /// Setter function for setting the value of x.
+ /// @param[in] in_x A new x value.
+ void set_x(float in_x) {
+ float_point_.x = in_x;
+ }
+
+ /// Getter function for returning the value of y.
+ /// @return The value of y for this Point.
+ float y() const { return float_point_.y; }
+
+ /// Setter function for setting the value of y.
+ /// @param[in] in_y A new y value.
+ void set_y(float in_y) {
+ float_point_.y = in_y;
+ }
+
+ /// Adds two Points (this and other) together by adding their x values and
+ /// y values.
+ /// @param[in] other A Point.
+ /// @return A new Point containing the result.
+ FloatPoint operator+(const FloatPoint& other) const {
+ return FloatPoint(x() + other.x(), y() + other.y());
+ }
+
+ /// Subtracts one Point from another Point by subtracting their x values
+ /// and y values. Returnes a new point with the result.
+ /// @param[in] other A FloatPoint.
+ /// @return A new Point containing the result.
+ FloatPoint operator-(const FloatPoint& other) const {
+ return FloatPoint(x() - other.x(), y() - other.y());
+ }
+
+ /// Adds two Points (this and other) together by adding their x and y
+ /// values. Returns this point as the result.
+ /// @param[in] other A Point.
+ /// @return This Point containing the result.
+ FloatPoint& operator+=(const FloatPoint& other) {
+ float_point_.x += other.x();
+ float_point_.y += other.y();
+ return *this;
+ }
+
+ /// Subtracts one Point from another Point by subtracting their x values
+ /// and y values. Returns this point as the result.
+ /// @param[in] other A Point.
+ /// @return This Point containing the result.
+ FloatPoint& operator-=(const FloatPoint& other) {
+ float_point_.x -= other.x();
+ float_point_.y -= other.y();
+ return *this;
+ }
+
+ /// Swaps the coordinates of two Points.
+ /// @param[in] other A Point.
+ void swap(FloatPoint& other) {
+ float x = float_point_.x;
+ float y = float_point_.y;
+ float_point_.x = other.float_point_.x;
+ float_point_.y = other.float_point_.y;
+ other.float_point_.x = x;
+ other.float_point_.y = y;
+ }
+
+ private:
+ PP_FloatPoint float_point_;
+};
+
} // namespace pp
/// Determines whether the x and y values of two Points are equal.
@@ -151,4 +275,21 @@
return !(lhs == rhs);
}
+/// Determines whether the x and y values of two FloatPoints are equal.
+/// @param[in] lhs The Point on the left-hand side of the equation.
+/// @param[in] rhs The Point on the right-hand side of the equation.
+/// @return true if they are equal, false if unequal.
+inline bool operator==(const pp::FloatPoint& lhs, const pp::FloatPoint& rhs) {
+ return lhs.x() == rhs.x() && lhs.y() == rhs.y();
+}
+
+/// Determines whether two Points have different coordinates.
+/// @param[in] lhs The Point on the left-hand side of the equation.
+/// @param[in] rhs The Point on the right-hand side of the equation.
+/// @return true if the coordinates of lhs are equal to the coordinates
+/// of rhs, otherwise false.
+inline bool operator!=(const pp::FloatPoint& lhs, const pp::FloatPoint& rhs) {
+ return !(lhs == rhs);
+}
+
#endif // PPAPI_CPP_POINT_H_

Powered by Google App Engine
This is Rietveld 408576698