michael@0: /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- michael@0: * This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef GFX_POINT_H michael@0: #define GFX_POINT_H michael@0: michael@0: #include "nsMathUtils.h" michael@0: #include "mozilla/gfx/BaseSize.h" michael@0: #include "mozilla/gfx/BasePoint.h" michael@0: #include "nsSize.h" michael@0: #include "nsPoint.h" michael@0: michael@0: #include "gfxTypes.h" michael@0: michael@0: struct gfxSize : public mozilla::gfx::BaseSize { michael@0: typedef mozilla::gfx::BaseSize Super; michael@0: michael@0: gfxSize() : Super() {} michael@0: gfxSize(gfxFloat aWidth, gfxFloat aHeight) : Super(aWidth, aHeight) {} michael@0: gfxSize(const nsIntSize& aSize) : Super(aSize.width, aSize.height) {} michael@0: }; michael@0: michael@0: struct gfxPoint : public mozilla::gfx::BasePoint { michael@0: typedef mozilla::gfx::BasePoint Super; michael@0: michael@0: gfxPoint() : Super() {} michael@0: gfxPoint(gfxFloat aX, gfxFloat aY) : Super(aX, aY) {} michael@0: gfxPoint(const nsIntPoint& aPoint) : Super(aPoint.x, aPoint.y) {} michael@0: michael@0: bool WithinEpsilonOf(const gfxPoint& aPoint, gfxFloat aEpsilon) { michael@0: return fabs(aPoint.x - x) < aEpsilon && fabs(aPoint.y - y) < aEpsilon; michael@0: } michael@0: }; michael@0: michael@0: inline gfxPoint michael@0: operator*(const gfxPoint& aPoint, const gfxSize& aSize) michael@0: { michael@0: return gfxPoint(aPoint.x * aSize.width, aPoint.y * aSize.height); michael@0: } michael@0: michael@0: inline gfxPoint michael@0: operator/(const gfxPoint& aPoint, const gfxSize& aSize) michael@0: { michael@0: return gfxPoint(aPoint.x / aSize.width, aPoint.y / aSize.height); michael@0: } michael@0: michael@0: inline gfxSize michael@0: operator/(gfxFloat aValue, const gfxSize& aSize) michael@0: { michael@0: return gfxSize(aValue / aSize.width, aValue / aSize.height); michael@0: } michael@0: michael@0: #endif /* GFX_POINT_H */