Studio/src/Visualization/Visualizer.h
Namespaces
Name |
---|
shapeworks |
Classes
Name | |
---|---|
class | shapeworks::Visualizer Controls display of objects in viewers. |
Source code
#pragma once
#include <Data/Preferences.h>
#include <Data/Session.h>
#include <Visualization/Lightbox.h>
#include <map>
#include <string>
namespace shapeworks {
class Visualizer;
typedef QSharedPointer<Visualizer> VisualizerHandle;
class Visualizer : public QObject {
Q_OBJECT;
public:
Visualizer(Preferences& prefs);
~Visualizer();
void set_lightbox(LightboxHandle lightbox);
void set_session(SessionHandle session);
void set_center(bool center);
bool get_center();
void set_alignment_domain(int domain);
int get_alignment_domain();
void set_show_glyphs(bool show);
void set_show_surface(bool show);
void display_samples();
void update_samples();
void update_landmarks();
void update_planes();
void update_ffc_mode();
void display_sample(int i);
void display_shape(ShapeHandle shape);
void display_shapes(QVector<QSharedPointer<Shape>> shapes);
void set_selected_point_one(int id);
void set_selected_point_two(int id);
void set_mean(const Eigen::VectorXd& mean);
void reset_camera();
void update_lut();
StudioParticles get_current_shape();
vtkFloatArray* get_current_particle_scalars();
vtkSmartPointer<vtkPolyData> get_current_particle_poly_data();
void handle_new_mesh();
vtkSmartPointer<vtkPolyData> get_current_mesh();
std::vector<vtkSmartPointer<vtkPolyData>> get_current_meshes_transformed();
const std::string& get_feature_map() const;
void set_uniform_feature_range(bool value);
bool get_uniform_feature_range(void);
void set_feature_map(const std::string& feature_map);
void clear_viewers();
void reset_feature_range();
double* get_feature_range();
double* get_feature_raw_range();
bool get_feature_range_valid();
void update_feature_range(double* range);
void update_feature_range(double min, double max);
vtkSmartPointer<vtkTransform> get_transform(QSharedPointer<Shape> shape, int alignment_domain, int domain);
vtkSmartPointer<vtkTransform> get_transform(QSharedPointer<Shape> shape, DisplayMode display_mode, int alignment_domain, int domain);
void set_opacities(std::vector<float> opacities);
std::vector<float> get_opacities();
double get_current_glyph_size();
void handle_ctrl_click(PickResult result);
void redraw();
QPixmap export_to_pixmap(QSize size, bool transparent_background, bool show_orientation_marker,
bool show_color_scale, bool &ready);
QSize get_render_size();
public Q_SLOTS:
void update_viewer_properties();
void handle_feature_range_changed();
void handle_image_slice_settings_changed();
private:
Preferences& preferences_;
void compute_measurements();
void setup_single_selected_point_lut();
std::string feature_map_;
int alignment_domain_;
bool center_;
bool needs_camera_reset_ = true;
bool show_glyphs_ = true;
bool show_surface_ = true;
LightboxHandle lightbox_;
SessionHandle session_;
vtkSmartPointer<vtkLookupTable> glyph_lut_;
int selected_point_one_;
int selected_point_two_;
Eigen::VectorXd cached_mean_;
StudioParticles current_shape_;
double feature_range_[2] = {0, 0};
double feature_manual_range_[2] = {0, 0};
bool feature_range_valid_ = false;
bool feature_range_uniform_ = true;
std::vector<float> opacities_;
double current_glyph_size_{0};
};
} // namespace shapeworks
Updated on 2022-07-23 at 16:40:07 -0600