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/point3_f.h" 6 7 #include "base/strings/stringprintf.h" 8 9 namespace gfx { 10 11 std::string Point3F::ToString() const { 12 return base::StringPrintf("%f,%f,%f", x_, y_, z_); 13 } 14 15 Point3F 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. 24 Point3F 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. 33 Vector3dF 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