Open3D (C++ API)  0.17.0
ViewTrajectory.h
Go to the documentation of this file.
1// ----------------------------------------------------------------------------
2// - Open3D: www.open3d.org -
3// ----------------------------------------------------------------------------
4// Copyright (c) 2018-2023 www.open3d.org
5// SPDX-License-Identifier: MIT
6// ----------------------------------------------------------------------------
7
8#pragma once
9
10#include <Eigen/Core>
11#include <tuple>
12#include <vector>
13
16
17namespace open3d {
18namespace visualization {
19
21public:
22 static const int INTERVAL_MAX;
23 static const int INTERVAL_MIN;
24 static const int INTERVAL_STEP;
25 static const int INTERVAL_DEFAULT;
26
27public:
29 ~ViewTrajectory() override {}
30
31public:
41
42 void ChangeInterval(int change) {
43 int new_interval = interval_ + change * INTERVAL_STEP;
44 if (new_interval >= INTERVAL_MIN && new_interval <= INTERVAL_MAX) {
45 interval_ = new_interval;
46 }
47 }
48
49 size_t NumOfFrames() const {
50 if (view_status_.empty()) {
51 return 0;
52 } else {
53 return is_loop_ ? (interval_ + 1) * view_status_.size()
54 : (interval_ + 1) * (view_status_.size() - 1) + 1;
55 }
56 }
57
58 void Reset() {
59 is_loop_ = false;
61 view_status_.clear();
62 }
63
64 std::tuple<bool, ViewParameters> GetInterpolatedFrame(size_t k);
65
66 bool ConvertToJsonValue(Json::Value &value) const override;
67 bool ConvertFromJsonValue(const Json::Value &value) override;
68
69public:
70 std::vector<ViewParameters> view_status_;
71 bool is_loop_ = false;
76};
77
78} // namespace visualization
79} // namespace open3d
Definition: IJsonConvertible.h:40
Eigen::Matrix< double, 17, 4, Eigen::RowMajor > Matrix17x4d
Definition: ViewParameters.h:20
Eigen::aligned_allocator< Matrix17x4d > Matrix17x4d_allocator
Definition: ViewParameters.h:22
Definition: ViewTrajectory.h:20
ViewTrajectory()
Definition: ViewTrajectory.h:28
static const int INTERVAL_DEFAULT
Definition: ViewTrajectory.h:25
void Reset()
Definition: ViewTrajectory.h:58
std::vector< ViewParameters::Matrix17x4d, ViewParameters::Matrix17x4d_allocator > coeff_
Definition: ViewTrajectory.h:75
bool ConvertFromJsonValue(const Json::Value &value) override
Definition: ViewTrajectory.cpp:147
static const int INTERVAL_MAX
Definition: ViewTrajectory.h:22
void ComputeInterpolationCoefficients()
Definition: ViewTrajectory.cpp:24
bool is_loop_
Definition: ViewTrajectory.h:71
static const int INTERVAL_MIN
Definition: ViewTrajectory.h:23
int interval_
Definition: ViewTrajectory.h:72
static const int INTERVAL_STEP
Definition: ViewTrajectory.h:24
void ChangeInterval(int change)
Definition: ViewTrajectory.h:42
std::tuple< bool, ViewParameters > GetInterpolatedFrame(size_t k)
Definition: ViewTrajectory.cpp:112
std::vector< ViewParameters > view_status_
Definition: ViewTrajectory.h:70
bool ConvertToJsonValue(Json::Value &value) const override
Definition: ViewTrajectory.cpp:129
size_t NumOfFrames() const
Definition: ViewTrajectory.h:49
~ViewTrajectory() override
Definition: ViewTrajectory.h:29
Definition: PinholeCameraIntrinsic.cpp:16