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

#include <CellComplex.hpp>

Inheritance diagram for ReUseX::geometry::CellComplex:
Collaboration diagram for ReUseX::geometry::CellComplex:

Classes

struct  Is_Type
struct  IsFaceBetweenCells

Public Types

using Vertex = boost::graph_traits<Graph>::vertex_descriptor
using GraphIter = boost::graph_traits<CellComplex>::vertex_iterator
using AdjacencyIter = boost::graph_traits<CellComplex>::adjacency_iterator

Public Member Functions

 CellComplex ()=delete
 CellComplex (std::vector< Eigen::Vector4d, Eigen::aligned_allocator< Eigen::Vector4d > > &planes, std::vector< size_t > &verticals, std::vector< size_t > &horizontals, std::vector< std::pair< size_t, size_t > > &pairs, std::array< double, 2 > min_xy, std::array< double, 2 > max_xy, std::optional< std::function< void(size_t, std::vector< std::array< double, 3 > > const &, std::vector< int > const &)> > viz_func=std::nullopt)
template<typename PointT = pcl::PointXYZ>
auto compute_face_coverage (pcl::PointCloud< PointT >::ConstPtr cloud, EigenVectorContainer< double, 4 > &planes, std::vector< pcl::IndicesPtr > &inliers, const double grid_size=0.2) -> void
template<typename PointT = pcl::PointXYZ, typename PointN = pcl::Normal, typename PointL = pcl::Label>
auto compute_room_probabilities (pcl::PointCloud< PointT >::ConstPtr cloud, pcl::PointCloud< PointN >::ConstPtr normals, pcl::PointCloud< PointL >::ConstPtr labels, const double grid_size=0.2) -> void
Vertex add_vertex (Eigen::Vector3d pos)
template<typename T>
Vertex add_face (Eigen::Vector3d pos, T begin, T end, int plane_id=-1)
template<typename Range>
Vertex add_face (Eigen::Vector3d pos, Range vertices, int plane_id=-1)
template<typename T>
Vertex add_cell (Eigen::Vector3d pos, T begin, T end)
template<typename Range>
Vertex add_cell (Eigen::Vector3d pos, Range faces)
size_t num_vertices () const
size_t num_faces () const
size_t num_cells () const
std::ostream & operator<< (std::ostream &os) const
auto vertices_begin () const -> VertexIterator
auto vertices_end () const -> VertexIterator
auto faces_begin () const -> FaceIterator
auto faces_end () const -> FaceIterator
auto faces_between_cells_begin () const -> FaceBetweenCellIterator
auto faces_between_cells_end () const -> FaceBetweenCellIterator
auto cells_begin () const -> CellIterator
auto cells_end () const -> CellIterator
auto vertices_begin (Vertex f) const -> VertexOnFaceIterator
auto vertices_end (Vertex f) const -> VertexOnFaceIterator
auto faces_begin (Vertex c) const -> FaceOnCellIterator
auto faces_end (Vertex c) const -> FaceOnCellIterator
auto get_a (Vertex f) const -> Vertex
auto get_b (Vertex f) const -> Vertex
Public Member Functions inherited from ReUseX::geometry::Registry
virtual ~Registry ()=default
template<typename Key, typename T>
std::pair< boost::associative_property_map< std::map< Key, T > >, bool > add_property_map (const std::string &name)
template<typename Key, typename T>
const boost::associative_property_map< std::map< Key, T > > property_map (const std::string &name) const

Public Attributes

size_t n_rooms
size_t n_walls

Protected Types

using Graph
using IsVertex = Is_Type<NodeType::Vertex>
using IsCell = Is_Type<NodeType::Cell>
using IsFace = Is_Type<NodeType::Face>
using VertexIterator = boost::filter_iterator<IsVertex, GraphIter>
using FaceIterator = boost::filter_iterator<IsFace, GraphIter>
using FaceBetweenCellIterator
using CellIterator = boost::filter_iterator<IsCell, GraphIter>
using VertexOnFaceIterator = boost::filter_iterator<IsVertex, AdjacencyIter>
using FaceOnCellIterator = boost::filter_iterator<IsFace, AdjacencyIter>
using CellOnFaceIterator = boost::filter_iterator<IsCell, AdjacencyIter>

