// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_GFX_GEOMETRY_QUATERNION_H_ #define UI_GFX_GEOMETRY_QUATERNION_H_ #include <iosfwd> #include <string> #include "ui/gfx/geometry/geometry_export.h" namespace gfx { class Vector3dF; class GEOMETRY_EXPORT Quaternion { … }; // |s| is an arbitrary, real constant. inline Quaternion operator*(const Quaternion& q, double s) { … } // |s| is an arbitrary, real constant. inline Quaternion operator*(double s, const Quaternion& q) { … } // |s| is an arbitrary, real constant. inline Quaternion operator/(const Quaternion& q, double s) { … } // Returns true if the x, y, z, w values of |lhs| and |rhs| are equal. Note that // two quaternions can represent the same orientation with different values. // This operator will return false in that scenario. inline bool operator==(const Quaternion& lhs, const Quaternion& rhs) { … } inline bool operator!=(const Quaternion& lhs, const Quaternion& rhs) { … } // This is declared here for use in gtest-based unit tests but is defined in // the //ui/gfx:test_support target. Depend on that to use this in your unit // test. This should not be used in production code - call ToString() instead. void PrintTo(const Quaternion& transform, ::std::ostream* os); } // namespace gfx #endif // UI_GFX_GEOMETRY_QUATERNION_H_