48 namespace visualization {
52 struct TriangleMeshModel;
55 namespace visualizer {
61 enum class Shader { STANDARD, UNLIT, NORMALS, DEPTH };
65 std::shared_ptr<geometry::Geometry3D>
geometry;
67 std::shared_ptr<rendering::TriangleMeshModel>
model;
71 bool is_visible =
true;
74 bool is_color_default =
true;
79 gui::SceneWidget::Controls::ROTATE_CAMERA;
80 Shader scene_shader = Shader::STANDARD;
81 bool show_settings =
false;
82 bool show_skybox =
true;
83 bool show_axes =
false;
84 bool show_ground =
false;
86 rendering::Scene::GroundPlane::XZ;
87 bool is_animating =
false;
90 Eigen::Vector4f bg_color = {1.0f, 1.0f, 1.0f, 1.0f};
96 std::string ibl_path =
"";
97 int ibl_intensity = 0;
98 int sun_intensity = 100000;
99 Eigen::Vector3f sun_dir = {0.577f, -0.577f, -0.577f};
100 Eigen::Vector3f sun_color = {1.0f, 1.0f, 1.0f};
102 double current_time = 0.0;
103 double time_step = 1.0;
104 double frame_delay = 0.100;
110 void AddAction(
const std::string&
name,
113 void SetBackground(
const Eigen::Vector4f& bg_color,
114 std::shared_ptr<geometry::Image> bg_image =
nullptr);
116 void SetShader(
Shader shader);
119 void AddGeometry(
const std::string& name,
120 std::shared_ptr<geometry::Geometry3D> geom,
122 const std::string& group =
"",
124 bool is_visible =
true);
128 void AddGeometry(
const std::string& name,
129 std::shared_ptr<t::geometry::Geometry> tgeom,
131 const std::string& group =
"",
133 bool is_visible =
true);
136 void AddGeometry(
const std::string& name,
137 std::shared_ptr<rendering::TriangleMeshModel> tgeom,
139 const std::string& group =
"",
141 bool is_visible =
true);
144 void RemoveGeometry(
const std::string& name);
148 void UpdateGeometry(
const std::string& name,
149 std::shared_ptr<t::geometry::Geometry> tgeom,
153 void ShowGeometry(
const std::string& name,
bool show);
156 DrawObject GetGeometry(
const std::string& name)
const;
158 const std::string& name)
const;
160 void ModifyGeometryMaterial(
const std::string& name,
164 void Add3DLabel(
const Eigen::Vector3f& pos,
const char* text);
167 void Clear3DLabels();
169 void SetupCamera(
float fov,
170 const Eigen::Vector3f& center,
171 const Eigen::Vector3f& eye,
172 const Eigen::Vector3f& up);
174 const Eigen::Matrix4d& extrinsic);
175 void SetupCamera(
const Eigen::Matrix3d& intrinsic,
176 const Eigen::Matrix4d& extrinsic,
177 int intrinsic_width_px,
178 int intrinsic_height_px);
180 void ResetCameraToDefault();
182 void ShowSettings(
bool show);
183 void ShowSkybox(
bool show);
184 void SetIBL(
const std::string& path);
185 void SetIBLIntensity(
float intensity);
186 void ShowAxes(
bool show);
187 void ShowGround(
bool show);
189 void SetPointSize(
int point_size);
190 void SetLineWidth(
int line_width);
191 void EnableGroup(
const std::string& group,
bool enable);
194 std::vector<O3DVisualizerSelections::SelectionSet> GetSelectionSets()
const;
196 double GetAnimationFrameDelay()
const;
197 void SetAnimationFrameDelay(
double secs);
199 double GetAnimationTimeStep()
const;
200 void SetAnimationTimeStep(
double time_step);
202 double GetAnimationDuration()
const;
203 void SetAnimationDuration(
double sec);
205 double GetCurrentTime()
const;
206 void SetCurrentTime(
double t);
208 bool GetIsAnimating()
const;
209 void SetAnimating(
bool is_animating);
211 void SetOnAnimationFrame(std::function<
void(
O3DVisualizer&,
double)> cb);
214 void SetOnAnimationTick(
217 void ExportCurrentImage(
const std::string& path);
223 void StartRPCInterface(
const std::string& address,
int timeout);
225 void StopRPCInterface();
232 std::unique_ptr<Impl> impl_;
Definition: Open3DScene.h:57
const char const char value recording_handle imu_sample recording_handle uint8_t size_t data_size k4a_record_configuration_t config target_format k4a_capture_t capture_handle k4a_imu_sample_t imu_sample playback_handle k4a_logging_message_cb_t void min_level device_handle k4a_imu_sample_t timeout_in_ms capture_handle capture_handle capture_handle image_handle temperature_c k4a_image_t image_handle uint8_t image_handle image_handle image_handle image_handle image_handle timestamp_usec white_balance image_handle k4a_device_configuration_t config device_handle char size_t serial_number_size bool int32_t int32_t int32_t int32_t k4a_color_control_mode_t default_mode mode
Definition: K4aPlugin.cpp:680
Definition: O3DVisualizer.cpp:300
std::shared_ptr< rendering::TriangleMeshModel > model
Definition: O3DVisualizer.h:67
Definition: MaterialRecord.h:41
const char const char value recording_handle imu_sample recording_handle uint8_t size_t data_size k4a_record_configuration_t config target_format k4a_capture_t capture_handle k4a_imu_sample_t imu_sample playback_handle k4a_logging_message_cb_t void min_level device_handle k4a_imu_sample_t timeout_in_ms capture_handle capture_handle capture_handle image_handle temperature_c k4a_image_t image_handle uint8_t image_handle image_handle image_handle image_handle uint32_t
Definition: K4aPlugin.cpp:557
std::string name
Definition: O3DVisualizer.h:64
Contains the pinhole camera intrinsic parameters.
Definition: PinholeCameraIntrinsic.h:51
Definition: O3DVisualizer.h:57
Definition: O3DVisualizer.h:77
std::shared_ptr< t::geometry::Geometry > tgeometry
Definition: O3DVisualizer.h:66
ImGuiContext * context
Definition: Window.cpp:95
Shader
Definition: O3DVisualizer.h:61
std::string group
Definition: O3DVisualizer.h:69
Definition: O3DVisualizer.h:63
std::set< std::string > enabled_groups
Definition: O3DVisualizer.h:88
GroundPlane
Definition: Scene.h:200
rendering::MaterialRecord material
Definition: O3DVisualizer.h:68
Definition: PinholeCameraIntrinsic.cpp:35
TickResult
Definition: O3DVisualizer.h:213
std::shared_ptr< geometry::Geometry3D > geometry
Definition: O3DVisualizer.h:65
std::function< void(std::shared_ptr< core::Tensor >)> callback
Definition: FilamentRenderer.cpp:227