Detailed Description

Definition at line 67 of file CellComplex.hpp.

Member Typedef Documentation

◆ AdjacencyIter

using ReUseX::geometry::CellComplex::AdjacencyIter = boost::graph_traits<CellComplex>::adjacency_iterator

Definition at line 84 of file CellComplex.hpp.

◆ CellIterator

using ReUseX::geometry::CellComplex::CellIterator = boost::filter_iterator<IsCell, GraphIter>
protected

Definition at line 118 of file CellComplex.hpp.

◆ CellOnFaceIterator

using ReUseX::geometry::CellComplex::CellOnFaceIterator = boost::filter_iterator<IsCell, AdjacencyIter>
protected

Definition at line 121 of file CellComplex.hpp.

◆ FaceBetweenCellIterator

Initial value:
boost::filter_iterator<IsFaceBetweenCells, GraphIter>

Definition at line 116 of file CellComplex.hpp.

◆ FaceIterator

using ReUseX::geometry::CellComplex::FaceIterator = boost::filter_iterator<IsFace, GraphIter>
protected

Definition at line 115 of file CellComplex.hpp.

◆ FaceOnCellIterator

using ReUseX::geometry::CellComplex::FaceOnCellIterator = boost::filter_iterator<IsFace, AdjacencyIter>
protected

Definition at line 120 of file CellComplex.hpp.

◆ Graph

Initial value:
boost::adjacency_list<boost::vecS, boost::vecS,
boost::undirectedS, VertexData, EdgeData>

Definition at line 78 of file CellComplex.hpp.

◆ GraphIter

using ReUseX::geometry::CellComplex::GraphIter = boost::graph_traits<CellComplex>::vertex_iterator

Definition at line 83 of file CellComplex.hpp.

◆ IsCell

Definition at line 97 of file CellComplex.hpp.

◆ IsFace

Definition at line 98 of file CellComplex.hpp.

◆ IsVertex

Definition at line 96 of file CellComplex.hpp.

◆ Vertex

using ReUseX::geometry::CellComplex::Vertex = boost::graph_traits<Graph>::vertex_descriptor

Definition at line 82 of file CellComplex.hpp.

◆ VertexIterator

using ReUseX::geometry::CellComplex::VertexIterator = boost::filter_iterator<IsVertex, GraphIter>
protected

Definition at line 114 of file CellComplex.hpp.

◆ VertexOnFaceIterator

Definition at line 119 of file CellComplex.hpp.

Constructor & Destructor Documentation

◆ CellComplex() [1/2]

◆ CellComplex() [2/2]

ReUseX::geometry::CellComplex::CellComplex ( std::vector< Eigen::Vector4d, Eigen::aligned_allocator< Eigen::Vector4d > > & planes,
std::vector< size_t > & verticals,
std::vector< size_t > & horizontals,
std::vector< std::pair< size_t, size_t > > & pairs,
std::array< double, 2 > min_xy,
std::array< double, 2 > max_xy,
std::optional< std::function< void(size_t, std::vector< std::array< double, 3 > > const &, std::vector< int > const &)> ,
viz_func = std::nullopt )

Member Function Documentation

◆ add_cell() [1/2]

template<typename Range>
Vertex ReUseX::geometry::CellComplex::add_cell ( Eigen::Vector3d pos,
Range faces )
inline

Definition at line 204 of file CellComplex.hpp.

References add_cell().

◆ add_cell() [2/2]

template<typename T>
Vertex ReUseX::geometry::CellComplex::add_cell ( Eigen::Vector3d pos,
T begin,
T end )
inline

Definition at line 193 of file CellComplex.hpp.

References Cell.

Referenced by add_cell().

◆ add_face() [1/2]

template<typename Range>
Vertex ReUseX::geometry::CellComplex::add_face ( Eigen::Vector3d pos,
Range vertices,
int plane_id = -1 )
inline

Definition at line 187 of file CellComplex.hpp.

References add_face().

◆ add_face() [2/2]

