Open3D (C++ API)  0.16.1
PointCloudPicker.h
Go to the documentation of this file.
1// ----------------------------------------------------------------------------
2// - Open3D: www.open3d.org -
3// ----------------------------------------------------------------------------
4// The MIT License (MIT)
5//
6// Copyright (c) 2018-2021 www.open3d.org
7//
8// Permission is hereby granted, free of charge, to any person obtaining a copy
9// of this software and associated documentation files (the "Software"), to deal
10// in the Software without restriction, including without limitation the rights
11// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12// copies of the Software, and to permit persons to whom the Software is
13// furnished to do so, subject to the following conditions:
14//
15// The above copyright notice and this permission notice shall be included in
16// all copies or substantial portions of the Software.
17//
18// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
24// IN THE SOFTWARE.
25// ----------------------------------------------------------------------------
26
27#pragma once
28
29#include <Eigen/Core>
30#include <memory>
31#include <vector>
32
34
35namespace open3d {
36
37namespace geometry {
38class PointCloud;
39}
40namespace visualization {
41
44public:
46 : geometry::Geometry3D(geometry::Geometry::GeometryType::Unspecified) {}
47 ~PointCloudPicker() override {}
48
49public:
50 PointCloudPicker& Clear() override;
51 bool IsEmpty() const override;
52 Eigen::Vector3d GetMinBound() const final;
53 Eigen::Vector3d GetMaxBound() const final;
54 Eigen::Vector3d GetCenter() const final;
57 bool robust = false) const final;
58 PointCloudPicker& Transform(const Eigen::Matrix4d& transformation) override;
59 PointCloudPicker& Translate(const Eigen::Vector3d& translation,
60 bool relative = true) override;
61 PointCloudPicker& Scale(const double scale,
62 const Eigen::Vector3d& center) override;
63 PointCloudPicker& Rotate(const Eigen::Matrix3d& R,
64 const Eigen::Vector3d& center) override;
65 bool SetPointCloud(std::shared_ptr<const geometry::Geometry> ptr);
66
67public:
68 std::shared_ptr<const geometry::Geometry> pointcloud_ptr_;
69 std::vector<size_t> picked_indices_;
70};
71
72} // namespace visualization
73} // namespace open3d
A bounding box that is aligned along the coordinate axes.
Definition: BoundingVolume.h:155
The base geometry class for 3D geometries.
Definition: Geometry3D.h:47
The base geometry class.
Definition: Geometry.h:37
GeometryType
Specifies possible geometry types.
Definition: Geometry.h:42
A bounding box oriented along an arbitrary frame of reference.
Definition: BoundingVolume.h:44
A utility class to store picked points of a pointcloud.
Definition: PointCloudPicker.h:43
bool SetPointCloud(std::shared_ptr< const geometry::Geometry > ptr)
Definition: PointCloudPicker.cpp:114
Eigen::Vector3d GetCenter() const final
Returns the center of the geometry coordinates.
Definition: PointCloudPicker.cpp:61
Eigen::Vector3d GetMaxBound() const final
Returns max bounds for geometry coordinates.
Definition: PointCloudPicker.cpp:53
PointCloudPicker & Translate(const Eigen::Vector3d &translation, bool relative=true) override
Apply translation to the geometry coordinates.
Definition: PointCloudPicker.cpp:96
std::shared_ptr< const geometry::Geometry > pointcloud_ptr_
Definition: PointCloudPicker.h:68
~PointCloudPicker() override
Definition: PointCloudPicker.h:47
geometry::AxisAlignedBoundingBox GetAxisAlignedBoundingBox() const final
Returns an axis-aligned bounding box of the geometry.
Definition: PointCloudPicker.cpp:69
geometry::OrientedBoundingBox GetOrientedBoundingBox(bool robust=false) const final
Definition: PointCloudPicker.cpp:79
PointCloudPicker()
Definition: PointCloudPicker.h:45
PointCloudPicker & Scale(const double scale, const Eigen::Vector3d &center) override
Apply scaling to the geometry coordinates. Given a scaling factor , and center , a given point is tr...
Definition: PointCloudPicker.cpp:102
PointCloudPicker & Transform(const Eigen::Matrix4d &transformation) override
Apply transformation (4x4 matrix) to the geometry coordinates.
Definition: PointCloudPicker.cpp:90
bool IsEmpty() const override
Returns true iff the geometry is empty.
Definition: PointCloudPicker.cpp:41
std::vector< size_t > picked_indices_
Definition: PointCloudPicker.h:69
PointCloudPicker & Clear() override
Clear all elements in the geometry.
Definition: PointCloudPicker.cpp:36
PointCloudPicker & Rotate(const Eigen::Matrix3d &R, const Eigen::Vector3d &center) override
Apply rotation to the geometry coordinates and normals. Given a rotation matrix , and center ,...
Definition: PointCloudPicker.cpp:108
Eigen::Vector3d GetMinBound() const final
Returns min bounds for geometry coordinates.
Definition: PointCloudPicker.cpp:45
Definition: NonRigidOptimizer.cpp:41
Definition: PinholeCameraIntrinsic.cpp:35
Definition: Device.h:126