1d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)// found in the LICENSE file. 4d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 5d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 6d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#ifndef WebFloatPoint3D_h 7d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#define WebFloatPoint3D_h 8d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 9d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#include "WebCommon.h" 10d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 11d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#if INSIDE_BLINK 12d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#include "platform/geometry/FloatPoint3D.h" 13d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#else 14c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#include <ui/gfx/geometry/point3_f.h> 15d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#endif 16d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 17d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)namespace blink { 18d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 19d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)struct WebFloatPoint3D { 20d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) float x; 21d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) float y; 22d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) float z; 23d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 24d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) WebFloatPoint3D() 25d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) : x(0.0f) 26d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) , y(0.0f) 27d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) , z(0.0f) 28d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) { 29d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) } 30d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 31d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) WebFloatPoint3D(float x, float y, float z) 32d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) : x(x) 33d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) , y(y) 34d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) , z(z) 35d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) { 36d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) } 37d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 38d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#if INSIDE_BLINK 39e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) WebFloatPoint3D(const FloatPoint3D& p) 40d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) : x(p.x()) 41d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) , y(p.y()) 42d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) , z(p.z()) 43d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) { 44d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) } 45d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 46e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) WebFloatPoint3D& operator=(const FloatPoint3D& p) 47d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) { 48d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) x = p.x(); 49d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) y = p.y(); 50d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) z = p.z(); 51d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) return *this; 52d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) } 53d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 54e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) operator FloatPoint3D() const 55d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) { 56e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) return FloatPoint3D(x, y, z); 57d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) } 58d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#else 59d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) WebFloatPoint3D(const gfx::Point3F& p) 60d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) : x(p.x()) 61d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) , y(p.y()) 62d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) , z(p.z()) 63d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) { 64d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) } 65d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 66d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) WebFloatPoint3D& operator=(const gfx::Point3F& p) 67d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) { 68d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) x = p.x(); 69d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) y = p.y(); 70d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) return *this; 71d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) } 72d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 73d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) operator gfx::Point3F() const 74d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) { 75d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) return gfx::Point3F(x, y, z); 76d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) } 77d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 78d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#endif 79d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)}; 80d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 81d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)inline bool operator==(const WebFloatPoint3D& a, const WebFloatPoint3D& b) 82d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles){ 83d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) return a.x == b.x && a.y == b.y && a.z == b.z; 84d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 85d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 86d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)inline bool operator!=(const WebFloatPoint3D& a, const WebFloatPoint3D& b) 87d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles){ 88d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) return !(a == b); 89d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 90d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 91d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} // namespace blink 92d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 93d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#endif 94