• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 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 "ui/gfx/geometry/vector2d.h"
6 
7 #include <cmath>
8 
9 #include "base/strings/stringprintf.h"
10 
11 namespace gfx {
12 
IsZero() const13 bool Vector2d::IsZero() const {
14   return x_ == 0 && y_ == 0;
15 }
16 
Add(const Vector2d & other)17 void Vector2d::Add(const Vector2d& other) {
18   x_ += other.x_;
19   y_ += other.y_;
20 }
21 
Subtract(const Vector2d & other)22 void Vector2d::Subtract(const Vector2d& other) {
23   x_ -= other.x_;
24   y_ -= other.y_;
25 }
26 
LengthSquared() const27 int64 Vector2d::LengthSquared() const {
28   return static_cast<int64>(x_) * x_ + static_cast<int64>(y_) * y_;
29 }
30 
Length() const31 float Vector2d::Length() const {
32   return static_cast<float>(std::sqrt(static_cast<double>(LengthSquared())));
33 }
34 
ToString() const35 std::string Vector2d::ToString() const {
36   return base::StringPrintf("[%d %d]", x_, y_);
37 }
38 
39 }  // namespace gfx
40