diff --git a/ThirdPartyNotices.txt b/ThirdPartyNotices.txt index b944c1bd38..22c36544fc 100644 --- a/ThirdPartyNotices.txt +++ b/ThirdPartyNotices.txt @@ -53,6 +53,7 @@ upb wpiutil/src/main/native/thirdparty/upb mrcal tools/wpical/src/main/native/thirdparty/mrcal libdogleg tools/wpical/src/main/native/thirdparty/libdogleg Simd hal/src/main/native/systemcore/simd +AdvantageScope fields/src/main/native/resources/org/wpilib/fields/ftc Additionally, glfw and nanopb were modified for use in WPILib. @@ -1690,3 +1691,34 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +============ +AdvantageScope License +============ + +Copyright (c) 2021-2026 Littleton Robotics. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +- Neither the name of Littleton Robotics, FRC 6328 ("Mechanical Advantage"), + AdvantageScope, nor the names of other AdvantageScope contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY LITTLETON ROBOTICS AND OTHER ADVANTAGESCOPE +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT +NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY NONINFRINGEMENT +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +LITTLETON ROBOTICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/fields/CMakeLists.txt b/fields/CMakeLists.txt index fdcc22a896..42b2f3d27e 100644 --- a/fields/CMakeLists.txt +++ b/fields/CMakeLists.txt @@ -10,17 +10,27 @@ if(WITH_JAVA) file(GLOB_RECURSE JAVA_SOURCES src/main/java/*.java) file( - GLOB_RECURSE JAVA_RESOURCES + GLOB_RECURSE JAVA_FRC_RESOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} - src/main/native/resources/*.json - src/main/native/resources/*.png - src/main/native/resources/*.jpg + src/main/native/resources/frc/*.json + src/main/native/resources/frc/*.png + src/main/native/resources/frc/*.jpg ) + + file( + GLOB_RECURSE JAVA_FTC_RESOURCES + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + src/main/native/resources/ftc/*.json + src/main/native/resources/ftc/*.png + src/main/native/resources/ftc/*.jpg + ) + add_jar( field_images_jar SOURCES ${JAVA_SOURCES} RESOURCES - NAMESPACE "org/wpilib/fields" ${JAVA_RESOURCES} + NAMESPACE "org/wpilib/fields/frc" ${JAVA_FRC_RESOURCES} + NAMESPACE "org/wpilib/fields/ftc" ${JAVA_FTC_RESOURCES} INCLUDE_JARS ${AVAJE_JARS} OUTPUT_DIR ${WPILIB_BINARY_DIR}/${java_lib_dest} OUTPUT_NAME fields @@ -31,7 +41,7 @@ if(WITH_JAVA) endif() generate_resources( - src/main/native/resources/org/wpilib/fields + src/main/native/resources/org/wpilib/fields/* ${CMAKE_CURRENT_BINARY_DIR}/generated/main/cpp FIELDS wpi::fields diff --git a/fields/src/main/java/org/wpilib/fields/FieldConfig.java b/fields/src/main/java/org/wpilib/fields/FieldConfig.java index 2b604697f1..bdbfd6668c 100644 --- a/fields/src/main/java/org/wpilib/fields/FieldConfig.java +++ b/fields/src/main/java/org/wpilib/fields/FieldConfig.java @@ -38,14 +38,18 @@ public class FieldConfig { @Json.Property("field-unit") public String m_fieldUnit; + @Json.Property("program") + public String m_program; + public FieldConfig() {} public URL getImageUrl() { - return getClass().getResource(Fields.kBaseResourceDir + m_fieldImage); + return getClass().getResource(Fields.BASE_RESOURCE_DIR + m_program + "/" + m_fieldImage); } public InputStream getImageAsStream() { - return getClass().getResourceAsStream(Fields.kBaseResourceDir + m_fieldImage); + return getClass() + .getResourceAsStream(Fields.BASE_RESOURCE_DIR + m_program + "/" + m_fieldImage); } /** @@ -56,7 +60,7 @@ public class FieldConfig { * @throws IOException Throws if the file could not be loaded */ public static FieldConfig loadField(Fields field) throws IOException { - return loadFromResource(field.m_resourceFile); + return loadFromResource(field.resourceFile); } /** diff --git a/fields/src/main/java/org/wpilib/fields/Fields.java b/fields/src/main/java/org/wpilib/fields/Fields.java index df804dff67..b0f7c50642 100644 --- a/fields/src/main/java/org/wpilib/fields/Fields.java +++ b/fields/src/main/java/org/wpilib/fields/Fields.java @@ -5,29 +5,29 @@ package org.wpilib.fields; public enum Fields { - k2018PowerUp("2018-powerup.json"), - k2019DeepSpace("2019-deepspace.json"), - k2020InfiniteRecharge("2020-infiniterecharge.json"), - k2021InfiniteRecharge("2021-infiniterecharge.json"), - k2021Barrel("2021-barrelracingpath.json"), - k2021Bounce("2021-bouncepath.json"), - k2021GalacticSearchA("2021-galacticsearcha.json"), - k2021GalacticSearchB("2021-galacticsearchb.json"), - k2021Slalom("2021-slalompath.json"), - k2022RapidReact("2022-rapidreact.json"), - k2023ChargedUp("2023-chargedup.json"), - k2024Crescendo("2024-crescendo.json"), - k2025Reefscape("2025-reefscape.json"), - k2026Rebuilt("2026-rebuilt.json"); + FRC_2018_POWER_UP("frc/2018-powerup.json"), + FRC_2019_DEEP_SPACE("frc/2019-deepspace.json"), + FRC_2020_INFINITE_RECHARGE("frc/2020-infiniterecharge.json"), + FRC_2021_INFINITE_RECHARGE("frc/2021-infiniterecharge.json"), + FRC_2021_BARREL("frc/2021-barrelracingpath.json"), + FRC_2021_BOUNCE("frc/2021-bouncepath.json"), + FRC_2021_GALACTIC_SEARCH_A("frc/2021-galacticsearcha.json"), + FRC_2021_GALACTIC_SEARCH_B("frc/2021-galacticsearchb.json"), + FRC_2021_SLALOM("frc/2021-slalompath.json"), + FRC_2022_RAPID_REACT("frc/2022-rapidreact.json"), + FRC_2023_CHARGED_UP("frc/2023-chargedup.json"), + FRC_2024_CRESCENDO("frc/2024-crescendo.json"), + FTC_2024_2025_INTO_THE_DEEP("ftc/2024-2025-intothedeep.json"), + FRC_2025_REEFSCAPE("frc/2025-reefscape.json"), + FTC_2025_2026_DECODE("ftc/2025-2026-decode.json"), + FRC_2026_REBUILT("frc/2026-rebuilt.json"); - public static final String kBaseResourceDir = "/org/wpilib/fields/"; + public static final String BASE_RESOURCE_DIR = "/org/wpilib/fields/"; - /** Alias to the current game. */ - public static final Fields kDefaultField = k2026Rebuilt; - - public final String m_resourceFile; + @SuppressWarnings("MemberName") + public final String resourceFile; Fields(String resourceFile) { - m_resourceFile = kBaseResourceDir + resourceFile; + this.resourceFile = BASE_RESOURCE_DIR + resourceFile; } } diff --git a/fields/src/main/native/cpp/fields.cpp b/fields/src/main/native/cpp/fields.cpp index f3606ccf1c..fc5bf49d2d 100644 --- a/fields/src/main/native/cpp/fields.cpp +++ b/fields/src/main/native/cpp/fields.cpp @@ -4,51 +4,58 @@ #include "wpi/fields/fields.hpp" -#include "wpi/fields/2018-powerup.hpp" -#include "wpi/fields/2019-deepspace.hpp" -#include "wpi/fields/2020-infiniterecharge.hpp" -#include "wpi/fields/2021-barrel.hpp" -#include "wpi/fields/2021-bounce.hpp" -#include "wpi/fields/2021-galacticsearcha.hpp" -#include "wpi/fields/2021-galacticsearchb.hpp" -#include "wpi/fields/2021-infiniterecharge.hpp" -#include "wpi/fields/2021-slalom.hpp" -#include "wpi/fields/2022-rapidreact.hpp" -#include "wpi/fields/2023-chargedup.hpp" -#include "wpi/fields/2024-crescendo.hpp" -#include "wpi/fields/2025-reefscape.hpp" -#include "wpi/fields/2026-rebuilt.hpp" +#include "wpi/fields/frc/2018-powerup.hpp" +#include "wpi/fields/frc/2019-deepspace.hpp" +#include "wpi/fields/frc/2020-infiniterecharge.hpp" +#include "wpi/fields/frc/2021-barrelracingpath.hpp" +#include "wpi/fields/frc/2021-bouncepath.hpp" +#include "wpi/fields/frc/2021-galacticsearcha.hpp" +#include "wpi/fields/frc/2021-galacticsearchb.hpp" +#include "wpi/fields/frc/2021-infiniterecharge.hpp" +#include "wpi/fields/frc/2021-slalompath.hpp" +#include "wpi/fields/frc/2022-rapidreact.hpp" +#include "wpi/fields/frc/2023-chargedup.hpp" +#include "wpi/fields/frc/2024-crescendo.hpp" +#include "wpi/fields/frc/2025-reefscape.hpp" +#include "wpi/fields/frc/2026-rebuilt.hpp" +#include "wpi/fields/ftc/2024-2025-intothedeep.hpp" +#include "wpi/fields/ftc/2025-2026-decode.hpp" using namespace wpi::fields; static const Field kFields[] = { - {"2026 Rebuilt", GetResource_2026_rebuilt_json, GetResource_2026_field_png}, - {"2025 Reefscape", GetResource_2025_reefscape_json, - GetResource_2025_field_png}, - {"2024 Crescendo", GetResource_2024_crescendo_json, - GetResource_2024_field_png}, - {"2023 Charged Up", GetResource_2023_chargedup_json, - GetResource_2023_field_png}, - {"2022 Rapid React", GetResource_2022_rapidreact_json, - GetResource_2022_field_png}, - {"2021 Barrel Racing Path", GetResource_2021_barrelracingpath_json, - GetResource_2021_barrel_png}, - {"2021 Bounce Path", GetResource_2021_bouncepath_json, - GetResource_2021_bounce_png}, - {"2021 Galactic Search A", GetResource_2021_galacticsearcha_json, + {"2026 FRC Rebuilt", GetResource_2026_rebuilt_json, + GetResource_2026_rebuilt_png}, + {"2025-2026 FTC DECODE", GetResource_2025_2026_decode_json, + GetResource_2025_2026_decode_png}, + {"2025 FRC Reefscape", GetResource_2025_reefscape_json, + GetResource_2025_reefscape_png}, + {"2024-2025 FTC Into The Deep", GetResource_2024_2025_intothedeep_json, + GetResource_2024_2025_intothedeep_png}, + {"2024 FRC Crescendo", GetResource_2024_crescendo_json, + GetResource_2024_crescendo_png}, + {"2023 FRC Charged Up", GetResource_2023_chargedup_json, + GetResource_2023_chargedup_png}, + {"2022 FRC Rapid React", GetResource_2022_rapidreact_json, + GetResource_2022_rapidreact_png}, + {"2021 FRC Barrel Racing Path", GetResource_2021_barrelracingpath_json, + GetResource_2021_barrelracingpath_png}, + {"2021 FRC Bounce Path", GetResource_2021_bouncepath_json, + GetResource_2021_bouncepath_png}, + {"2021 FRC Galactic Search A", GetResource_2021_galacticsearcha_json, GetResource_2021_galacticsearcha_png}, - {"2021 Galactic Search B", GetResource_2021_galacticsearchb_json, + {"2021 FRC Galactic Search B", GetResource_2021_galacticsearchb_json, GetResource_2021_galacticsearchb_png}, - {"2021 Infinite Recharge", GetResource_2021_infiniterecharge_json, - GetResource_2021_field_png}, - {"2021 Slalom Path", GetResource_2021_slalompath_json, - GetResource_2021_slalom_png}, - {"2020 Infinite Recharge", GetResource_2020_infiniterecharge_json, - GetResource_2020_field_png}, - {"2019 Destination: Deep Space", GetResource_2019_deepspace_json, - GetResource_2019_field_jpg}, - {"2018 Power Up", GetResource_2018_powerup_json, - GetResource_2018_field_jpg}, + {"2021 FRC Infinite Recharge", GetResource_2021_infiniterecharge_json, + GetResource_2021_infiniterecharge_png}, + {"2021 FRC Slalom Path", GetResource_2021_slalompath_json, + GetResource_2021_slalompath_png}, + {"2020 FRC Infinite Recharge", GetResource_2020_infiniterecharge_json, + GetResource_2020_infiniterecharge_png}, + {"2019 FRC Destination: Deep Space", GetResource_2019_deepspace_json, + GetResource_2019_deepspace_jpg}, + {"2018 FRC Power Up", GetResource_2018_powerup_json, + GetResource_2018_powerup_jpg}, }; std::span wpi::fields::GetFields() { diff --git a/fields/src/main/native/include/wpi/fields/2018-powerup.hpp b/fields/src/main/native/include/wpi/fields/frc/2018-powerup.hpp similarity index 87% rename from fields/src/main/native/include/wpi/fields/2018-powerup.hpp rename to fields/src/main/native/include/wpi/fields/frc/2018-powerup.hpp index d909ad34e1..45b41fffe5 100644 --- a/fields/src/main/native/include/wpi/fields/2018-powerup.hpp +++ b/fields/src/main/native/include/wpi/fields/frc/2018-powerup.hpp @@ -8,5 +8,5 @@ namespace wpi::fields { std::string_view GetResource_2018_powerup_json(); -std::string_view GetResource_2018_field_jpg(); +std::string_view GetResource_2018_powerup_jpg(); } // namespace wpi::fields diff --git a/fields/src/main/native/include/wpi/fields/2019-deepspace.hpp b/fields/src/main/native/include/wpi/fields/frc/2019-deepspace.hpp similarity index 86% rename from fields/src/main/native/include/wpi/fields/2019-deepspace.hpp rename to fields/src/main/native/include/wpi/fields/frc/2019-deepspace.hpp index b21b8c9f52..3c79f52f9a 100644 --- a/fields/src/main/native/include/wpi/fields/2019-deepspace.hpp +++ b/fields/src/main/native/include/wpi/fields/frc/2019-deepspace.hpp @@ -5,8 +5,7 @@ #pragma once #include - namespace wpi::fields { std::string_view GetResource_2019_deepspace_json(); -std::string_view GetResource_2019_field_jpg(); +std::string_view GetResource_2019_deepspace_jpg(); } // namespace wpi::fields diff --git a/fields/src/main/native/include/wpi/fields/2020-infiniterecharge.hpp b/fields/src/main/native/include/wpi/fields/frc/2020-infiniterecharge.hpp similarity index 85% rename from fields/src/main/native/include/wpi/fields/2020-infiniterecharge.hpp rename to fields/src/main/native/include/wpi/fields/frc/2020-infiniterecharge.hpp index 622a27f7c2..8d6835a08c 100644 --- a/fields/src/main/native/include/wpi/fields/2020-infiniterecharge.hpp +++ b/fields/src/main/native/include/wpi/fields/frc/2020-infiniterecharge.hpp @@ -8,5 +8,5 @@ namespace wpi::fields { std::string_view GetResource_2020_infiniterecharge_json(); -std::string_view GetResource_2020_field_png(); +std::string_view GetResource_2020_infiniterecharge_png(); } // namespace wpi::fields diff --git a/fields/src/main/native/include/wpi/fields/2021-barrel.hpp b/fields/src/main/native/include/wpi/fields/frc/2021-barrelracingpath.hpp similarity index 85% rename from fields/src/main/native/include/wpi/fields/2021-barrel.hpp rename to fields/src/main/native/include/wpi/fields/frc/2021-barrelracingpath.hpp index bb8e0b2e90..b39ecd621c 100644 --- a/fields/src/main/native/include/wpi/fields/2021-barrel.hpp +++ b/fields/src/main/native/include/wpi/fields/frc/2021-barrelracingpath.hpp @@ -8,5 +8,5 @@ namespace wpi::fields { std::string_view GetResource_2021_barrelracingpath_json(); -std::string_view GetResource_2021_barrel_png(); +std::string_view GetResource_2021_barrelracingpath_png(); } // namespace wpi::fields diff --git a/fields/src/main/native/include/wpi/fields/2021-bounce.hpp b/fields/src/main/native/include/wpi/fields/frc/2021-bouncepath.hpp similarity index 86% rename from fields/src/main/native/include/wpi/fields/2021-bounce.hpp rename to fields/src/main/native/include/wpi/fields/frc/2021-bouncepath.hpp index 1d2fc19141..6a882cbe48 100644 --- a/fields/src/main/native/include/wpi/fields/2021-bounce.hpp +++ b/fields/src/main/native/include/wpi/fields/frc/2021-bouncepath.hpp @@ -8,5 +8,5 @@ namespace wpi::fields { std::string_view GetResource_2021_bouncepath_json(); -std::string_view GetResource_2021_bounce_png(); +std::string_view GetResource_2021_bouncepath_png(); } // namespace wpi::fields diff --git a/fields/src/main/native/include/wpi/fields/2021-galacticsearcha.hpp b/fields/src/main/native/include/wpi/fields/frc/2021-galacticsearcha.hpp similarity index 100% rename from fields/src/main/native/include/wpi/fields/2021-galacticsearcha.hpp rename to fields/src/main/native/include/wpi/fields/frc/2021-galacticsearcha.hpp diff --git a/fields/src/main/native/include/wpi/fields/2021-galacticsearchb.hpp b/fields/src/main/native/include/wpi/fields/frc/2021-galacticsearchb.hpp similarity index 100% rename from fields/src/main/native/include/wpi/fields/2021-galacticsearchb.hpp rename to fields/src/main/native/include/wpi/fields/frc/2021-galacticsearchb.hpp diff --git a/fields/src/main/native/include/wpi/fields/2021-infiniterecharge.hpp b/fields/src/main/native/include/wpi/fields/frc/2021-infiniterecharge.hpp similarity index 85% rename from fields/src/main/native/include/wpi/fields/2021-infiniterecharge.hpp rename to fields/src/main/native/include/wpi/fields/frc/2021-infiniterecharge.hpp index 62651a8ae8..affe33585e 100644 --- a/fields/src/main/native/include/wpi/fields/2021-infiniterecharge.hpp +++ b/fields/src/main/native/include/wpi/fields/frc/2021-infiniterecharge.hpp @@ -7,6 +7,6 @@ #include namespace wpi::fields { -std::string_view GetResource_2021_field_png(); std::string_view GetResource_2021_infiniterecharge_json(); +std::string_view GetResource_2021_infiniterecharge_png(); } // namespace wpi::fields diff --git a/fields/src/main/native/include/wpi/fields/2021-slalom.hpp b/fields/src/main/native/include/wpi/fields/frc/2021-slalompath.hpp similarity index 86% rename from fields/src/main/native/include/wpi/fields/2021-slalom.hpp rename to fields/src/main/native/include/wpi/fields/frc/2021-slalompath.hpp index 704072883e..96909e7741 100644 --- a/fields/src/main/native/include/wpi/fields/2021-slalom.hpp +++ b/fields/src/main/native/include/wpi/fields/frc/2021-slalompath.hpp @@ -8,5 +8,5 @@ namespace wpi::fields { std::string_view GetResource_2021_slalompath_json(); -std::string_view GetResource_2021_slalom_png(); +std::string_view GetResource_2021_slalompath_png(); } // namespace wpi::fields diff --git a/fields/src/main/native/include/wpi/fields/2022-rapidreact.hpp b/fields/src/main/native/include/wpi/fields/frc/2022-rapidreact.hpp similarity index 86% rename from fields/src/main/native/include/wpi/fields/2022-rapidreact.hpp rename to fields/src/main/native/include/wpi/fields/frc/2022-rapidreact.hpp index 6bfe12c9ce..1a42c86962 100644 --- a/fields/src/main/native/include/wpi/fields/2022-rapidreact.hpp +++ b/fields/src/main/native/include/wpi/fields/frc/2022-rapidreact.hpp @@ -8,5 +8,5 @@ namespace wpi::fields { std::string_view GetResource_2022_rapidreact_json(); -std::string_view GetResource_2022_field_png(); +std::string_view GetResource_2022_rapidreact_png(); } // namespace wpi::fields diff --git a/fields/src/main/native/include/wpi/fields/2023-chargedup.hpp b/fields/src/main/native/include/wpi/fields/frc/2023-chargedup.hpp similarity index 87% rename from fields/src/main/native/include/wpi/fields/2023-chargedup.hpp rename to fields/src/main/native/include/wpi/fields/frc/2023-chargedup.hpp index 674480a794..e2ad2831c0 100644 --- a/fields/src/main/native/include/wpi/fields/2023-chargedup.hpp +++ b/fields/src/main/native/include/wpi/fields/frc/2023-chargedup.hpp @@ -8,5 +8,5 @@ namespace wpi::fields { std::string_view GetResource_2023_chargedup_json(); -std::string_view GetResource_2023_field_png(); +std::string_view GetResource_2023_chargedup_png(); } // namespace wpi::fields diff --git a/fields/src/main/native/include/wpi/fields/2024-crescendo.hpp b/fields/src/main/native/include/wpi/fields/frc/2024-crescendo.hpp similarity index 87% rename from fields/src/main/native/include/wpi/fields/2024-crescendo.hpp rename to fields/src/main/native/include/wpi/fields/frc/2024-crescendo.hpp index 2b3f8c487b..19adc37909 100644 --- a/fields/src/main/native/include/wpi/fields/2024-crescendo.hpp +++ b/fields/src/main/native/include/wpi/fields/frc/2024-crescendo.hpp @@ -8,5 +8,5 @@ namespace wpi::fields { std::string_view GetResource_2024_crescendo_json(); -std::string_view GetResource_2024_field_png(); +std::string_view GetResource_2024_crescendo_png(); } // namespace wpi::fields diff --git a/fields/src/main/native/include/wpi/fields/2025-reefscape.hpp b/fields/src/main/native/include/wpi/fields/frc/2025-reefscape.hpp similarity index 87% rename from fields/src/main/native/include/wpi/fields/2025-reefscape.hpp rename to fields/src/main/native/include/wpi/fields/frc/2025-reefscape.hpp index f73e0924f9..fff58470f7 100644 --- a/fields/src/main/native/include/wpi/fields/2025-reefscape.hpp +++ b/fields/src/main/native/include/wpi/fields/frc/2025-reefscape.hpp @@ -8,5 +8,5 @@ namespace wpi::fields { std::string_view GetResource_2025_reefscape_json(); -std::string_view GetResource_2025_field_png(); +std::string_view GetResource_2025_reefscape_png(); } // namespace wpi::fields diff --git a/fields/src/main/native/include/wpi/fields/2026-rebuilt.hpp b/fields/src/main/native/include/wpi/fields/frc/2026-rebuilt.hpp similarity index 87% rename from fields/src/main/native/include/wpi/fields/2026-rebuilt.hpp rename to fields/src/main/native/include/wpi/fields/frc/2026-rebuilt.hpp index 25a3ad1f45..55850975c2 100644 --- a/fields/src/main/native/include/wpi/fields/2026-rebuilt.hpp +++ b/fields/src/main/native/include/wpi/fields/frc/2026-rebuilt.hpp @@ -8,5 +8,5 @@ namespace wpi::fields { std::string_view GetResource_2026_rebuilt_json(); -std::string_view GetResource_2026_field_png(); +std::string_view GetResource_2026_rebuilt_png(); } // namespace wpi::fields diff --git a/fields/src/main/native/include/wpi/fields/ftc/2024-2025-intothedeep.hpp b/fields/src/main/native/include/wpi/fields/ftc/2024-2025-intothedeep.hpp new file mode 100644 index 0000000000..4ddce414d5 --- /dev/null +++ b/fields/src/main/native/include/wpi/fields/ftc/2024-2025-intothedeep.hpp @@ -0,0 +1,12 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +#pragma once + +#include + +namespace wpi::fields { +std::string_view GetResource_2024_2025_intothedeep_json(); +std::string_view GetResource_2024_2025_intothedeep_png(); +} // namespace wpi::fields diff --git a/fields/src/main/native/include/wpi/fields/ftc/2025-2026-decode.hpp b/fields/src/main/native/include/wpi/fields/ftc/2025-2026-decode.hpp new file mode 100644 index 0000000000..5c71f4555c --- /dev/null +++ b/fields/src/main/native/include/wpi/fields/ftc/2025-2026-decode.hpp @@ -0,0 +1,12 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +#pragma once + +#include + +namespace wpi::fields { +std::string_view GetResource_2025_2026_decode_json(); +std::string_view GetResource_2025_2026_decode_png(); +} // namespace wpi::fields diff --git a/fields/src/main/native/resources/org/wpilib/fields/2018-field.jpg b/fields/src/main/native/resources/org/wpilib/fields/2018-field.jpg deleted file mode 100644 index cf5bb91f6c..0000000000 Binary files a/fields/src/main/native/resources/org/wpilib/fields/2018-field.jpg and /dev/null differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2018-powerup.json b/fields/src/main/native/resources/org/wpilib/fields/2018-powerup.json deleted file mode 100644 index 74c58838fe..0000000000 --- a/fields/src/main/native/resources/org/wpilib/fields/2018-powerup.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "game": "FIRST Power Up", - "field-image": "2018-field.jpg", - "field-corners": { - "top-left": [ - 125, - 20 - ], - "bottom-right": [ - 827, - 370 - ] - }, - "field-size": [ - 54, - 27 - ], - "field-unit": "feet" -} diff --git a/fields/src/main/native/resources/org/wpilib/fields/2019-deepspace.json b/fields/src/main/native/resources/org/wpilib/fields/2019-deepspace.json deleted file mode 100644 index a0b0fd1f69..0000000000 --- a/fields/src/main/native/resources/org/wpilib/fields/2019-deepspace.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "game": "Destination: Deep Space", - "field-image": "2019-field.jpg", - "field-corners": { - "top-left": [ - 217, - 40 - ], - "bottom-right": [ - 1372, - 615 - ] - }, - "field-size": [ - 54, - 27 - ], - "field-unit": "foot" -} diff --git a/fields/src/main/native/resources/org/wpilib/fields/2019-field.jpg b/fields/src/main/native/resources/org/wpilib/fields/2019-field.jpg deleted file mode 100644 index 20b966268d..0000000000 Binary files a/fields/src/main/native/resources/org/wpilib/fields/2019-field.jpg and /dev/null differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2020-field.png b/fields/src/main/native/resources/org/wpilib/fields/2020-field.png deleted file mode 100644 index 8b18648e82..0000000000 Binary files a/fields/src/main/native/resources/org/wpilib/fields/2020-field.png and /dev/null differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2020-infiniterecharge.json b/fields/src/main/native/resources/org/wpilib/fields/2020-infiniterecharge.json deleted file mode 100644 index 7109f5c6e3..0000000000 --- a/fields/src/main/native/resources/org/wpilib/fields/2020-infiniterecharge.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "game": "Infinite Recharge", - "field-image": "2020-field.png", - "field-corners": { - "top-left": [ - 96, - 25 - ], - "bottom-right": [ - 1040, - 514 - ] - }, - "field-size": [ - 52.4375, - 26.9375 - ], - "field-unit": "foot" -} diff --git a/fields/src/main/native/resources/org/wpilib/fields/2021-barrel.png b/fields/src/main/native/resources/org/wpilib/fields/2021-barrel.png deleted file mode 100644 index acfc96a44e..0000000000 Binary files a/fields/src/main/native/resources/org/wpilib/fields/2021-barrel.png and /dev/null differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2021-bounce.png b/fields/src/main/native/resources/org/wpilib/fields/2021-bounce.png deleted file mode 100644 index 8f9594aea9..0000000000 Binary files a/fields/src/main/native/resources/org/wpilib/fields/2021-bounce.png and /dev/null differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2021-field.png b/fields/src/main/native/resources/org/wpilib/fields/2021-field.png deleted file mode 100644 index 3c74df88da..0000000000 Binary files a/fields/src/main/native/resources/org/wpilib/fields/2021-field.png and /dev/null differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2021-galacticsearcha.png b/fields/src/main/native/resources/org/wpilib/fields/2021-galacticsearcha.png deleted file mode 100644 index 69b10d68d2..0000000000 Binary files a/fields/src/main/native/resources/org/wpilib/fields/2021-galacticsearcha.png and /dev/null differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2021-galacticsearchb.png b/fields/src/main/native/resources/org/wpilib/fields/2021-galacticsearchb.png deleted file mode 100644 index 90daef5a1b..0000000000 Binary files a/fields/src/main/native/resources/org/wpilib/fields/2021-galacticsearchb.png and /dev/null differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2021-infiniterecharge.json b/fields/src/main/native/resources/org/wpilib/fields/2021-infiniterecharge.json deleted file mode 100644 index 9af45c0b61..0000000000 --- a/fields/src/main/native/resources/org/wpilib/fields/2021-infiniterecharge.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "game": "Infinite Recharge 2021", - "field-image": "2021-field.png", - "field-corners": { - "top-left": [ - 127, - 34 - ], - "bottom-right": [ - 1323, - 649 - ] - }, - "field-size": [ - 52.4375, - 26.9375 - ], - "field-unit": "foot" -} diff --git a/fields/src/main/native/resources/org/wpilib/fields/2021-slalom.png b/fields/src/main/native/resources/org/wpilib/fields/2021-slalom.png deleted file mode 100644 index b1753268cd..0000000000 Binary files a/fields/src/main/native/resources/org/wpilib/fields/2021-slalom.png and /dev/null differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2022-field.png b/fields/src/main/native/resources/org/wpilib/fields/2022-field.png deleted file mode 100644 index 6cb5088709..0000000000 Binary files a/fields/src/main/native/resources/org/wpilib/fields/2022-field.png and /dev/null differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2022-rapidreact.json b/fields/src/main/native/resources/org/wpilib/fields/2022-rapidreact.json deleted file mode 100644 index 7d2428efa9..0000000000 --- a/fields/src/main/native/resources/org/wpilib/fields/2022-rapidreact.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "game": "Rapid React", - "field-image": "2022-field.png", - "field-corners": { - "top-left": [ - 74, - 50 - ], - "bottom-right": [ - 1774, - 900 - ] - }, - "field-size": [ - 54, - 27 - ], - "field-unit": "foot" -} diff --git a/fields/src/main/native/resources/org/wpilib/fields/2023-field.png b/fields/src/main/native/resources/org/wpilib/fields/2023-field.png deleted file mode 100644 index ab3f0ff333..0000000000 Binary files a/fields/src/main/native/resources/org/wpilib/fields/2023-field.png and /dev/null differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2024-crescendo.json b/fields/src/main/native/resources/org/wpilib/fields/2024-crescendo.json deleted file mode 100644 index 8a601a2acd..0000000000 --- a/fields/src/main/native/resources/org/wpilib/fields/2024-crescendo.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "game": "Crescendo", - "field-image": "2024-field.png", - "field-corners": { - "top-left": [ - 150, - 79 - ], - "bottom-right": [ - 2961, - 1476 - ] - }, - "field-size": [ - 54.27083, - 26.9375 - ], - "field-unit": "foot" -} diff --git a/fields/src/main/native/resources/org/wpilib/fields/2024-field.png b/fields/src/main/native/resources/org/wpilib/fields/2024-field.png deleted file mode 100644 index a2a7665f72..0000000000 Binary files a/fields/src/main/native/resources/org/wpilib/fields/2024-field.png and /dev/null differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2025-field.png b/fields/src/main/native/resources/org/wpilib/fields/2025-field.png deleted file mode 100644 index 43b79febe7..0000000000 Binary files a/fields/src/main/native/resources/org/wpilib/fields/2025-field.png and /dev/null differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2026-field.png b/fields/src/main/native/resources/org/wpilib/fields/2026-field.png deleted file mode 100644 index b4f0295e8e..0000000000 Binary files a/fields/src/main/native/resources/org/wpilib/fields/2026-field.png and /dev/null differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2026-rebuilt.json b/fields/src/main/native/resources/org/wpilib/fields/2026-rebuilt.json deleted file mode 100644 index bc8675c0d4..0000000000 --- a/fields/src/main/native/resources/org/wpilib/fields/2026-rebuilt.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "game": "Rebuilt", - "field-image": "2026-field.png", - "field-corners": { - "top-left": [ - 245, - 118 - ], - "bottom-right": [ - 3942, - 1914 - ] - }, - "field-size": [ - 54.269, - 26.474 - ], - "field-unit": "foot" -} diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2018-powerup.jpg b/fields/src/main/native/resources/org/wpilib/fields/frc/2018-powerup.jpg new file mode 100644 index 0000000000..013f0e7ddf Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/frc/2018-powerup.jpg differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2018-powerup.json b/fields/src/main/native/resources/org/wpilib/fields/frc/2018-powerup.json new file mode 100644 index 0000000000..393af31235 --- /dev/null +++ b/fields/src/main/native/resources/org/wpilib/fields/frc/2018-powerup.json @@ -0,0 +1,20 @@ +{ + "game": "2018 FRC Power Up", + "field-image": "2018-powerup.jpg", + "field-corners": { + "top-left": [ + 133, + 23 + ], + "bottom-right": [ + 835, + 373 + ] + }, + "field-size": [ + 54, + 27 + ], + "field-unit": "foot", + "program": "frc" +} diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2019-deepspace.jpg b/fields/src/main/native/resources/org/wpilib/fields/frc/2019-deepspace.jpg new file mode 100644 index 0000000000..3aedf3e159 Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/frc/2019-deepspace.jpg differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2019-deepspace.json b/fields/src/main/native/resources/org/wpilib/fields/frc/2019-deepspace.json new file mode 100644 index 0000000000..dab9ba1c09 --- /dev/null +++ b/fields/src/main/native/resources/org/wpilib/fields/frc/2019-deepspace.json @@ -0,0 +1,20 @@ +{ + "game": "2019 FRC Destination: Deep Space", + "field-image": "2019-deepspace.jpg", + "field-corners": { + "top-left": [ + 220, + 41 + ], + "bottom-right": [ + 1375, + 616 + ] + }, + "field-size": [ + 54, + 27 + ], + "field-unit": "foot", + "program": "frc" +} diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2020-infiniterecharge.json b/fields/src/main/native/resources/org/wpilib/fields/frc/2020-infiniterecharge.json new file mode 100644 index 0000000000..ca8bd95c2d --- /dev/null +++ b/fields/src/main/native/resources/org/wpilib/fields/frc/2020-infiniterecharge.json @@ -0,0 +1,20 @@ +{ + "game": "2020 FRC Infinite Recharge", + "field-image": "2020-infiniterecharge.png", + "field-corners": { + "top-left": [ + 94, + 26 + ], + "bottom-right": [ + 1038, + 515 + ] + }, + "field-size": [ + 52.4375, + 26.9375 + ], + "field-unit": "foot", + "program": "frc" +} diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2020-infiniterecharge.png b/fields/src/main/native/resources/org/wpilib/fields/frc/2020-infiniterecharge.png new file mode 100644 index 0000000000..5c0b415ef2 Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/frc/2020-infiniterecharge.png differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2021-barrelracingpath.json b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-barrelracingpath.json similarity index 55% rename from fields/src/main/native/resources/org/wpilib/fields/2021-barrelracingpath.json rename to fields/src/main/native/resources/org/wpilib/fields/frc/2021-barrelracingpath.json index b7b063c521..6c1025a2d0 100644 --- a/fields/src/main/native/resources/org/wpilib/fields/2021-barrelracingpath.json +++ b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-barrelracingpath.json @@ -1,6 +1,6 @@ { - "game": "Barrel Racing Path", - "field-image": "2021-barrel.png", + "game": "2021 FRC Barrel Racing Path", + "field-image": "2021-barrelracingpath.png", "field-corners": { "top-left": [ 20, @@ -15,5 +15,6 @@ 30, 15 ], - "field-unit": "feet" + "field-unit": "foot", + "program": "frc" } diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2021-barrelracingpath.png b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-barrelracingpath.png new file mode 100644 index 0000000000..6067f4aace Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-barrelracingpath.png differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2021-bouncepath.json b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-bouncepath.json similarity index 57% rename from fields/src/main/native/resources/org/wpilib/fields/2021-bouncepath.json rename to fields/src/main/native/resources/org/wpilib/fields/frc/2021-bouncepath.json index a126e22705..67bc69548d 100644 --- a/fields/src/main/native/resources/org/wpilib/fields/2021-bouncepath.json +++ b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-bouncepath.json @@ -1,6 +1,6 @@ { - "game": "Bounce Path", - "field-image": "2021-bounce.png", + "game": "2021 FRC Bounce Path", + "field-image": "2021-bouncepath.png", "field-corners": { "top-left": [ 20, @@ -15,5 +15,6 @@ 30, 15 ], - "field-unit": "feet" + "field-unit": "foot", + "program": "frc" } diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2021-bouncepath.png b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-bouncepath.png new file mode 100644 index 0000000000..3b764a313e Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-bouncepath.png differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2021-galacticsearcha.json b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-galacticsearcha.json similarity index 71% rename from fields/src/main/native/resources/org/wpilib/fields/2021-galacticsearcha.json rename to fields/src/main/native/resources/org/wpilib/fields/frc/2021-galacticsearcha.json index 5bed8187fa..73f2a7cecf 100644 --- a/fields/src/main/native/resources/org/wpilib/fields/2021-galacticsearcha.json +++ b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-galacticsearcha.json @@ -1,5 +1,5 @@ { - "game": "Galactic Search A", + "game": "2021 FRC Galactic Search A", "field-image": "2021-galacticsearcha.png", "field-corners": { "top-left": [ @@ -15,5 +15,6 @@ 30, 15 ], - "field-unit": "feet" + "field-unit": "foot", + "program": "frc" } diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2021-galacticsearcha.png b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-galacticsearcha.png new file mode 100644 index 0000000000..c6711bc073 Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-galacticsearcha.png differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2021-galacticsearchb.json b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-galacticsearchb.json similarity index 71% rename from fields/src/main/native/resources/org/wpilib/fields/2021-galacticsearchb.json rename to fields/src/main/native/resources/org/wpilib/fields/frc/2021-galacticsearchb.json index 0d2d1b557e..bda1122146 100644 --- a/fields/src/main/native/resources/org/wpilib/fields/2021-galacticsearchb.json +++ b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-galacticsearchb.json @@ -1,5 +1,5 @@ { - "game": "Galactic Search B", + "game": "2021 FRC Galactic Search B", "field-image": "2021-galacticsearchb.png", "field-corners": { "top-left": [ @@ -15,5 +15,6 @@ 30, 15 ], - "field-unit": "feet" + "field-unit": "foot", + "program": "frc" } diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2021-galacticsearchb.png b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-galacticsearchb.png new file mode 100644 index 0000000000..03a45dd220 Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-galacticsearchb.png differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2021-infiniterecharge.json b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-infiniterecharge.json new file mode 100644 index 0000000000..0124aa5afd --- /dev/null +++ b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-infiniterecharge.json @@ -0,0 +1,20 @@ +{ + "game": "2021 FRC Infinite Recharge", + "field-image": "2021-infiniterecharge.png", + "field-corners": { + "top-left": [ + 133, + 35 + ], + "bottom-right": [ + 1329, + 650 + ] + }, + "field-size": [ + 52.4375, + 26.9375 + ], + "field-unit": "foot", + "program": "frc" +} diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2021-infiniterecharge.png b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-infiniterecharge.png new file mode 100644 index 0000000000..d05ca0f772 Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-infiniterecharge.png differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2021-slalompath.json b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-slalompath.json similarity index 57% rename from fields/src/main/native/resources/org/wpilib/fields/2021-slalompath.json rename to fields/src/main/native/resources/org/wpilib/fields/frc/2021-slalompath.json index a728ef38a8..3a8373ea0b 100644 --- a/fields/src/main/native/resources/org/wpilib/fields/2021-slalompath.json +++ b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-slalompath.json @@ -1,6 +1,6 @@ { - "game": "Slalom Path", - "field-image": "2021-slalom.png", + "game": "2021 FRC Slalom Path", + "field-image": "2021-slalompath.png", "field-corners": { "top-left": [ 20, @@ -15,5 +15,6 @@ 30, 15 ], - "field-unit": "feet" + "field-unit": "foot", + "program": "frc" } diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2021-slalompath.png b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-slalompath.png new file mode 100644 index 0000000000..75fa1f7719 Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/frc/2021-slalompath.png differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2022-rapidreact.json b/fields/src/main/native/resources/org/wpilib/fields/frc/2022-rapidreact.json new file mode 100644 index 0000000000..bc7093c329 --- /dev/null +++ b/fields/src/main/native/resources/org/wpilib/fields/frc/2022-rapidreact.json @@ -0,0 +1,20 @@ +{ + "game": "2022 FRC Rapid React", + "field-image": "2022-rapidreact.png", + "field-corners": { + "top-left": [ + 85, + 49 + ], + "bottom-right": [ + 1785, + 899 + ] + }, + "field-size": [ + 54, + 27 + ], + "field-unit": "foot", + "program": "frc" +} diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2022-rapidreact.png b/fields/src/main/native/resources/org/wpilib/fields/frc/2022-rapidreact.png new file mode 100644 index 0000000000..9d003c063b Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/frc/2022-rapidreact.png differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2023-chargedup.json b/fields/src/main/native/resources/org/wpilib/fields/frc/2023-chargedup.json similarity index 60% rename from fields/src/main/native/resources/org/wpilib/fields/2023-chargedup.json rename to fields/src/main/native/resources/org/wpilib/fields/frc/2023-chargedup.json index bbd9f41bdd..b9db1bd433 100644 --- a/fields/src/main/native/resources/org/wpilib/fields/2023-chargedup.json +++ b/fields/src/main/native/resources/org/wpilib/fields/frc/2023-chargedup.json @@ -1,6 +1,6 @@ { - "game": "Charged Up", - "field-image": "2023-field.png", + "game": "2023 FRC Charged Up", + "field-image": "2023-chargedup.png", "field-corners": { "top-left": [ 46, @@ -15,5 +15,6 @@ 54.27083, 26.2916 ], - "field-unit": "foot" + "field-unit": "foot", + "program": "frc" } diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2023-chargedup.png b/fields/src/main/native/resources/org/wpilib/fields/frc/2023-chargedup.png new file mode 100644 index 0000000000..45dcd5b609 Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/frc/2023-chargedup.png differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2024-crescendo.json b/fields/src/main/native/resources/org/wpilib/fields/frc/2024-crescendo.json new file mode 100644 index 0000000000..8a5533ae7a --- /dev/null +++ b/fields/src/main/native/resources/org/wpilib/fields/frc/2024-crescendo.json @@ -0,0 +1,20 @@ +{ + "game": "2024 FRC Crescendo", + "field-image": "2024-crescendo.png", + "field-corners": { + "top-left": [ + 151, + 80 + ], + "bottom-right": [ + 2962, + 1477 + ] + }, + "field-size": [ + 54.27083, + 26.9375 + ], + "field-unit": "foot", + "program": "frc" +} diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2024-crescendo.png b/fields/src/main/native/resources/org/wpilib/fields/frc/2024-crescendo.png new file mode 100644 index 0000000000..827777c6be Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/frc/2024-crescendo.png differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/2025-reefscape.json b/fields/src/main/native/resources/org/wpilib/fields/frc/2025-reefscape.json similarity index 52% rename from fields/src/main/native/resources/org/wpilib/fields/2025-reefscape.json rename to fields/src/main/native/resources/org/wpilib/fields/frc/2025-reefscape.json index c84464788c..2c884e5311 100644 --- a/fields/src/main/native/resources/org/wpilib/fields/2025-reefscape.json +++ b/fields/src/main/native/resources/org/wpilib/fields/frc/2025-reefscape.json @@ -1,19 +1,20 @@ { - "game": "Reefscape", - "field-image": "2025-field.png", + "game": "2025 FRC Reefscape", + "field-image": "2025-reefscape.png", "field-corners": { "top-left": [ 534, - 291 + 289 ], "bottom-right": [ 3466, - 1638 + 1636 ] }, "field-size": [ 57.573, 26.417 ], - "field-unit": "foot" + "field-unit": "foot", + "program": "frc" } diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2025-reefscape.png b/fields/src/main/native/resources/org/wpilib/fields/frc/2025-reefscape.png new file mode 100644 index 0000000000..37c35e3190 Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/frc/2025-reefscape.png differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2026-rebuilt.json b/fields/src/main/native/resources/org/wpilib/fields/frc/2026-rebuilt.json new file mode 100644 index 0000000000..ed23f6a609 --- /dev/null +++ b/fields/src/main/native/resources/org/wpilib/fields/frc/2026-rebuilt.json @@ -0,0 +1,20 @@ +{ + "game": "2026 FRC Rebuilt", + "field-image": "2026-rebuilt.png", + "field-corners": { + "top-left": [ + 254, + 121 + ], + "bottom-right": [ + 3951, + 1917 + ] + }, + "field-size": [ + 54.269, + 26.474 + ], + "field-unit": "foot", + "program": "frc" +} diff --git a/fields/src/main/native/resources/org/wpilib/fields/frc/2026-rebuilt.png b/fields/src/main/native/resources/org/wpilib/fields/frc/2026-rebuilt.png new file mode 100644 index 0000000000..9a42ada994 Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/frc/2026-rebuilt.png differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/ftc/2024-2025-intothedeep.json b/fields/src/main/native/resources/org/wpilib/fields/ftc/2024-2025-intothedeep.json new file mode 100644 index 0000000000..74f7335d8b --- /dev/null +++ b/fields/src/main/native/resources/org/wpilib/fields/ftc/2024-2025-intothedeep.json @@ -0,0 +1,20 @@ +{ + "game": "2024-2025 FTC Into The Deep", + "field-image": "2024-2025-intothedeep.png", + "field-corners": { + "top-left": [ + 0, + 0 + ], + "bottom-right": [ + 2214, + 2214 + ] + }, + "field-size": [ + 11.93183333, + 11.93183333 + ], + "field-unit": "foot", + "program": "ftc" +} diff --git a/fields/src/main/native/resources/org/wpilib/fields/ftc/2024-2025-intothedeep.png b/fields/src/main/native/resources/org/wpilib/fields/ftc/2024-2025-intothedeep.png new file mode 100644 index 0000000000..7f4516839e Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/ftc/2024-2025-intothedeep.png differ diff --git a/fields/src/main/native/resources/org/wpilib/fields/ftc/2025-2026-decode.json b/fields/src/main/native/resources/org/wpilib/fields/ftc/2025-2026-decode.json new file mode 100644 index 0000000000..95f793b3f3 --- /dev/null +++ b/fields/src/main/native/resources/org/wpilib/fields/ftc/2025-2026-decode.json @@ -0,0 +1,20 @@ +{ + "game": "2025-2026 FTC DECODE", + "field-image": "2025-2026-decode.png", + "field-corners": { + "top-left": [ + 0, + 0 + ], + "bottom-right": [ + 2445, + 2445 + ] + }, + "field-size": [ + 11.93183333, + 11.93183333 + ], + "field-unit": "foot", + "program": "ftc" +} diff --git a/fields/src/main/native/resources/org/wpilib/fields/ftc/2025-2026-decode.png b/fields/src/main/native/resources/org/wpilib/fields/ftc/2025-2026-decode.png new file mode 100644 index 0000000000..bb34df26cd Binary files /dev/null and b/fields/src/main/native/resources/org/wpilib/fields/ftc/2025-2026-decode.png differ diff --git a/fields/src/test/java/org/wpilib/fields/LoadConfigTest.java b/fields/src/test/java/org/wpilib/fields/LoadConfigTest.java index 3e588ab166..fa3a2fee06 100644 --- a/fields/src/test/java/org/wpilib/fields/LoadConfigTest.java +++ b/fields/src/test/java/org/wpilib/fields/LoadConfigTest.java @@ -11,7 +11,7 @@ import org.junit.jupiter.params.provider.EnumSource; class LoadConfigTest { @ParameterizedTest @EnumSource(Fields.class) - void testLoad(Fields field) { + void testLoadFields(Fields field) { FieldConfig config = Assertions.assertDoesNotThrow(() -> FieldConfig.loadField(field)); Assertions.assertNotNull(config.getImageUrl()); diff --git a/glass/src/lib/native/cpp/other/Field2D.cpp b/glass/src/lib/native/cpp/other/Field2D.cpp index 74d51857d3..e5586dc864 100644 --- a/glass/src/lib/native/cpp/other/Field2D.cpp +++ b/glass/src/lib/native/cpp/other/Field2D.cpp @@ -348,7 +348,7 @@ static bool InputPose(wpi::math::Pose2d* pose) { } FieldInfo::FieldInfo(Storage& storage) - : m_builtin{storage.GetString("builtin", "2026 Rebuilt")}, + : m_builtin{storage.GetString("builtin", "Custom")}, m_filename{storage.GetString("image")}, m_width{storage.GetFloat("width", kDefaultWidth.to())}, m_height{storage.GetFloat("height", kDefaultHeight.to())}, @@ -490,8 +490,8 @@ bool FieldInfo::LoadJson(std::span is, std::string_view filename) { float width; float height; try { - width = j->at("field-size").at(0).get_float(); - height = j->at("field-size").at(1).get_float(); + width = j->at("field-size").at(0).get_number(); + height = j->at("field-size").at(1).get_number(); } catch (const std::logic_error& e) { wpi::util::print(stderr, "GUI: JSON: could not read field-size: {}\n", e.what());