@@ -10,4 +10,39 @@ AprilTags::AprilTags() : Buffer(std::make_shared<RawAprilTags>()), rawdata(*dyna
1010AprilTags::AprilTags (std::shared_ptr<RawAprilTags> ptr)
1111 : Buffer(std::move(ptr)), rawdata(*dynamic_cast <RawAprilTags*>(raw.get())), aprilTags(rawdata.aprilTags) {}
1212
13+ // getters
14+ std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> AprilTags::getTimestamp () const {
15+ using namespace std ::chrono;
16+ return time_point<steady_clock, steady_clock::duration>{seconds (rawdata.ts .sec ) + nanoseconds (rawdata.ts .nsec )};
17+ }
18+ std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> AprilTags::getTimestampDevice () const {
19+ using namespace std ::chrono;
20+ return time_point<steady_clock, steady_clock::duration>{seconds (rawdata.tsDevice .sec ) + nanoseconds (rawdata.tsDevice .nsec )};
21+ }
22+ int64_t AprilTags::getSequenceNum () const {
23+ return rawdata.sequenceNum ;
24+ }
25+
26+ // setters
27+ AprilTags& AprilTags::setTimestamp (std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> tp) {
28+ // Set timestamp from timepoint
29+ using namespace std ::chrono;
30+ auto ts = tp.time_since_epoch ();
31+ rawdata.ts .sec = duration_cast<seconds>(ts).count ();
32+ rawdata.ts .nsec = duration_cast<nanoseconds>(ts).count () % 1000000000 ;
33+ return *this ;
34+ }
35+ AprilTags& AprilTags::setTimestampDevice (std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> tp) {
36+ // Set timestamp from timepoint
37+ using namespace std ::chrono;
38+ auto ts = tp.time_since_epoch ();
39+ rawdata.tsDevice .sec = duration_cast<seconds>(ts).count ();
40+ rawdata.ts .nsec = duration_cast<nanoseconds>(ts).count () % 1000000000 ;
41+ return *this ;
42+ }
43+ AprilTags& AprilTags::setSequenceNum (int64_t sequenceNum) {
44+ rawdata.sequenceNum = sequenceNum;
45+ return *this ;
46+ }
47+
1348} // namespace dai
0 commit comments