chromium/ui/gfx/geometry/quaternion.h

// 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_