diff --git a/mxcube3/routes/beamlineutils.py b/mxcube3/routes/beamlineutils.py index 7965df2c6..7d06a5636 100644 --- a/mxcube3/routes/beamlineutils.py +++ b/mxcube3/routes/beamlineutils.py @@ -22,7 +22,6 @@ def get_beam_info(): # the correct beam posiition width, height, scale = streaming.video_size() position = beam_info.get_beam_position() - position = position[0] * scale, position[1] * scale beam_info_dict["position"] = position return beam_info_dict diff --git a/mxcube3/ui/actions/sampleview.js b/mxcube3/ui/actions/sampleview.js index fb7d7f32d..22c753f0f 100644 --- a/mxcube3/ui/actions/sampleview.js +++ b/mxcube3/ui/actions/sampleview.js @@ -140,7 +140,8 @@ export function setVideoSize(width, height) { width: json.imageWidth, height: json.imageHeight, pixelsPerMm: json.pixelsPerMm, - beamPosition: json.position + beamPosition: json.position, + sourceScale: json.scale }); }); } diff --git a/mxcube3/ui/components/SampleView/SampleImage.jsx b/mxcube3/ui/components/SampleView/SampleImage.jsx index 03fed86df..12008990f 100644 --- a/mxcube3/ui/components/SampleView/SampleImage.jsx +++ b/mxcube3/ui/components/SampleView/SampleImage.jsx @@ -334,11 +334,11 @@ export default class SampleImage extends React.Component { } } - drawCanvas(imageRatio) { + drawCanvas(imageRatio, sourceScale) { // Getting the size of screen const { width, height } = this.props; - const w = width * imageRatio; - const h = height * imageRatio; + const w = width * imageRatio / sourceScale; + const h = height * imageRatio / sourceScale; // Set the size of the original html Canvas const canvasWindow = document.getElementById('canvas'); canvasWindow.width = w; @@ -726,9 +726,10 @@ export default class SampleImage extends React.Component { points, lines, grids, - pixelsPerMm + pixelsPerMm, + sourceScale } = nextProps; - this.drawCanvas(imageRatio); + this.drawCanvas(imageRatio, sourceScale); this.canvas.add(...makeImageOverlay( imageRatio, pixelsPerMm, diff --git a/mxcube3/ui/containers/SampleViewContainer.js b/mxcube3/ui/containers/SampleViewContainer.js index 3f7ed2a8d..b2b9b8e5a 100644 --- a/mxcube3/ui/containers/SampleViewContainer.js +++ b/mxcube3/ui/containers/SampleViewContainer.js @@ -17,7 +17,7 @@ import config from 'guiConfig'; class SampleViewContainer extends Component { render() { - const { imageRatio, motorSteps } = this.props.sampleViewState; + const { sourceScale, imageRatio, motorSteps } = this.props.sampleViewState; const { sendMotorPosition, setStepSize, sendStopMotor } = this.props.sampleViewActions; const sampleID = this.props.current.sampleID; const [points, lines, grids] = [{}, {}, {}]; @@ -90,7 +90,7 @@ class SampleViewContainer extends Component { sampleID={sampleID} sampleData={this.props.sampleList[sampleID]} defaultParameters={this.props.defaultParameters} - imageRatio={imageRatio} + imageRatio={imageRatio * sourceScale} workflows={this.props.workflows} savedPointId={this.props.sampleViewState.savedPointId} groupFolder={this.props.groupFolder} @@ -100,6 +100,7 @@ class SampleViewContainer extends Component { sampleActions={this.props.sampleViewActions} {...this.props.sampleViewState} {...this.props.beamline} + imageRatio={imageRatio * sourceScale} contextMenuVisible={this.props.contextMenu.show} shapes={this.props.shapes} points={points} diff --git a/mxcube3/ui/reducers/sampleview.js b/mxcube3/ui/reducers/sampleview.js index 170a0c2dd..ef812d593 100644 --- a/mxcube3/ui/reducers/sampleview.js +++ b/mxcube3/ui/reducers/sampleview.js @@ -14,6 +14,7 @@ const initialState = { autoScale: true, imageRatio: 0, pixelsPerMm: [0, 0], + sourceScale: 1, motorSteps: { focusStep: 0.1, phiStep: 90, @@ -98,7 +99,8 @@ export default (state = initialState, action) => { width: action.width, height: action.height, pixelsPerMm: action.pixelsPerMm, - beamPosition: action.beamPosition + beamPosition: action.beamPosition, + sourceScale: action.sourceScale }; } case 'CENTRING_CLICKS_LEFT': { @@ -221,7 +223,8 @@ export default (state = initialState, action) => { beamSize: { x: action.data.beamInfo.size_x, y: action.data.beamInfo.size_y }, phaseList: action.data.phaseList, currentPhase: action.data.currentPhase, - pixelsPerMm: action.data.Camera.pixelsPerMm + pixelsPerMm: action.data.Camera.pixelsPerMm, + sourceScale: action.data.Camera.scale }; } default: