#ifndef UI_GFX_GEOMETRY_VECTOR3D_F_H_
#define UI_GFX_GEOMETRY_VECTOR3D_F_H_
#include <iosfwd>
#include <string>
#include "ui/gfx/geometry/geometry_export.h"
#include "ui/gfx/geometry/vector2d_f.h"
namespace gfx {
class GEOMETRY_EXPORT Vector3dF { … };
inline bool operator==(const Vector3dF& lhs, const Vector3dF& rhs) { … }
inline bool operator!=(const Vector3dF& lhs, const Vector3dF& rhs) { … }
inline Vector3dF operator-(const Vector3dF& v) { … }
inline Vector3dF operator+(const Vector3dF& lhs, const Vector3dF& rhs) { … }
inline Vector3dF operator-(const Vector3dF& lhs, const Vector3dF& rhs) { … }
inline Vector3dF CrossProduct(const Vector3dF& lhs, const Vector3dF& rhs) { … }
GEOMETRY_EXPORT float DotProduct(const Vector3dF& lhs, const Vector3dF& rhs);
GEOMETRY_EXPORT Vector3dF ScaleVector3d(const Vector3dF& v,
float x_scale,
float y_scale,
float z_scale);
inline Vector3dF ScaleVector3d(const Vector3dF& v, const Vector3dF& s) { … }
inline Vector3dF ScaleVector3d(const Vector3dF& v, float scale) { … }
GEOMETRY_EXPORT float AngleBetweenVectorsInDegrees(const gfx::Vector3dF& base,
const gfx::Vector3dF& other);
GEOMETRY_EXPORT float ClockwiseAngleBetweenVectorsInDegrees(
const gfx::Vector3dF& base,
const gfx::Vector3dF& other,
const gfx::Vector3dF& normal);
void PrintTo(const Vector3dF& vector, ::std::ostream* os);
}
#endif