Class ProjectorBase

Inheritance Relationships

Derived Types

Class Documentation

class ProjectorBase

Subclassed by wavemap::OusterProjector, wavemap::PinholeCameraProjector, wavemap::SphericalProjector

Public Types

using Ptr = std::shared_ptr<ProjectorBase>
using ConstPtr = std::shared_ptr<const ProjectorBase>
using NearestIndexArray = Eigen::Matrix<IndexElement, 2, 4>
using CellToBeamOffsetArray = Eigen::Matrix<FloatingPoint, 2, 4>

Public Functions

inline ProjectorBase(Index2D dimensions, Vector2D index_to_image_scale_factor, ImageCoordinates image_offset, ImageCoordinates min_image_coordinates, ImageCoordinates max_image_coordinates)
virtual ~ProjectorBase() = default
inline IndexElement getNumRows() const
inline IndexElement getNumColumns() const
inline Index2D getDimensions() const
inline ImageCoordinates getMinImageCoordinates() const
inline ImageCoordinates getMaxImageCoordinates() const
virtual Eigen::Matrix<bool, 3, 1> sensorAxisIsPeriodic() const = 0
virtual Eigen::Matrix<bool, 3, 1> sensorAxisCouldBePeriodic() const = 0
virtual SiUnit getImageCoordinatesUnit() const = 0
virtual SensorCoordinates cartesianToSensor(const Point3D &C_point) const = 0
virtual Point3D sensorToCartesian(const SensorCoordinates &coordinates) const = 0
inline Point3D sensorToCartesian(const ImageCoordinates &image_coordinates, FloatingPoint normal) const
virtual ImageCoordinates cartesianToImage(const Point3D &C_point) const = 0
virtual FloatingPoint cartesianToSensorZ(const Point3D &C_point) const = 0
inline Index2D imageToNearestIndex(const ImageCoordinates &image_coordinates) const
inline Index2D imageToFloorIndex(const ImageCoordinates &image_coordinates) const
inline Index2D imageToCeilIndex(const ImageCoordinates &image_coordinates) const
inline NearestIndexArray imageToNearestIndices(const ImageCoordinates &image_coordinates) const
inline std::pair<Index2D, Vector2D> imageToNearestIndexAndOffset(const ImageCoordinates &image_coordinates) const
inline std::pair<NearestIndexArray, CellToBeamOffsetArray> imageToNearestIndicesAndOffsets(const ImageCoordinates &image_coordinates) const
inline ImageCoordinates indexToImage(const Index2D &index) const
inline FloatingPoint imageOffsetToErrorNorm(const ImageCoordinates &linearization_point, const Vector2D &offset) const
virtual FloatingPoint imageOffsetToErrorSquaredNorm(const ImageCoordinates &linearization_point, const Vector2D &offset) const = 0
inline std::array<FloatingPoint, 4> imageOffsetsToErrorNorms(const ImageCoordinates &linearization_point, const CellToBeamOffsetArray &offsets) const
virtual std::array<FloatingPoint, 4> imageOffsetsToErrorSquaredNorms(const ImageCoordinates &linearization_point, const CellToBeamOffsetArray &offsets) const = 0
inline Index2D cartesianToNearestIndex(const Point3D &C_point) const
virtual AABB<Vector3D> cartesianToSensorAABB(const AABB<Point3D> &W_aabb, const Transformation3D::RotationMatrix &R_C_W, const Point3D &t_W_C) const = 0

Protected Functions

inline Vector2D imageToIndexReal(const ImageCoordinates &image_coordinates) const

Protected Attributes

const Index2D dimensions_
const Vector2D index_to_image_scale_factor_
const Vector2D image_to_index_scale_factor_ = Vector2D::Ones().cwiseQuotient(index_to_image_scale_factor_)
const ImageCoordinates image_offset_
const ImageCoordinates min_image_coordinates_
const ImageCoordinates max_image_coordinates_

Friends

friend class Image2DProjectorTypedTest_imageToNearestIndicesAndOffsets_Test