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 bool sun_follows_camera =
true;
97 std::string ibl_path =
"";
98 int ibl_intensity = 0;
99 int sun_intensity = 100000;
100 Eigen::Vector3f sun_dir = {0.577f, -0.577f, -0.577f};
101 Eigen::Vector3f sun_color = {1.0f, 1.0f, 1.0f};
103 double current_time = 0.0;
104 double time_step = 1.0;
105 double frame_delay = 0.100;
111 void AddAction(
const std::string&
name,
114 void SetBackground(
const Eigen::Vector4f& bg_color,
115 std::shared_ptr<geometry::Image> bg_image =
nullptr);
117 void SetShader(
Shader shader);
120 void AddGeometry(
const std::string& name,
121 std::shared_ptr<geometry::Geometry3D> geom,
123 const std::string& group =
"",
125 bool is_visible =
true);
129 void AddGeometry(
const std::string& name,
130 std::shared_ptr<t::geometry::Geometry> tgeom,
132 const std::string& group =
"",
134 bool is_visible =
true);
137 void AddGeometry(
const std::string& name,
138 std::shared_ptr<rendering::TriangleMeshModel> tgeom,
140 const std::string& group =
"",
142 bool is_visible =
true);
145 void RemoveGeometry(
const std::string& name);
149 void UpdateGeometry(
const std::string& name,
150 std::shared_ptr<t::geometry::Geometry> tgeom,
154 void ShowGeometry(
const std::string& name,
bool show);
157 DrawObject GetGeometry(
const std::string& name)
const;
159 const std::string& name)
const;
161 void ModifyGeometryMaterial(
const std::string& name,
165 void Add3DLabel(
const Eigen::Vector3f& pos,
const char* text);
168 void Clear3DLabels();
170 void SetupCamera(
float fov,
171 const Eigen::Vector3f& center,
172 const Eigen::Vector3f& eye,
173 const Eigen::Vector3f& up);
175 const Eigen::Matrix4d& extrinsic);
176 void SetupCamera(
const Eigen::Matrix3d& intrinsic,
177 const Eigen::Matrix4d& extrinsic,
178 int intrinsic_width_px,
179 int intrinsic_height_px);
181 void ResetCameraToDefault();
183 void ShowSettings(
bool show);
184 void ShowSkybox(
bool show);
185 void SetIBL(
const std::string& path);
186 void SetIBLIntensity(
float intensity);
187 void ShowAxes(
bool show);
188 void ShowGround(
bool show);
190 void EnableSunFollowsCamera(
bool enable);
191 void EnableBasicMode(
bool enable);
192 void EnableWireframeMode(
bool enable);
193 void SetPointSize(
int point_size);
194 void SetLineWidth(
int line_width);
195 void EnableGroup(
const std::string& group,
bool enable);
198 std::vector<O3DVisualizerSelections::SelectionSet> GetSelectionSets()
const;
200 double GetAnimationFrameDelay()
const;
201 void SetAnimationFrameDelay(
double secs);
203 double GetAnimationTimeStep()
const;
204 void SetAnimationTimeStep(
double time_step);
206 double GetAnimationDuration()
const;
207 void SetAnimationDuration(
double sec);
209 double GetCurrentTime()
const;
210 void SetCurrentTime(
double t);
212 bool GetIsAnimating()
const;
213 void SetAnimating(
bool is_animating);
215 void SetOnAnimationFrame(std::function<
void(
O3DVisualizer&,
double)> cb);
218 void SetOnAnimationTick(
221 void ExportCurrentImage(
const std::string& path);
227 void StartRPCInterface(
const std::string& address,
int timeout);
229 void StopRPCInterface();
236 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:690
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:567
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:217
std::shared_ptr< geometry::Geometry3D > geometry
Definition: O3DVisualizer.h:65
std::function< void(std::shared_ptr< core::Tensor >)> callback
Definition: FilamentRenderer.cpp:201