10 #include <unordered_map>
18 namespace visualization {
19 class SelectionPolygon;
20 class PointCloudPicker;
35 bool AddGeometry(std::shared_ptr<const ccHObject> geometry_ptr,
36 bool reset_bounding_box =
true)
override;
38 std::shared_ptr<const ccHObject> geometry_ptr =
nullptr)
override;
43 std::vector<int>
PickPoints(
double x,
double y,
double w,
double h);
83 std::shared_ptr<const ccHObject> geometry);
86 std::shared_ptr<const ccHObject> geometry);
90 std::shared_ptr<glsl::SelectionPolygonRenderer>
98 std::shared_ptr<glsl::PointCloudPickerRenderer>
Hierarchical CLOUDVIEWER Object.
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
Defines rendering options for visualizer.
void BuildUtilities() override
std::shared_ptr< glsl::GeometryRenderer > ui_selected_points_renderer_ptr_
std::shared_ptr< glsl::GeometryRenderer > ui_points_renderer_ptr_
void RegisterSelectionChangedCallback(std::function< void()> f)
std::shared_ptr< ccPointCloud > ui_points_geometry_ptr_
std::shared_ptr< glsl::SelectionPolygonRenderer > selection_polygon_renderer_ptr_
Eigen::Vector3d CalcDragDelta(double winX, double winY)
std::shared_ptr< PointCloudPicker > pointcloud_picker_ptr_
const std::vector< Eigen::Vector3d > * GetGeometryEigenPoints(std::shared_ptr< const ccHObject > geometry)
bool AddGeometry(std::shared_ptr< const ccHObject > geometry_ptr, bool reset_bounding_box=true) override
Function to add geometry to the scene and create corresponding shaders.
std::function< void()> on_selection_changed_
void MouseMoveCallback(GLFWwindow *window, double x, double y) override
void KeyPressCallback(GLFWwindow *window, int key, int scancode, int action, int mods) override
RenderOption pick_point_opts_
VisualizerWithVertexSelection()
void InvalidateSelectionPolygon()
void RegisterSelectionMovingCallback(std::function< void()> f)
std::vector< PickedPoint > GetPickedPoints() const
std::shared_ptr< const ccHObject > geometry_ptr_
std::shared_ptr< ccPointCloud > ui_selected_points_geometry_ptr_
std::unordered_map< int, Eigen::Vector3d > selected_points_before_drag_
std::shared_ptr< SelectionPolygon > selection_polygon_ptr_
void SetPointSize(double size)
std::shared_ptr< glsl::GeometryRenderer > geometry_renderer_ptr_
void RemovePickedPoints(const std::vector< int > indices)
std::unordered_map< int, Eigen::Vector3d > selected_points_
void AddPickedPoints(const std::vector< int > indices)
const std::vector< CCVector3 > * GetGeometryPoints(std::shared_ptr< const ccHObject > geometry)
void UpdateWindowTitle() override
bool UpdateGeometry(std::shared_ptr< const ccHObject > geometry_ptr=nullptr) override
Function to update geometry.
std::vector< int > PickPoints(double x, double y, double w, double h)
void RegisterSelectionMovedCallback(std::function< void()> f)
std::vector< int > points_in_rect_
void MouseScrollCallback(GLFWwindow *window, double x, double y) override
void MouseButtonCallback(GLFWwindow *window, int button, int action, int mods) override
std::shared_ptr< glsl::PointCloudPickerRenderer > pointcloud_picker_renderer_ptr_
void PrintVisualizerHelp() override
void WindowResizeCallback(GLFWwindow *window, int w, int h) override
SelectionMode selection_mode_
VisualizerWithVertexSelection(const VisualizerWithVertexSelection &)=delete
bool InitViewControl() override
Function to initialize ViewControl.
VisualizerWithVertexSelection & operator=(const VisualizerWithVertexSelection &)=delete
~VisualizerWithVertexSelection() override
bool InitRenderOption() override
Function to initialize RenderOption.
Eigen::Vector2d mouse_down_pos_
std::function< void()> on_selection_moved_
void DragSelectedPoints(const Eigen::Vector3d &delta, DragType type)
std::function< void()> on_selection_moving_
float GetDepth(int winX, int winY)
The main Visualizer class.
Generic file read and write utility for python interface.