< Summary

Class:LaunchPlan
Assembly:bamlab.micromissiles
File(s):/github/workspace/Assets/Scripts/Algorithms/Planning/LaunchPlanner.cs
Covered lines:0
Uncovered lines:16
Coverable lines:16
Total lines:50
Line coverage:0% (0 of 16)
Covered branches:0
Total branches:0
Covered methods:0
Total methods:7
Method coverage:0% (0 of 7)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
LaunchPlan()0%2100%
LaunchPlan()0%2100%
LaunchPlan(...)0%2100%
GetNormalizedLaunchVector()0%2100%

File(s)

/github/workspace/Assets/Scripts/Algorithms/Planning/LaunchPlanner.cs

#LineLine coverage
 1using UnityEngine;
 2
 3// Launch planner output.
 4public class LaunchPlan {
 5  // No-launch launch plan.
 06  public static LaunchPlan NoLaunch = new LaunchPlan();
 7
 8  // Whether the interceptor should be launched.
 09  public bool ShouldLaunch { get; }
 10
 11  // Launch angle in degrees measured from the horizon.
 012  public float LaunchAngle { get; }
 13
 14  // Intercept position.
 015  public Vector3 InterceptPosition { get; }
 16
 017  public LaunchPlan() {
 018    ShouldLaunch = false;
 019  }
 020  public LaunchPlan(float launchAngle, Vector3 interceptPosition, bool shouldLaunch = true) {
 021    LaunchAngle = launchAngle;
 022    InterceptPosition = interceptPosition;
 023    ShouldLaunch = shouldLaunch;
 024  }
 25
 26  // Get the normalized launch vector.
 027  public Vector3 GetNormalizedLaunchVector() {
 028    Vector3 interceptDirection = Coordinates3.ConvertCartesianToSpherical(InterceptPosition);
 029    return Coordinates3.ConvertSphericalToCartesian(r: 1, azimuth: interceptDirection[1],
 30                                                    elevation: LaunchAngle);
 031  }
 32}
 33
 34// The launch planner class is an interface for planning when and where to launch an interceptor to
 35// intercept a target.
 36public abstract class ILaunchPlanner {
 37  // Launch angle planner.
 38  protected ILaunchAnglePlanner _launchAnglePlanner;
 39
 40  // Agent trajectory predictor.
 41  protected IPredictor _predictor;
 42
 43  public ILaunchPlanner(ILaunchAnglePlanner launchAnglePlanner, IPredictor predictor) {
 44    _launchAnglePlanner = launchAnglePlanner;
 45    _predictor = predictor;
 46  }
 47
 48  // Plan the launch.
 49  public abstract LaunchPlan Plan();
 50}