ReUseX  0.0.1
3D Point Cloud Processing for Building Reuse
Loading...
Searching...
No Matches
ReUseX::geometry::Solidifier Class Reference

Solidifier solves room segmentation using Mixed Integer Programming. More...

#include <Solidifier.hpp>

Public Types

using Fd = CellComplex::Vertex
using Cd = CellComplex::Vertex

Public Member Functions

 Solidifier ()=delete
 Solidifier (std::shared_ptr< const CellComplex > cc)
 ~Solidifier ()
 Solidifier (const Solidifier &)=delete
Solidifieroperator= (const Solidifier &)=delete
 Solidifier (Solidifier &&)=delete
Solidifieroperator= (Solidifier &&)=delete
std::optional< std::pair< std::unordered_map< Cd, int >, std::unordered_map< Cd, std::set< int > > > > solve ()
 Solve the MIP problem for room segmentation.
std::pair< Eigen::MatrixXd, Eigen::MatrixXi > toMesh (std::function< bool(const Cd)> filter)
 Convert solved cell complex to mesh.

Protected Member Functions

std::shared_ptr< const CellComplexget_cell_complex () const

Detailed Description

Solidifier solves room segmentation using Mixed Integer Programming.

Uses PIMPL idiom to hide CGAL MIP solver implementation details. This significantly reduces compile times by not exposing CGAL headers.

Definition at line 23 of file Solidifier.hpp.

Member Typedef Documentation

◆ Cd

◆ Fd

Constructor & Destructor Documentation

◆ Solidifier() [1/4]

ReUseX::geometry::Solidifier::Solidifier ( )
delete

◆ Solidifier() [2/4]

ReUseX::geometry::Solidifier::Solidifier ( std::shared_ptr< const CellComplex > cc)
explicit

◆ ~Solidifier()

ReUseX::geometry::Solidifier::~Solidifier ( )

◆ Solidifier() [3/4]

ReUseX::geometry::Solidifier::Solidifier ( const Solidifier & )
delete

References Solidifier().

◆ Solidifier() [4/4]

ReUseX::geometry::Solidifier::Solidifier ( Solidifier && )
delete

References Solidifier().

Member Function Documentation

◆ get_cell_complex()

std::shared_ptr< const CellComplex > ReUseX::geometry::Solidifier::get_cell_complex ( ) const
protected

◆ operator=() [1/2]

Solidifier & ReUseX::geometry::Solidifier::operator= ( const Solidifier & )
delete

References Solidifier().

◆ operator=() [2/2]

Solidifier & ReUseX::geometry::Solidifier::operator= ( Solidifier && )
delete

References Solidifier().

◆ solve()

std::optional< std::pair< std::unordered_map< Cd, int >, std::unordered_map< Cd, std::set< int > > > > ReUseX::geometry::Solidifier::solve ( )

Solve the MIP problem for room segmentation.

Returns
Optional pair of room labels and wall labels, or nullopt if solving fails

◆ toMesh()

std::pair< Eigen::MatrixXd, Eigen::MatrixXi > ReUseX::geometry::Solidifier::toMesh ( std::function< bool(const Cd)> filter)

Convert solved cell complex to mesh.

Parameters
filterFunction to filter which cells to include in mesh
Returns
Pair of vertex matrix and face matrix (Eigen format)

The documentation for this class was generated from the following file: