Files
Jungfraujoch/viewer/image_viewer/JFJochDiffractionImage.h
Filip Leonarski 0a6ade81fa
All checks were successful
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m27s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 13m53s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 13m57s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 13m56s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 13m55s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m11s
Build Packages / Generate python client (push) Successful in 18s
Build Packages / build:rpm (rocky8) (push) Successful in 14m18s
Build Packages / Build documentation (push) Successful in 40s
Build Packages / build:rpm (rocky9) (push) Successful in 14m44s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 10m37s
Build Packages / build:rpm (ubuntu2404_nocuda) (pull_request) Successful in 10m26s
Build Packages / build:rpm (ubuntu2204_nocuda) (pull_request) Successful in 12m22s
Build Packages / build:rpm (rocky8_nocuda) (pull_request) Successful in 12m28s
Build Packages / Generate python client (pull_request) Successful in 22s
Build Packages / build:rpm (rocky8) (pull_request) Successful in 12m32s
Build Packages / Build documentation (pull_request) Successful in 34s
Build Packages / Create release (pull_request) Has been skipped
Build Packages / build:rpm (rocky8_sls9) (pull_request) Successful in 13m4s
Build Packages / build:rpm (rocky9_nocuda) (pull_request) Successful in 13m36s
Build Packages / build:rpm (rocky9) (pull_request) Successful in 10m49s
Build Packages / build:rpm (ubuntu2204) (pull_request) Successful in 9m10s
Build Packages / build:rpm (ubuntu2404) (pull_request) Successful in 7m32s
Build Packages / Unit tests (push) Successful in 1h2m59s
Build Packages / Unit tests (pull_request) Successful in 53m48s
jfjoch_viewer: Pressing "A" sets auto contrast
2026-01-31 16:17:32 +01:00

75 lines
2.0 KiB
C++

// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
// SPDX-License-Identifier: GPL-3.0-only
#pragma once
#include "JFJochImage.h"
#include "../../reader/JFJochReaderImage.h"
class JFJochDiffractionImage : public JFJochImage {
Q_OBJECT
QColor spot_color = Qt::green;
QColor prediction_color = Qt::darkRed;
QColor ice_ring_color = Qt::cyan;
float hover_resolution = NAN;
QGraphicsTextItem* hover_resolution_item = nullptr; // big text in top-left
public:
enum class RingMode {Auto, Estimation, Manual, None, IceRings};
Q_ENUM(RingMode)
JFJochDiffractionImage(QWidget *parent = nullptr);
private:
void addCustomOverlay() override;
void LoadImageInternal();
void DrawResolutionRings();
void DrawSpots();
void DrawPredictions();
void DrawBeamCenter();
void DrawTopPixels();
void DrawSaturation();
void DrawResolutionText();
void DrawCross(float x, float y, float size, float width, float z = 1);
void beforeOverlayCleared() override;
void leaveEvent(QEvent *event) override;
std::shared_ptr<const JFJochReaderImage> image;
int32_t show_highest_pixels = 0;
QVector<float> res_ring = {};
RingMode ring_mode = RingMode::Estimation;
bool show_spots = false;
bool show_predictions = false;
bool highlight_ice_rings = true;
float ice_ring_width_Q_recipA = 0.01;
void mouseHover(QMouseEvent* event) override;
public slots:
void loadImage(std::shared_ptr<const JFJochReaderImage> image);
void setAutoForeground(bool input);
void setAutoForegroundOnce();
void setResolutionRing(QVector<float> v);
void setResolutionRingMode(RingMode mode);
void showSpots(bool input);
void showPredictions(bool input);
void setSpotColor(QColor input);
void setPredictionColor(QColor input);
void showHighestPixels(int32_t v);
void showSaturation(bool input);
void highlightIceRings(bool input);
};