15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) * Copyright (C) 2010 Google Inc. All rights reserved. 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modification, are permitted provided that the following conditions are 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * met: 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Redistributions of source code must retain the above copyright 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Redistributions in binary form must reproduce the above 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * copyright notice, this list of conditions and the following disclaimer 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * in the documentation and/or other materials provided with the 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * distribution. 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Neither the name of Google Inc. nor the names of its 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * contributors may be used to endorse or promote products derived from 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * this software without specific prior written permission. 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#ifndef WebFloatPoint_h 3293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#define WebFloatPoint_h 335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#include "WebCommon.h" 355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 36f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)#if INSIDE_BLINK 371e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "platform/geometry/FloatPoint.h" 3893ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#else 39c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#include <ui/gfx/geometry/point_f.h> 4093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#endif 415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)namespace blink { 435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)struct WebFloatPoint { 4593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) float x; 4693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) float y; 475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 4893ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) WebFloatPoint() 4993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) : x(0.0f) 5093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) , y(0.0f) 5193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) { 5293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) } 535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 5493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) WebFloatPoint(float x, float y) 5593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) : x(x) 5693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) , y(y) 575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 5993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 60f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)#if INSIDE_BLINK 61e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) WebFloatPoint(const FloatPoint& p) 6293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) : x(p.x()) 6393ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) , y(p.y()) 6493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) { 6593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) } 6693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 67e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) WebFloatPoint& operator=(const FloatPoint& p) 6893ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) { 6993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) x = p.x(); 7093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) y = p.y(); 7193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) return *this; 7293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) } 7393ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 74e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) operator FloatPoint() const 7593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) { 76e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) return FloatPoint(x, y); 7793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) } 7893ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#else 7993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) WebFloatPoint(const gfx::PointF& p) 8093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) : x(p.x()) 8193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) , y(p.y()) 8293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) { 8393ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) } 8493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 8593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) WebFloatPoint& operator=(const gfx::PointF& p) 8693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) { 8793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) x = p.x(); 8893ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) y = p.y(); 8993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) return *this; 9093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) } 9193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 9293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) operator gfx::PointF() const 9393ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) { 9493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) return gfx::PointF(x, y); 9593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) } 9693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 9793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#endif 985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 10093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)inline bool operator==(const WebFloatPoint& a, const WebFloatPoint& b) 10193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles){ 10293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) return a.x == b.x && a.y == b.y; 10393ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)} 10493ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 10593ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)inline bool operator!=(const WebFloatPoint& a, const WebFloatPoint& b) 10693ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles){ 10793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) return !(a == b); 10893ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)} 10993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles) 11051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)} // namespace blink 1115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 11293ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#endif 113