Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / mojo / services / public / cpp / geometry / lib / geometry_type_converters.cc
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 #include "mojo/services/public/cpp/geometry/geometry_type_converters.h"
6
7 namespace mojo {
8
9 // static
10 PointPtr TypeConverter<PointPtr, gfx::Point>::Convert(const gfx::Point& input) {
11   PointPtr point(Point::New());
12   point->x = input.x();
13   point->y = input.y();
14   return point.Pass();
15 }
16
17 // static
18 gfx::Point TypeConverter<gfx::Point, PointPtr>::Convert(const PointPtr& input) {
19   if (input.is_null())
20     return gfx::Point();
21   return gfx::Point(input->x, input->y);
22 }
23
24 // static
25 PointFPtr TypeConverter<PointFPtr, gfx::PointF>::Convert(
26     const gfx::PointF& input) {
27   PointFPtr point(PointF::New());
28   point->x = input.x();
29   point->y = input.y();
30   return point.Pass();
31 }
32
33 // static
34 gfx::PointF TypeConverter<gfx::PointF, PointFPtr>::Convert(
35     const PointFPtr& input) {
36   if (input.is_null())
37     return gfx::PointF();
38   return gfx::PointF(input->x, input->y);
39 }
40
41 // static
42 SizePtr TypeConverter<SizePtr, gfx::Size>::Convert(const gfx::Size& input) {
43   SizePtr size(Size::New());
44   size->width = input.width();
45   size->height = input.height();
46   return size.Pass();
47 }
48
49 // static
50 gfx::Size TypeConverter<gfx::Size, SizePtr>::Convert(const SizePtr& input) {
51   if (input.is_null())
52     return gfx::Size();
53   return gfx::Size(input->width, input->height);
54 }
55
56 // static
57 RectPtr TypeConverter<RectPtr, gfx::Rect>::Convert(const gfx::Rect& input) {
58   RectPtr rect(Rect::New());
59   rect->x = input.x();
60   rect->y = input.y();
61   rect->width = input.width();
62   rect->height = input.height();
63   return rect.Pass();
64 }
65
66 // static
67 gfx::Rect TypeConverter<gfx::Rect, RectPtr>::Convert(const RectPtr& input) {
68   if (input.is_null())
69     return gfx::Rect();
70   return gfx::Rect(input->x, input->y, input->width, input->height);
71 }
72
73 // static
74 RectFPtr TypeConverter<RectFPtr, gfx::RectF>::Convert(const gfx::RectF& input) {
75   RectFPtr rect(RectF::New());
76   rect->x = input.x();
77   rect->y = input.y();
78   rect->width = input.width();
79   rect->height = input.height();
80   return rect.Pass();
81 }
82
83 // static
84 gfx::RectF TypeConverter<gfx::RectF, RectFPtr>::Convert(const RectFPtr& input) {
85   if (input.is_null())
86     return gfx::RectF();
87   return gfx::RectF(input->x, input->y, input->width, input->height);
88 }
89
90 // static
91 TransformPtr TypeConverter<TransformPtr, gfx::Transform>::Convert(
92     const gfx::Transform& input) {
93   std::vector<float> storage(16);
94   input.matrix().asRowMajorf(&storage[0]);
95   mojo::Array<float> matrix;
96   matrix.Swap(&storage);
97   TransformPtr transform(Transform::New());
98   transform->matrix = matrix.Pass();
99   return transform.Pass();
100 }
101
102 // static
103 gfx::Transform TypeConverter<gfx::Transform, TransformPtr>::Convert(
104     const TransformPtr& input) {
105   if (input.is_null())
106     return gfx::Transform();
107   gfx::Transform transform(gfx::Transform::kSkipInitialization);
108   transform.matrix().setRowMajorf(&input->matrix.storage()[0]);
109   return transform;
110 }
111
112 }  // namespace mojo