ed
include
ed
world_model
transform_crawler.h
Go to the documentation of this file.
1
#ifndef ED_WORLD_MODEL_TRANSFORM_CRAWLER_H_
2
#define ED_WORLD_MODEL_TRANSFORM_CRAWLER_H_
3
4
#include "
ed/types.h
"
5
#include "
ed/time.h
"
6
#include <
geolib/datatypes.h
>
7
8
#include <
queue
>
9
#include <
set
>
10
11
namespace
ed
12
{
13
namespace
world_model
14
{
15
23
class
TransformCrawler
24
{
25
26
struct
Node
27
{
28
Node
(
Idx
entity_idx_,
const
geo::Pose3D
& transform_)
29
:
entity_idx
(entity_idx_),
transform
(transform_) {}
30
Idx
entity_idx
;
31
geo::Pose3D
transform
;
32
};
33
34
public
:
35
36
TransformCrawler
(
const
WorldModel
& wm,
const
UUID
& start_id,
const
Time
& time);
37
38
bool
next
();
39
40
bool
hasNext
()
const
{
return
!
queue_
.empty(); }
41
42
const
geo::Pose3D
&
transform
()
const
{
return
queue_
.front().transform; }
43
44
const
EntityConstPtr
&
entity
()
const
;
45
46
private
:
47
48
const
WorldModel
&
wm_
;
49
50
Time
time_
;
51
52
std::set<Idx>
visited_
;
53
54
std::queue<Node>
queue_
;
55
56
void
pushChildren
(
const
Entity
& e,
const
geo::Pose3D
&
transform
);
57
58
};
59
60
}
// end namespace world_model
61
62
}
// end namespace ed
63
64
#endif
datatypes.h
ed::WorldModel
Definition:
world_model.h:21
types.h
ed::world_model::TransformCrawler::Node::Node
Node(Idx entity_idx_, const geo::Pose3D &transform_)
Definition:
transform_crawler.h:28
ed::world_model::TransformCrawler::next
bool next()
Definition:
transform_crawler.cpp:35
ed::world_model::TransformCrawler::queue_
std::queue< Node > queue_
Definition:
transform_crawler.h:54
ed::world_model::TransformCrawler::entity
const EntityConstPtr & entity() const
Definition:
transform_crawler.cpp:28
geo::Transform3T
ed::Time
Definition:
time.h:9
queue
ed::world_model::TransformCrawler::time_
Time time_
Definition:
transform_crawler.h:50
ed::EntityConstPtr
shared_ptr< const Entity > EntityConstPtr
Definition:
types.h:37
ed::world_model::TransformCrawler::TransformCrawler
TransformCrawler(const WorldModel &wm, const UUID &start_id, const Time &time)
Definition:
transform_crawler.cpp:14
ed::world_model::TransformCrawler::wm_
const WorldModel & wm_
Definition:
transform_crawler.h:48
ed::world_model::TransformCrawler::transform
const geo::Pose3D & transform() const
Definition:
transform_crawler.h:42
time.h
ed::Entity
Definition:
entity.h:30
ed::world_model::TransformCrawler::visited_
std::set< Idx > visited_
Definition:
transform_crawler.h:52
ed::UUID
Definition:
uuid.h:10
ed::world_model::TransformCrawler::hasNext
bool hasNext() const
Definition:
transform_crawler.h:40
ed::world_model::TransformCrawler::Node::entity_idx
Idx entity_idx
Definition:
transform_crawler.h:30
ed::world_model::TransformCrawler::Node
Definition:
transform_crawler.h:26
ed::world_model::TransformCrawler::Node::transform
geo::Pose3D transform
Definition:
transform_crawler.h:31
ed
Definition:
convex_hull.h:8
ed::world_model::TransformCrawler
The TransformCrawler class.
Definition:
transform_crawler.h:23
ed::world_model::TransformCrawler::pushChildren
void pushChildren(const Entity &e, const geo::Pose3D &transform)
Definition:
transform_crawler.cpp:53
set
ed::Idx
uint64_t Idx
Definition:
types.h:21
Generated on Sun Feb 23 2025 04:34:40 for ed by
1.8.17