ReUseX  0.0.5
3D Point Cloud Processing for Building Reuse
Loading...
Searching...
No Matches
rux::view Namespace Reference

Classes

struct  ItemTraits
 Traits class template for viewer item operations. More...
struct  ItemTraits< LoadedCloud >
 Traits specialization for point clouds. More...
struct  ItemTraits< LoadedMesh >
 Traits specialization for polygon meshes. More...
struct  LabelCloudInfo
 A label cloud with its associated metadata for legend display. More...
struct  LabelLegendEntry
 A single entry in the label legend overlay. More...
struct  LoadedCloud
 A point cloud loaded for visualization with associated metadata. More...
struct  LoadedMesh
 A polygon mesh loaded for visualization with associated metadata. More...
struct  PanoramaInfo
 Metadata for a panoramic image (pixel data loaded on-demand). More...
struct  PanoramaState
 State for immersive panorama viewing. More...
struct  ProjectLoadResult
 Result of loading geometry from a .rux project database. More...
struct  ViewerState
 Tracks the currently visible label overlay in the viewer. More...

Functions

std::vector< std::string > component_line_names (const std::vector< reusex::geometry::BuildingComponent > &components)
 Generate all line shape names for a set of building components.
void add_component_lines (const std::vector< reusex::geometry::BuildingComponent > &components, rux::VizualizationObserver &observer)
 Enqueue line-drawing tasks to render building component boundaries.
void register_component_toggle (const std::vector< reusex::geometry::BuildingComponent > &components, std::shared_ptr< bool > components_visible, rux::VizualizationObserver &observer)
 Register keyboard callback to toggle building component visibility (key 'w').
void register_help_callback (const std::vector< LoadedCloud > &clouds, const std::vector< LoadedMesh > &meshes, const std::vector< LabelCloudInfo > &label_clouds, bool has_components, bool has_panoramas, rux::VizualizationObserver &observer)
 Register help keyboard callback (key 'h').
template<typename LoadedItem>
void register_individual_toggles (std::vector< LoadedItem > &items, rux::VizualizationObserver &observer)
 Register keyboard callbacks for toggling individual items (e.g., c_0, m_0).
template<typename LoadedItem>
void register_toggle_all_callback (std::vector< LoadedItem > &items, rux::VizualizationObserver &observer)
 Register keyboard callback for toggling all items at once (key 'c' or 'm').
void remove_label_legend (std::shared_ptr< ViewerState > state, rux::VizualizationObserver &observer)
 Remove the label legend overlay from the viewer.
void add_label_legend (const LabelCloudInfo &info, std::shared_ptr< ViewerState > state, rux::VizualizationObserver &observer)
 Add a label legend overlay to the viewer for the given label cloud info.
void register_legend_toggle (const std::vector< LabelCloudInfo > &label_clouds, std::shared_ptr< ViewerState > state, rux::VizualizationObserver &observer)
 Register keyboard callback for toggling label legend (key 'l').
void register_label_toggles (const std::vector< LabelCloudInfo > &label_clouds, std::shared_ptr< ViewerState > state, rux::VizualizationObserver &observer)
 Register keyboard callbacks for toggling label overlays (keys '1'-'9').
vtkRenderer * viewport_renderer (const rux::VizualizationObserver::ViewerPtr &viewer, int viewport)
 Get the VTK renderer for a PCL viewport index.
void activate_panorama_skybox (const fs::path &db_path, const PanoramaInfo &info, vtkSmartPointer< vtkSkybox > &skybox, const rux::VizualizationObserver::ViewerPtr &viewer, int viewport)
 Activate the panorama skybox in the VTK renderer.
void deactivate_panorama_skybox (const vtkSmartPointer< vtkSkybox > &skybox, const rux::VizualizationObserver::ViewerPtr &viewer, int viewport)
 Remove the skybox actor from the VTK renderer.
void enter_panorama_mode (std::shared_ptr< PanoramaState > state, int pano_index, const fs::path &project_path, const rux::VizualizationObserver::ViewerPtr &viewer, const std::vector< int > &viewports)
 Enter immersive panorama mode: hide all scene geometry, show skybox.
void exit_panorama_mode (std::shared_ptr< PanoramaState > state, const rux::VizualizationObserver::ViewerPtr &viewer, const std::vector< int > &viewports)
 Exit immersive panorama mode: restore scene and camera.
ProjectLoadResult load_from_project_db (const fs::path &path, rux::VizualizationObserver &observer, const std::string &filter_expr)
 Load all viewable geometry from a ReUseX project database.

Function Documentation

◆ activate_panorama_skybox()

void rux::view::activate_panorama_skybox ( const fs::path & db_path,
const PanoramaInfo & info,
vtkSmartPointer< vtkSkybox > & skybox,
const rux::VizualizationObserver::ViewerPtr & viewer,
int viewport )

Activate the panorama skybox in the VTK renderer.

Loads the image from the database, converts to cubemap, and adds the skybox actor to the renderer.

◆ add_component_lines()

void rux::view::add_component_lines ( const std::vector< reusex::geometry::BuildingComponent > & components,
rux::VizualizationObserver & observer )

Enqueue line-drawing tasks to render building component boundaries.

Each component's CoplanarPolygon is drawn as a closed loop of lines. Windows are green, doors are cyan, walls are yellow.

Parameters
componentsVector of building components to render
observerVisualization observer for enqueueing viewer tasks

