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  TurntableState
 Shared state for the turntable orbit mode. 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.
std::array< double, 3 > orbit_camera_position (const std::array< double, 3 > &center, double radius, double azimuth_rad, double elevation_deg) noexcept
 Compute the camera world position for one turntable orbit step.
void register_turntable_callbacks (std::shared_ptr< TurntableState > state, rux::VizualizationObserver &observer)
 Register turntable keyboard callbacks and wire up the per-tick orbit loop.

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.

References activate_panorama_skybox().

Referenced by activate_panorama_skybox().

◆ 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

References add_component_lines().

Referenced by add_component_lines().

◆ 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.

References add_label_legend().

Referenced by add_label_legend().

◆ 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)

References component_line_names().

Referenced by component_line_names().

◆ 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.

References deactivate_panorama_skybox().

Referenced by deactivate_panorama_skybox().

◆ 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.

References enter_panorama_mode().

Referenced by enter_panorama_mode().

◆ 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.

References exit_panorama_mode().

Referenced by exit_panorama_mode().

◆ 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

References load_from_project_db().

Referenced by load_from_project_db().

◆ orbit_camera_position()

std::array< double, 3 > rux::view::orbit_camera_position ( const std::array< double, 3 > & center,
double radius,
double azimuth_rad,
double elevation_deg )
inlinenodiscardnoexcept

Compute the camera world position for one turntable orbit step.

Pure function — no display or state side-effects; directly unit-testable. The camera looks toward center from the returned position with Z up.

Definition at line 38 of file turntable.hpp.

References orbit_camera_position().

Referenced by orbit_camera_position().

◆ 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

References register_component_toggle().

Referenced by register_component_toggle().

◆ 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

References register_help_callback().

Referenced by register_help_callback().

◆ 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 register_individual_toggles(), and rux::VizualizationObserver::viewer_enqueue_task().

Referenced by register_individual_toggles().

◆ 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

References register_label_toggles().

Referenced by register_label_toggles().

◆ 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').

References register_legend_toggle().

Referenced by register_legend_toggle().

◆ 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 register_toggle_all_callback(), and rux::VizualizationObserver::viewer_enqueue_task().

Referenced by register_toggle_all_callback().

◆ register_turntable_callbacks()

void rux::view::register_turntable_callbacks ( std::shared_ptr< TurntableState > state,
rux::VizualizationObserver & observer )

Register turntable keyboard callbacks and wire up the per-tick orbit loop.

Keys (chosen to avoid PCL and VTK base-class reserved bindings): k — toggle turntable on/off ('o'/'O' is PCL-reserved for projection toggle; 't'/'T' falls through to VTK Superclass::OnChar joystick mode) Space — pause/resume spinning while turntable is active , — decrease angular velocity . — increase angular velocity

References register_turntable_callbacks().

Referenced by register_turntable_callbacks().

◆ 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.

References remove_label_legend().

Referenced by remove_label_legend().

◆ 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.

References viewport_renderer().

Referenced by viewport_renderer().