diff options
Diffstat (limited to 'media/omx-plugin/include/ics/ui/Point.h')
-rw-r--r-- | media/omx-plugin/include/ics/ui/Point.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/media/omx-plugin/include/ics/ui/Point.h b/media/omx-plugin/include/ics/ui/Point.h new file mode 100644 index 000000000..1653120a6 --- /dev/null +++ b/media/omx-plugin/include/ics/ui/Point.h @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2006 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ANDROID_UI_POINT +#define ANDROID_UI_POINT + +#include <utils/TypeHelpers.h> + +namespace android { + +class Point +{ +public: + int x; + int y; + + // we don't provide copy-ctor and operator= on purpose + // because we want the compiler generated versions + + // Default constructor doesn't initialize the Point + inline Point() { + } + inline Point(int x, int y) : x(x), y(y) { + } + + inline bool operator == (const Point& rhs) const { + return (x == rhs.x) && (y == rhs.y); + } + inline bool operator != (const Point& rhs) const { + return !operator == (rhs); + } + + inline bool isOrigin() const { + return !(x|y); + } + + // operator < defines an order which allows to use points in sorted + // vectors. + bool operator < (const Point& rhs) const { + return y<rhs.y || (y==rhs.y && x<rhs.x); + } + + inline Point& operator - () { + x = -x; + y = -y; + return *this; + } + + inline Point& operator += (const Point& rhs) { + x += rhs.x; + y += rhs.y; + return *this; + } + inline Point& operator -= (const Point& rhs) { + x -= rhs.x; + y -= rhs.y; + return *this; + } + + const Point operator + (const Point& rhs) const { + const Point result(x+rhs.x, y+rhs.y); + return result; + } + const Point operator - (const Point& rhs) const { + const Point result(x-rhs.x, y-rhs.y); + return result; + } +}; + +ANDROID_BASIC_TYPES_TRAITS(Point) + +}; // namespace android + +#endif // ANDROID_UI_POINT |