Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
548fd17
create stream_listener
heavenfall Aug 6, 2025
0af8334
added listener functionality
heavenfall Aug 6, 2025
1524765
trace for grid
heavenfall Aug 7, 2025
e6c0f88
trace for grid
heavenfall Aug 7, 2025
f81c8ad
rename listener to observer
heavenfall Sep 5, 2025
d439de1
rename src observers
heavenfall Sep 5, 2025
8232fdd
listener renamed to observer
heavenfall Sep 11, 2025
0c755f7
added first part of log
heavenfall Sep 11, 2025
7660b0d
log in debug phase
heavenfall Sep 12, 2025
7a3fb87
global logger works with uds
heavenfall Sep 18, 2025
8dd72e4
update time to local time
heavenfall Sep 18, 2025
7eb6f45
update log interface
heavenfall Sep 30, 2025
798de27
ported to new logger
heavenfall Oct 1, 2025
47bf302
added logger comments
heavenfall Oct 3, 2025
ecfc59d
update posthoc trace with comments and trace rendering; added support…
heavenfall Oct 3, 2025
10bdd85
added expanded verbose message
heavenfall Oct 3, 2025
904dfb2
missing commit
heavenfall Oct 3, 2025
141532f
removed accidental file from git
heavenfall Oct 5, 2025
885ac31
auto clang-format action
github-actions[bot] Oct 17, 2025
9622516
added template node_pool
heavenfall Oct 21, 2025
01f6f2c
added traits to unidirectional_search
heavenfall Oct 22, 2025
75863a4
added custom search_node to node_pool
heavenfall Nov 6, 2025
92616fe
improve node_pool get_ptr efficency
heavenfall Nov 6, 2025
dac0e91
scenario serializer in progress
heavenfall Dec 4, 2025
82aba8b
update include order, more scenario seriallizer
heavenfall Dec 12, 2025
2d8fb82
work on scenario loading
heavenfall Dec 18, 2025
439fa3c
continue on dynaimc format reader
heavenfall Mar 12, 2026
18950eb
fix bugs to allow dynamic typed node_pool
heavenfall Mar 13, 2026
6453174
udi bugfix for template type
heavenfall Mar 13, 2026
ac432ff
udi search traits must be same type but do not check reference
heavenfall Mar 13, 2026
fe75828
Merge remote-tracking branch 'origin/develop' into feature/dynamic-node
heavenfall Mar 13, 2026
b196854
auto clang-format action
github-actions[bot] Mar 13, 2026
8cd576a
revert search_node h_ -> ub_ change
heavenfall Mar 13, 2026
080b9fb
manual format
heavenfall Mar 13, 2026
bca97ac
update serach_node with noexcept and removed static refcount
heavenfall Mar 17, 2026
56ff38f
auto clang-format action
github-actions[bot] Mar 17, 2026
ddf5e6a
Merge remote-tracking branch 'origin/feature/dynamic-node' into featu…
heavenfall Mar 18, 2026
45e9547
scenario seralizer work in progress to scenario_manager
heavenfall Mar 19, 2026
9a85099
convert scenario_manger to scenario_serialize for read-in in static
heavenfall Mar 20, 2026
37eff90
update scenario query syntax
heavenfall Mar 25, 2026
9c04620
auto clang-format action
github-actions[bot] Mar 25, 2026
3d6451f
update scenario_manager to support dynamic scenario (still to update …
heavenfall Apr 1, 2026
d2b177e
dynamic scenario progress
heavenfall Apr 8, 2026
77d8800
seperated scenario_manager to scenario_runner
heavenfall Apr 9, 2026
6b1f63e
move scenario related objects to new manager namespace
heavenfall Apr 10, 2026
8d29459
update grid seralizer to support dynamic patch set
heavenfall Apr 10, 2026
1e42ddd
added string utility and parsers
heavenfall Apr 14, 2026
d85fef9
ported istringstream to custom parser
heavenfall Apr 16, 2026
7e6b922
WIP table copy
heavenfall Apr 30, 2026
841f284
dynamic grid progress
heavenfall Apr 30, 2026
409b236
new scenario runner, static working, dynamic not running correctly
heavenfall May 1, 2026
0cb493d
bugfixes, dynamic scenario works
heavenfall May 5, 2026
3330552
auto clang-format action
github-actions[bot] May 5, 2026
bf893c2
reports no-solution correctly
heavenfall May 6, 2026
02f0886
rewrote labelled_gridmap to conform to gridmap
heavenfall May 7, 2026
c6d0a88
updated documention, rename query->inst and dist->cost
heavenfall May 7, 2026
8029a3d
bugfix uds typename
heavenfall May 7, 2026
482ac31
auto clang-format action
github-actions[bot] May 7, 2026
dc4f936
jetteson changes belonging to other branches
heavenfall May 7, 2026
992503c
jetteson stale files
heavenfall May 7, 2026
04b9236
bugfix
heavenfall May 7, 2026
c5442cb
added snapshot to warthog output
heavenfall May 7, 2026
86d8687
auto clang-format action
github-actions[bot] May 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
247 changes: 178 additions & 69 deletions apps/warthog.cpp

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions cmake/headers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,20 @@ include/warthog/heuristic/manhattan_heuristic.h
include/warthog/heuristic/octile_heuristic.h
include/warthog/heuristic/zero_heuristic.h

include/warthog/io/fwd.h
include/warthog/io/grid.h
include/warthog/io/grid_trace.h
include/warthog/io/log.h
include/warthog/io/observer.h
include/warthog/io/posthoc_trace.h
include/warthog/io/scenario.h
include/warthog/io/serialize_base.h
include/warthog/io/stream_observer.h

include/warthog/manager/experiment.h
include/warthog/manager/grid_patch_set.h
include/warthog/manager/scenario_manager.h
include/warthog/manager/scenario_runner.h

include/warthog/memory/arraylist.h
include/warthog/memory/bittable.h
Expand Down Expand Up @@ -60,6 +72,7 @@ include/warthog/util/intrin.h
include/warthog/util/macros.h
include/warthog/util/pqueue.h
include/warthog/util/scenario_manager.h
include/warthog/util/string.h
include/warthog/util/template.h
include/warthog/util/timer.h
include/warthog/util/vec_io.h
Expand Down
45 changes: 24 additions & 21 deletions include/warthog/domain/grid.h
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
#ifndef WARTHOG_DOMAIN_GRID_H
#define WARTHOG_DOMAIN_GRID_H

// domains/grid.h
//
// A place for grid-related curios
//
// @author: dharabor
// @created: 2018-11-03
//
/// @file domains/grid.h
///
/// A place for grid-related features.
/// Includes the grid identifier (id), direction (and direction_id),
/// point (coordinate) and utilities.
///
/// These utilities include conversion between direction/direction_id,
/// rotation, direction to point and inverse, helpers for grid traversal, etc.
///
/// @author: dharabor & Ryan Hechenberger
/// @created: 2018-11-03
///

#include <bit>
#include <bitset>
Expand All @@ -20,8 +25,6 @@
namespace warthog::grid
{

// TODO: document

using grid_id = pad32_id;

typedef enum : uint8_t
Expand Down Expand Up @@ -71,25 +74,25 @@ template<direction_id D>
concept SecInterCardinalID = static_cast<uint8_t>(D) >= 8;

/// @return is NORTH_ID/SOUTH_ID/EAST_ID/WEST_ID
constexpr inline bool
constexpr bool
is_cardinal_id(direction_id d) noexcept
{
return static_cast<uint8_t>(d) < 4;
}
/// @return is NORTHEAST_ID/NORTHWEST_ID/SOUTHEAST_ID/SOUTHWEST_ID
constexpr inline bool
constexpr bool
is_intercardinal_id(direction_id d) noexcept
{
return static_cast<uint8_t>(d - 4) < 4;
}
/// @return is a intercardinal+cardinal combined direction
constexpr inline bool
constexpr bool
is_secic_id(direction_id d) noexcept
{
return static_cast<uint8_t>(d) >= 8;
}
/// @return get the cardinal id from a combined direction
constexpr inline direction_id
constexpr direction_id
secic_cardinal(direction_id d) noexcept
{
direction_id c
Expand All @@ -98,7 +101,7 @@ secic_cardinal(direction_id d) noexcept
return c;
}
/// @return get the intercardinal id from a combined direction
constexpr inline direction_id
constexpr direction_id
secic_intercardinal(direction_id d) noexcept
{
direction_id c = static_cast<direction_id>(static_cast<uint8_t>(d) >> 3);
Expand Down Expand Up @@ -519,7 +522,7 @@ operator==(spoint a, spoint b)
return std::bit_cast<uint32_t>(a) == std::bit_cast<uint32_t>(b);
}

constexpr inline std::pair<int32_t, int32_t>
constexpr std::pair<int32_t, int32_t>
point_signed_diff(point a, point b) noexcept
{
return {
Expand All @@ -529,20 +532,20 @@ point_signed_diff(point a, point b) noexcept
static_cast<int32_t>(b.y) - static_cast<int32_t>(a.y))};
}

constexpr inline point
constexpr point
operator+(point a, spoint b) noexcept
{
return point{
static_cast<uint16_t>(a.x + static_cast<uint16_t>(b.x)),
static_cast<uint16_t>(a.y + static_cast<uint16_t>(b.y))};
}
constexpr inline spoint
constexpr spoint
operator+(spoint a, spoint b) noexcept
{
return spoint{
static_cast<int16_t>(a.x + b.x), static_cast<int16_t>(a.y + b.y)};
}
constexpr inline spoint
constexpr spoint
operator*(int16_t a, spoint b) noexcept
{
return spoint{
Expand All @@ -552,7 +555,7 @@ operator*(int16_t a, spoint b) noexcept
/// @brief gets a unit signed-point in direction
/// @param d the direction for the unit-distance
/// @return the unit spoint
constexpr inline spoint
constexpr spoint
dir_unit_point(direction_id d) noexcept
{
assert(static_cast<uint8_t>(d) < 8);
Expand Down Expand Up @@ -582,7 +585,7 @@ dir_unit_point(direction_id d) noexcept
/// @param d the direction for unit-point, if a secic will use the
/// intercardinal component
/// @return the unit spoint
constexpr inline spoint
constexpr spoint
dir_unit_point_secic(direction_id d) noexcept
{
assert(static_cast<uint8_t>(d) < 8);
Expand Down Expand Up @@ -614,7 +617,7 @@ dir_unit_point_secic(direction_id d) noexcept

/// @return the direction from p1 to p2. If diff x or diff y is zero, will be
/// cardinal, otherwise is intercardinal direction.
constexpr inline direction_id
constexpr direction_id
point_to_direction_id(point p1, point p2) noexcept
{
union
Expand Down
Loading