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