Unified dimension lookup for dungeon room objects. More...
#include <dimension_service.h>
Classes | |
| struct | DimensionResult |
Public Member Functions | |
| DimensionResult | GetDimensions (const RoomObject &obj) const |
| std::pair< int, int > | GetPixelDimensions (const RoomObject &obj) const |
| std::tuple< int, int, int, int > | GetHitTestBounds (const RoomObject &obj) const |
| std::tuple< int, int, int, int > | GetSelectionBoundsPixels (const RoomObject &obj) const |
Static Public Member Functions | |
| static DimensionService & | Get () |
Private Member Functions | |
| DimensionService ()=default | |
Unified dimension lookup for dungeon room objects.
Tries ObjectGeometry (exact buffer-replay) first, then falls back to ObjectDimensionTable (hardcoded estimates). Callers no longer need to maintain their own fallback chains.
Definition at line 19 of file dimension_service.h.
|
privatedefault |
|
static |
Definition at line 11 of file dimension_service.cc.
Referenced by yaze::editor::DungeonObjectInteraction::CalculateObjectBounds(), yaze::editor::TileObjectHandler::CalculateObjectBounds(), yaze::editor::DungeonObjectSelector::CalculateObjectDimensions(), yaze::cli::detail::ClipSelectionBoundsToRoom(), yaze::editor::DungeonObjectInteraction::DrawHoverHighlight(), yaze::editor::DungeonCanvasViewer::DrawMaskHighlights(), yaze::editor::DungeonCanvasViewer::DrawObjectPositionOutlines(), yaze::editor::DungeonObjectInteraction::DrawSelectionHighlights(), yaze::editor::DungeonRenderingHelpers::DrawTrackGapOverlay(), yaze::zelda3::GenerateTrackCollision(), yaze::editor::TileObjectHandler::GetEntityAtPosition(), yaze::editor::ObjectSelection::GetObjectBounds(), and yaze::editor::DungeonCanvasViewer::HandleTouchLongPressContextMenu().
| DimensionService::DimensionResult yaze::zelda3::DimensionService::GetDimensions | ( | const RoomObject & | obj | ) | const |
Definition at line 16 of file dimension_service.cc.
References yaze::zelda3::ObjectGeometry::Get(), yaze::zelda3::ObjectDimensionTable::Get(), yaze::zelda3::RoomObject::id_, yaze::zelda3::ObjectGeometry::MeasureByObjectId(), yaze::zelda3::DimensionService::DimensionResult::offset_x_tiles, and yaze::zelda3::RoomObject::size_.
Referenced by yaze::cli::detail::ClipSelectionBoundsToRoom(), yaze::editor::DungeonObjectInteraction::DrawSelectionHighlights(), yaze::editor::DungeonRenderingHelpers::DrawTrackGapOverlay(), GetHitTestBounds(), GetPixelDimensions(), GetSelectionBoundsPixels(), and yaze::zelda3::anonymous_namespace{track_collision_generator.cc}::ResolveTrackObjectDimensions().

| std::pair< int, int > yaze::zelda3::DimensionService::GetPixelDimensions | ( | const RoomObject & | obj | ) | const |
Definition at line 52 of file dimension_service.cc.
References GetDimensions().
Referenced by yaze::editor::DungeonObjectInteraction::CalculateObjectBounds(), yaze::editor::TileObjectHandler::CalculateObjectBounds(), yaze::editor::DungeonObjectSelector::CalculateObjectDimensions(), yaze::editor::DungeonCanvasViewer::DrawMaskHighlights(), and yaze::editor::DungeonCanvasViewer::HandleTouchLongPressContextMenu().

| std::tuple< int, int, int, int > yaze::zelda3::DimensionService::GetHitTestBounds | ( | const RoomObject & | obj | ) | const |
Definition at line 58 of file dimension_service.cc.
References GetDimensions(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.
Referenced by yaze::editor::TileObjectHandler::GetEntityAtPosition(), and yaze::editor::ObjectSelection::GetObjectBounds().

| std::tuple< int, int, int, int > yaze::zelda3::DimensionService::GetSelectionBoundsPixels | ( | const RoomObject & | obj | ) | const |
Definition at line 65 of file dimension_service.cc.
References GetDimensions(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.
Referenced by yaze::editor::DungeonObjectInteraction::DrawHoverHighlight(), and yaze::editor::DungeonCanvasViewer::DrawObjectPositionOutlines().