◆ add_label_legend()

void rux::view::add_label_legend ( const LabelCloudInfo & info,
std::shared_ptr< ViewerState > state,
rux::VizualizationObserver & observer )

Add a label legend overlay to the viewer for the given label cloud info.

◆ component_line_names()

std::vector< std::string > rux::view::component_line_names ( const std::vector< reusex::geometry::BuildingComponent > & components)

Generate all line shape names for a set of building components.

Parameters
componentsVector of building components
Returns
Vector of shape names (one per line segment across all components)

◆ deactivate_panorama_skybox()

void rux::view::deactivate_panorama_skybox ( const vtkSmartPointer< vtkSkybox > & skybox,
const rux::VizualizationObserver::ViewerPtr & viewer,
int viewport )

Remove the skybox actor from the VTK renderer.

◆ enter_panorama_mode()

void rux::view::enter_panorama_mode ( std::shared_ptr< PanoramaState > state,
int pano_index,
const fs::path & project_path,
const rux::VizualizationObserver::ViewerPtr & viewer,
const std::vector< int > & viewports )

Enter immersive panorama mode: hide all scene geometry, show skybox.

◆ exit_panorama_mode()

void rux::view::exit_panorama_mode ( std::shared_ptr< PanoramaState > state,
const rux::VizualizationObserver::ViewerPtr & viewer,
const std::vector< int > & viewports )

Exit immersive panorama mode: restore scene and camera.

◆ load_from_project_db()

ProjectLoadResult rux::view::load_from_project_db ( const fs::path & path,
rux::VizualizationObserver & observer,
const std::string & filter_expr )

Load all viewable geometry from a ReUseX project database.

Parameters
pathFilesystem path to .rux file
observerVisualization observer for enqueueing viewer tasks
filter_exprOptional filter expression to limit visualization
Returns
ProjectLoadResult containing loaded clouds, meshes, and labels

◆ register_component_toggle()

void rux::view::register_component_toggle ( const std::vector< reusex::geometry::BuildingComponent > & components,
std::shared_ptr< bool > components_visible,
rux::VizualizationObserver & observer )

Register keyboard callback to toggle building component visibility (key 'w').

Parameters
componentsVector of building components
components_visibleShared flag tracking visibility state
observerVisualization observer for enqueueing viewer tasks

◆ register_help_callback()

void rux::view::register_help_callback ( const std::vector< LoadedCloud > & clouds,
const std::vector< LoadedMesh > & meshes,
const std::vector< LabelCloudInfo > & label_clouds,
bool has_components,
bool has_panoramas,
rux::VizualizationObserver & observer )

Register help keyboard callback (key 'h').

Parameters
cloudsVector of loaded clouds (for help message)
meshesVector of loaded meshes (for help message)
label_cloudsVector of label clouds (for help message)
observerVisualization observer for enqueueing viewer tasks

◆ register_individual_toggles()

template<typename LoadedItem>
void rux::view::register_individual_toggles ( std::vector< LoadedItem > & items,
rux::VizualizationObserver & observer )

Register keyboard callbacks for toggling individual items (e.g., c_0, m_0).

Template Parameters
LoadedItemType of item (LoadedCloud or LoadedMesh)
Parameters
itemsVector of loaded items to register toggles for
observerVisualization observer for enqueueing viewer tasks

Definition at line 78 of file label_renderer.hpp.

References rux::VizualizationObserver::viewer_enqueue_task().

◆ register_label_toggles()

void rux::view::register_label_toggles ( const std::vector< LabelCloudInfo > & label_clouds,
std::shared_ptr< ViewerState > state,
rux::VizualizationObserver & observer )

Register keyboard callbacks for toggling label overlays (keys '1'-'9').

Parameters
label_cloudsVector of label cloud info to register toggles for
stateShared viewer state tracking currently visible label
observerVisualization observer for enqueueing viewer tasks

◆ register_legend_toggle()

void rux::view::register_legend_toggle ( const std::vector< LabelCloudInfo > & label_clouds,
std::shared_ptr< ViewerState > state,
rux::VizualizationObserver & observer )

Register keyboard callback for toggling label legend (key 'l').

◆ register_toggle_all_callback()

template<typename LoadedItem>
void rux::view::register_toggle_all_callback ( std::vector< LoadedItem > & items,
rux::VizualizationObserver & observer )

Register keyboard callback for toggling all items at once (key 'c' or 'm').

Template Parameters
LoadedItemType of item (LoadedCloud or LoadedMesh)
Parameters
itemsVector of loaded items to register toggle for
observerVisualization observer for enqueueing viewer tasks

Definition at line 125 of file label_renderer.hpp.

References rux::VizualizationObserver::viewer_enqueue_task().

◆ remove_label_legend()

void rux::view::remove_label_legend ( std::shared_ptr< ViewerState > state,
rux::VizualizationObserver & observer )

Remove the label legend overlay from the viewer.

◆ viewport_renderer()

vtkRenderer * rux::view::viewport_renderer ( const rux::VizualizationObserver::ViewerPtr & viewer,
int viewport )

Get the VTK renderer for a PCL viewport index.

PCL creates a default renderer (index 0) in the PCLVisualizer constructor, then createViewPort() adds additional renderers. Geometry is added to the viewport renderer, NOT the default one. GetFirstRenderer() returns the wrong renderer — use this helper instead.