UNPKG

signalk-parquet

Version:

SignalK plugin and webapp that archives SK data to Parquet files with a regimen control system, advanced querying, Claude integrated AI analysis, spatial capabilities, and REST API.

97 lines 2.96 kB
"use strict"; /** * Angle conversion utilities for radian/degree conversions * Used for angular threshold values and display */ Object.defineProperty(exports, "__esModule", { value: true }); exports.degreesToRadians = degreesToRadians; exports.radiansToDegrees = radiansToDegrees; exports.normalizeDegrees = normalizeDegrees; exports.normalizeRadians = normalizeRadians; exports.angularDifferenceDegrees = angularDifferenceDegrees; exports.angularDifferenceRadians = angularDifferenceRadians; exports.isAngleInRangeDegrees = isAngleInRangeDegrees; exports.isAngleInRangeRadians = isAngleInRangeRadians; /** * Convert degrees to radians */ function degreesToRadians(degrees) { return degrees * (Math.PI / 180); } /** * Convert radians to degrees */ function radiansToDegrees(radians) { return radians * (180 / Math.PI); } /** * Normalize angle to 0-360 degree range */ function normalizeDegrees(degrees) { let normalized = degrees % 360; if (normalized < 0) { normalized += 360; } return normalized; } /** * Normalize angle to 0-2π radian range */ function normalizeRadians(radians) { let normalized = radians % (2 * Math.PI); if (normalized < 0) { normalized += 2 * Math.PI; } return normalized; } /** * Calculate the shortest angular difference between two angles in degrees * Result is in range [-180, 180] * Positive result means angle2 is clockwise from angle1 */ function angularDifferenceDegrees(angle1, angle2) { let diff = angle2 - angle1; // Normalize to [-180, 180] while (diff > 180) diff -= 360; while (diff < -180) diff += 360; return diff; } /** * Calculate the shortest angular difference between two angles in radians * Result is in range [-π, π] * Positive result means angle2 is clockwise from angle1 */ function angularDifferenceRadians(angle1, angle2) { let diff = angle2 - angle1; // Normalize to [-π, π] while (diff > Math.PI) diff -= 2 * Math.PI; while (diff < -Math.PI) diff += 2 * Math.PI; return diff; } /** * Check if an angle is within a range, accounting for wrap-around * All values in degrees * @param angle - The angle to check * @param center - The center of the range * @param tolerance - The tolerance in degrees (range is center ± tolerance) */ function isAngleInRangeDegrees(angle, center, tolerance) { const diff = Math.abs(angularDifferenceDegrees(center, angle)); return diff <= tolerance; } /** * Check if an angle is within a range, accounting for wrap-around * All values in radians * @param angle - The angle to check * @param center - The center of the range * @param tolerance - The tolerance in radians (range is center ± tolerance) */ function isAngleInRangeRadians(angle, center, tolerance) { const diff = Math.abs(angularDifferenceRadians(center, angle)); return diff <= tolerance; } //# sourceMappingURL=angle-converter.js.map