载入中...
搜索中...
未找到
TargetingLineOfSightAdapter.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
10#include "sensing/Targeting.h"
11
12#include <memory>
13#include <vector>
14
15namespace eve::physics {
16
17class World3D;
18
31public:
38 [[nodiscard]] Result<void> addWorld(World3D* world);
46 [[nodiscard]] Result<void> removeWorld(World3D* world);
47
51 const sensing::TargetLocation& to) const override;
52
53private:
54 struct RegisteredWorld {
55 World3D* world = nullptr;
56 std::weak_ptr<const void> lifetime;
57 };
58
59 std::vector<RegisteredWorld> worlds_;
60};
61
62} // namespace eve::physics
std::string from
#define EVENGINE_API_WORLD
Definition Export.h:109
HexCoordinates to
Cell the unit walks towards on this segment.
Definition HexUnits.cpp:64
World3D * world
std::weak_ptr< const void > lifetime
Coordinate-safe targeting protocol shared by sensing and gameplay adapters.
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Read-only 3D physics implementation of sensing's LOS capability.
Box3D rigid-body world. Script coordinates are meters (Box3D native), unlike 2D World which uses pixe...
Definition World3D.h:63
Consumer-owned line-of-sight capability.
Definition Targeting.h:431
Optional physics backend for vehicle mobility and body attach.
Definition Climbing.h:36
std::variant< WorldPoint, GridPoint > TargetLocation
Either a world point or a grid point, with the tag retained.
Definition Targeting.h:198