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/point3_f.h" 6 7#include "base/strings/stringprintf.h" 8 9namespace gfx { 10 11std::string Point3F::ToString() const { 12 return base::StringPrintf("%f,%f,%f", x_, y_, z_); 13} 14 15Point3F operator+(const Point3F& lhs, const Vector3dF& rhs) { 16 float x = lhs.x() + rhs.x(); 17 float y = lhs.y() + rhs.y(); 18 float z = lhs.z() + rhs.z(); 19 return Point3F(x, y, z); 20} 21 22// Subtract a vector from a point, producing a new point offset by the vector's 23// inverse. 24Point3F operator-(const Point3F& lhs, const Vector3dF& rhs) { 25 float x = lhs.x() - rhs.x(); 26 float y = lhs.y() - rhs.y(); 27 float z = lhs.z() - rhs.z(); 28 return Point3F(x, y, z); 29} 30 31// Subtract one point from another, producing a vector that represents the 32// distances between the two points along each axis. 33Vector3dF operator-(const Point3F& lhs, const Point3F& rhs) { 34 float x = lhs.x() - rhs.x(); 35 float y = lhs.y() - rhs.y(); 36 float z = lhs.z() - rhs.z(); 37 return Vector3dF(x, y, z); 38} 39 40} // namespace gfx 41