blob: 58bb40a3b3b738112f8a71826b428648fe97e417 [file] [log] [blame]
 // Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef ASH_LASER_LASER_SEGMENT_UTILS_H_ #define ASH_LASER_LASER_SEGMENT_UTILS_H_ #include #include "ash/ash_export.h" namespace gfx { class PointF; class Vector2dF; } namespace ash { // Compute the angle in radians of |point|, with |origin| as the origin and // |direction| as the x-axis. In other words, computes the angle in radians // between |direction| and |point| - |origin|. float ASH_EXPORT AngleOfPointInNewCoordinates(const gfx::PointF& origin, const gfx::Vector2dF& direction, const gfx::PointF& point); // Compute the variables for the equation of the lines normal to the line // segment formed by |start_point| and |end_point|, and which run through the // endpoints of that line segment. The outputs will be returned as NaN if the // line segment is parallel to the x-axis (undefined normal lines). void ASH_EXPORT ComputeNormalLineVariables(const gfx::PointF& start_point, const gfx::PointF& end_point, float* normal_slope, float* start_y_intercept, float* end_y_intercept); // Compute the two the projections of |point| along the line defined by // |line_slope| and |line_y_intercept|. The distance of each projection is // |projection_distance| from |point|. void ASH_EXPORT ComputeProjectedPoints(const gfx::PointF& point, float line_slope, float line_y_intercept, float projection_distance, gfx::PointF* first_projection, gfx::PointF* second_projection); // Checks if the angle of |first_point| is smaller than the angle of // |second_point|. These angles are computed relative to the coordinate system // defined by the midpoint of |start_point| and |end_point|, with the x-axis // as |end_point| - |start_point|. bool ASH_EXPORT IsFirstPointSmallerAngle(const gfx::PointF& start_point, const gfx::PointF& end_point, const gfx::PointF& first_point, const gfx::PointF& second_point); } // namespace ash #endif // ASH_LASER_LASER_SEGMENT_UTILS_H_