| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #ifndef COLMAP_SRC_BASE_POINT3D_H_ |
| | #define COLMAP_SRC_BASE_POINT3D_H_ |
| |
|
| | #include <vector> |
| |
|
| | #include <Eigen/Core> |
| |
|
| | #include "base/track.h" |
| | #include "util/logging.h" |
| | #include "util/types.h" |
| |
|
| | namespace colmap { |
| |
|
| | |
| | class Point3D { |
| | public: |
| | EIGEN_MAKE_ALIGNED_OPERATOR_NEW |
| |
|
| | Point3D(); |
| |
|
| | |
| | inline const Eigen::Vector3d& XYZ() const; |
| | inline Eigen::Vector3d& XYZ(); |
| | inline double XYZ(const size_t idx) const; |
| | inline double& XYZ(const size_t idx); |
| | inline double X() const; |
| | inline double Y() const; |
| | inline double Z() const; |
| | inline void SetXYZ(const Eigen::Vector3d& xyz); |
| |
|
| | |
| | inline const Eigen::Vector3ub& Color() const; |
| | inline Eigen::Vector3ub& Color(); |
| | inline uint8_t Color(const size_t idx) const; |
| | inline uint8_t& Color(const size_t idx); |
| | inline void SetColor(const Eigen::Vector3ub& color); |
| |
|
| | |
| | inline double Error() const; |
| | inline bool HasError() const; |
| | inline void SetError(const double error); |
| |
|
| | inline const class Track& Track() const; |
| | inline class Track& Track(); |
| | inline void SetTrack(class Track track); |
| |
|
| | private: |
| | |
| | Eigen::Vector3d xyz_; |
| |
|
| | |
| | Eigen::Vector3ub color_; |
| |
|
| | |
| | double error_; |
| |
|
| | |
| | class Track track_; |
| | }; |
| |
|
| | |
| | |
| | |
| |
|
| | const Eigen::Vector3d& Point3D::XYZ() const { return xyz_; } |
| |
|
| | Eigen::Vector3d& Point3D::XYZ() { return xyz_; } |
| |
|
| | double Point3D::XYZ(const size_t idx) const { return xyz_(idx); } |
| |
|
| | double& Point3D::XYZ(const size_t idx) { return xyz_(idx); } |
| |
|
| | double Point3D::X() const { return xyz_.x(); } |
| |
|
| | double Point3D::Y() const { return xyz_.y(); } |
| |
|
| | double Point3D::Z() const { return xyz_.z(); } |
| |
|
| | void Point3D::SetXYZ(const Eigen::Vector3d& xyz) { xyz_ = xyz; } |
| |
|
| | const Eigen::Vector3ub& Point3D::Color() const { return color_; } |
| |
|
| | Eigen::Vector3ub& Point3D::Color() { return color_; } |
| |
|
| | uint8_t Point3D::Color(const size_t idx) const { return color_(idx); } |
| |
|
| | uint8_t& Point3D::Color(const size_t idx) { return color_(idx); } |
| |
|
| | void Point3D::SetColor(const Eigen::Vector3ub& color) { color_ = color; } |
| |
|
| | double Point3D::Error() const { return error_; } |
| |
|
| | bool Point3D::HasError() const { return error_ != -1.0; } |
| |
|
| | void Point3D::SetError(const double error) { error_ = error; } |
| |
|
| | const class Track& Point3D::Track() const { return track_; } |
| |
|
| | class Track& Point3D::Track() { |
| | return track_; |
| | } |
| |
|
| | void Point3D::SetTrack(class Track track) { track_ = std::move(track); } |
| |
|
| | } |
| |
|
| | EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_CUSTOM(colmap::Point3D) |
| |
|
| | #endif |
| |
|