struct mp2p_icp_filters::EstimateUpResult

Overview

Output of estimate_up_from_normals()

#include <estimate_up_from_normals.h>

struct EstimateUpResult
{
    // fields

    mrpt::math::TVector3D up = {0, 0, 1};
    std::size_t wall_count = 0;
    std::size_t flat_count = 0;
    std::array<double, 3> eigVals = {0, 0, 0};
    std::array<double, 3> wallEigVals = {0, 0, 0};
    bool single_wall_direction = false;

    // methods

    double tilt_deg() const;
};

Fields

mrpt::math::TVector3D up = {0, 0, 1}

Estimated “up” unit vector, with up.z > 0.

std::size_t wall_count = 0

Wall normals used in the last iteration.

std::size_t flat_count = 0

Floor/ceiling normals used in the last iteration.

std::array<double, 3> eigVals = {0, 0, 0}

Eigenvalues (ascending) of the full cost matrix.

std::array<double, 3> wallEigVals = {0, 0, 0}

Eigenvalues (ascending) of the wall term alone. If the second one is close to zero, all walls share a single direction.

bool single_wall_direction = false

True if walls alone do not constrain both pitch and roll (one wall direction): the result then relies on the floors and ceilings.

Methods

double tilt_deg() const

Angle between up and +Z [deg].