template<typename T>
Vertex ReUseX::geometry::CellComplex::add_face ( Eigen::Vector3d pos,
T begin,
T end,
int plane_id = -1 )
inline

Definition at line 175 of file CellComplex.hpp.

References Face.

Referenced by add_face().

◆ add_vertex()

Vertex ReUseX::geometry::CellComplex::add_vertex ( Eigen::Vector3d pos)
inline

Definition at line 165 of file CellComplex.hpp.

References Vertex.

◆ cells_begin()

auto ReUseX::geometry::CellComplex::cells_begin ( ) const -> CellIterator

References cells_begin().

Referenced by cells_begin(), and compute_room_probabilities().

◆ cells_end()

auto ReUseX::geometry::CellComplex::cells_end ( ) const -> CellIterator

References cells_end().

Referenced by cells_end(), and compute_room_probabilities().

◆ compute_face_coverage()

template<typename PointT>
auto ReUseX::geometry::CellComplex::compute_face_coverage ( pcl::PointCloud< PointT >::ConstPtr cloud,
EigenVectorContainer< double, 4 > & planes,
std::vector< pcl::IndicesPtr > & inliers,
const double grid_size = 0.2 ) -> void

◆ compute_room_probabilities()

template<typename PointT, typename PointN, typename PointL>
auto ReUseX::geometry::CellComplex::compute_room_probabilities ( pcl::PointCloud< PointT >::ConstPtr cloud,
pcl::PointCloud< PointN >::ConstPtr normals,
pcl::PointCloud< PointL >::ConstPtr labels,
const double grid_size = 0.2 ) -> void

◆ faces_begin() [1/2]

auto ReUseX::geometry::CellComplex::faces_begin ( ) const -> FaceIterator

◆ faces_begin() [2/2]

auto ReUseX::geometry::CellComplex::faces_begin ( Vertex c) const -> FaceOnCellIterator

References faces_begin().

◆ faces_between_cells_begin()

auto ReUseX::geometry::CellComplex::faces_between_cells_begin ( ) const -> FaceBetweenCellIterator

◆ faces_between_cells_end()

auto ReUseX::geometry::CellComplex::faces_between_cells_end ( ) const -> FaceBetweenCellIterator

◆ faces_end() [1/2]

auto ReUseX::geometry::CellComplex::faces_end ( ) const -> FaceIterator

References faces_end().

Referenced by compute_face_coverage(), faces_end(), and faces_end().

◆ faces_end() [2/2]

auto ReUseX::geometry::CellComplex::faces_end ( Vertex c) const -> FaceOnCellIterator

References faces_end().

◆ get_a()

auto ReUseX::geometry::CellComplex::get_a ( Vertex f) const -> Vertex

References get_a().

Referenced by get_a().

◆ get_b()

auto ReUseX::geometry::CellComplex::get_b ( Vertex f) const -> Vertex

References get_b().

Referenced by get_b().

◆ num_cells()

size_t ReUseX::geometry::CellComplex::num_cells ( ) const

◆ num_faces()

size_t ReUseX::geometry::CellComplex::num_faces ( ) const

◆ num_vertices()

size_t ReUseX::geometry::CellComplex::num_vertices ( ) const

◆ operator<<()

std::ostream & ReUseX::geometry::CellComplex::operator<< ( std::ostream & os) const

◆ vertices_begin() [1/2]

auto ReUseX::geometry::CellComplex::vertices_begin ( ) const -> VertexIterator

◆ vertices_begin() [2/2]

auto ReUseX::geometry::CellComplex::vertices_begin ( Vertex f) const -> VertexOnFaceIterator

References vertices_begin().

◆ vertices_end() [1/2]

auto ReUseX::geometry::CellComplex::vertices_end ( ) const -> VertexIterator

◆ vertices_end() [2/2]

auto ReUseX::geometry::CellComplex::vertices_end ( Vertex f) const -> VertexOnFaceIterator

References vertices_end().

Member Data Documentation

◆ n_rooms

size_t ReUseX::geometry::CellComplex::n_rooms

◆ n_walls

size_t ReUseX::geometry::CellComplex::n_walls

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