Rodin::Geometry::PointCloud class

Point cloud with a point-centric API and Eigen "matrix" views.

Ownership: std::vector<Eigen::Vector3<Real>> (always 3 scalars per point). Active dimension: m_rows in {0,1,2,3} tells which prefix is meaningful.

Views:

  • getMatrix(): (rows x N) view for computations in the active dimension.
  • getPackedMatrix(): (3 x N) full view of the underlying packed storage.

Storage layout (AoS): [x0 y0 z0][x1 y1 z1]...

We map it as a column-major 3xN matrix with outer stride 3 and inner stride 1.

Public functions

auto getMatrix() -> auto noexcept
Returns a (rows x N) matrix view of the active coordinates.
auto getPackedMatrix() -> MapType3xN noexcept
Returns a (3 x N) matrix view of the underlying packed storage.

Function documentation

MapType3xN Rodin::Geometry::PointCloud::getPackedMatrix() noexcept

Returns a (3 x N) matrix view of the underlying packed storage.

Naming rationale: this is the raw, packed, always-3D storage view.