7efec6d03c
lots of stuff no one will read these Former-commit-id: 14dcd018bd1b6f74d4b35aa33d9185aca59e9213
71 lines
2.2 KiB
Java
71 lines
2.2 KiB
Java
package org.firstinspires.ftc.teamcode.util;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
import com.acmerobotics.roadrunner.trajectory.Trajectory;
|
|
import com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder;
|
|
import com.acmerobotics.roadrunner.trajectory.config.TrajectoryConfig;
|
|
import com.acmerobotics.roadrunner.trajectory.config.TrajectoryConfigManager;
|
|
import com.acmerobotics.roadrunner.trajectory.config.TrajectoryGroupConfig;
|
|
|
|
import org.firstinspires.ftc.robotcore.internal.system.AppUtil;
|
|
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
|
|
/**
|
|
* Set of utilities for loading trajectories from assets (the plugin save location).
|
|
*/
|
|
public class AssetsTrajectoryManager {
|
|
|
|
/**
|
|
* Loads the group config.
|
|
*/
|
|
public static @Nullable
|
|
TrajectoryGroupConfig loadGroupConfig() {
|
|
try {
|
|
InputStream inputStream = AppUtil.getDefContext().getAssets().open(
|
|
"trajectory/" + TrajectoryConfigManager.GROUP_FILENAME);
|
|
return TrajectoryConfigManager.loadGroupConfig(inputStream);
|
|
} catch (IOException e) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Loads a trajectory config with the given name.
|
|
*/
|
|
public static @Nullable TrajectoryConfig loadConfig(String name) {
|
|
try {
|
|
InputStream inputStream = AppUtil.getDefContext().getAssets().open(
|
|
"trajectory/" + name + ".yaml");
|
|
return TrajectoryConfigManager.loadConfig(inputStream);
|
|
} catch (IOException e) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Loads a trajectory builder with the given name.
|
|
*/
|
|
public static @Nullable TrajectoryBuilder loadBuilder(String name) {
|
|
TrajectoryGroupConfig groupConfig = loadGroupConfig();
|
|
TrajectoryConfig config = loadConfig(name);
|
|
if (groupConfig == null || config == null) {
|
|
return null;
|
|
}
|
|
return config.toTrajectoryBuilder(groupConfig);
|
|
}
|
|
|
|
/**
|
|
* Loads a trajectory with the given name.
|
|
*/
|
|
public static @Nullable Trajectory load(String name) {
|
|
TrajectoryBuilder builder = loadBuilder(name);
|
|
if (builder == null) {
|
|
return null;
|
|
}
|
|
return builder.build();
|
|
}
|
|
}
|