Source code for pathfinder

from ._pathfinder import (
    __version__,
    Segment,
    TrajectoryInfo,
    Waypoint,
    pathfinder_generate as generate,
    pathfinder_deserialize as deserialize,
    pathfinder_serialize as serialize,
    pathfinder_serialize_csv as serialize_csv,
    pf_fit_hermite_pre as FIT_HERMITE_PRE,
    pf_fit_hermite_cubic as FIT_HERMITE_CUBIC,
    pf_fit_hermite_quintic as FIT_HERMITE_QUINTIC,
    SAMPLES_FAST,
    SAMPLES_LOW,
    SAMPLES_HIGH,
)

from . import followers, modifiers

# compability with Pathfinder-Java
import math

r2d = math.degrees
d2r = math.radians


[docs]def boundHalfDegrees(degrees): """Bound an angle (in degrees) to -180 to 180 degrees.""" degrees = math.fmod(degrees, 360.0) if degrees >= 180.0: degrees = degrees - 360.0 elif degrees <= -180.0: degrees = degrees + 360.0 return degrees
[docs]def deserialize_csv(fname): """Read a Trajectory from a CSV File""" import csv with open(fname, "r") as fp: csviter = csv.reader(fp) next(csviter) return [Segment(*map(float, row)) for row in csviter]