Studio/Visualization/Lightbox.h
Namespaces
| Name |
|---|
| shapeworks User usage reporting (telemetry) |
Classes
| Name | |
|---|---|
| class | shapeworks::Lightbox Display multiple Viewers in a tiled display. |
Source code
```cpp
pragma once
include
include
include
include
include
include
include
include
include
include
class vtkOrientationMarkerWidget;
namespace shapeworks {
class StudioMesh; class Shape; class StudioInteractorStyle; class StudioSliceInteractorStyle; class Visualizer;
class Lightbox;
typedef QSharedPointer
class Lightbox : public QObject { Q_OBJECT;
public: Lightbox(); ~Lightbox();
void set_shapes(ShapeList shapes); ShapeList get_shapes();
void set_interactor(vtkRenderWindowInteractor* interactor);
void set_render_window(vtkRenderWindow* render_window);
void set_tile_layout(int width, int height);
void setup_renderers();
int get_num_rows(); int get_num_rows_visible();
void set_start_row(int row);
ViewerList get_viewers();
void redraw();
void handle_pick(int click_pos, bool one, bool ctrl, vtkRenderer renderer);
void handle_hover(int* click_pos);
void handle_key(int* click_pos, std::string key);
void handle_right_click(int click_pos, vtkRenderer renderer);
void set_glyph_lut(vtkSmartPointer
void set_visualizer(Visualizer* visualizer);
bool render_window_ready() { return render_window_ != NULL; }
void clear_renderers();
std::array
void handle_new_mesh();
void reset_camera();
void reset_camera_clipping_range();
void set_orientation_marker(Preferences::OrientationMarkerType type, Preferences::OrientationMarkerCorner corner);
void set_orientation_marker_viewport();
void update_feature_range();
void update_interactor_style();
void set_shared_brightness_and_contrast(double brightness, double contrast);
vtkRenderWindow* get_render_window();
int get_start_shape();
public Q_SLOTS: void handle_timer_callback();
Q_SIGNALS: void right_click(int index);
private:
vtkSmartPointer
void check_for_first_draw();
void display_shapes();
void insert_shape_into_viewer(std::shared_ptr
vtkSmartPointer
ShapeList shapes_;
// there is one viewer for every tile in the lightbox display ViewerList viewers_;
vtkRenderWindow* render_window_ = nullptr;
vtkRenderWindowInteractor* interactor_ = nullptr;
vtkCamera* camera_ = nullptr;
int tile_layout_width_ = 4; int tile_layout_height_ = 4;
int start_row_ = 0;
bool first_draw_ = true;
vtkSmartPointer
Visualizer* visualizer_{nullptr};
std::vector
QTimer loading_timer_;
int timer_callback_count_ = 0;
std::array
vtkSmartPointer
Preferences::OrientationMarkerType current_orientation_marker_type_ = Preferences::OrientationMarkerType::none; Preferences::OrientationMarkerCorner current_orientation_marker_corner_ = Preferences::OrientationMarkerCorner::upper_right;
QSharedPointer
Updated on 2026-03-31 at 16:02:11 +0000