wip
This commit is contained in:
88
swissmx.py
88
swissmx.py
@@ -317,14 +317,16 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
self.glw.scene().sigMouseClicked.connect(self.mouse_click_event)
|
||||
|
||||
#--- viewbox ---
|
||||
self.vb=vb=self.glw.addViewBox(invertY=False)#),border='r')#,enableMenu=False)
|
||||
#self.vb=vb=self.glw.addViewBox(invertY=False,border='r',enableMenu=False)
|
||||
self.vb=vb=self.glw.addViewBox(invertY=False,border='r',enableMenu=False)
|
||||
vb.setAspectLocked(True)
|
||||
vb.setBackgroundColor((120, 90, 90))
|
||||
|
||||
#--- image ---
|
||||
self.img=img=pg.ImageItem()
|
||||
tr=QtGui.QTransform() # prepare ImageItem transformation:
|
||||
#opt_ctr=app._geometry._opt_ctr
|
||||
opt_ctr=app._geometry._opt_ctr
|
||||
|
||||
#--- image ---
|
||||
self._goImg=img=pg.ImageItem()
|
||||
tr.setMatrix(-1, 0, 0,
|
||||
0,-1, 0,
|
||||
0, 0, 1)
|
||||
@@ -334,19 +336,24 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
|
||||
#--- grid ---
|
||||
try:
|
||||
grid=pg.GridItem(pen=(0,255,0),textPen=(0,255,0)) #green grid and labels
|
||||
self._goGrid=grid=pg.GridItem(pen=(0,255,0),textPen=(0,255,0)) #green grid and labels
|
||||
except:
|
||||
grid=pg.GridItem()
|
||||
self._goGrid=grid=pg.GridItem()
|
||||
tr.reset()
|
||||
grid.setTransform(tr) # assign transform
|
||||
vb.addItem(grid)
|
||||
|
||||
#--- beam marker ---
|
||||
w, h = cfg.value(AppCfg.GEO_BEAM_SZ)
|
||||
bm=UsrGO.BeamMark([50, 120], [30, 20])
|
||||
bm_sz=np.array(tuple(map(int, cfg.value(AppCfg.GEO_BEAM_SZ))))
|
||||
self._goBeamMarker=bm=UsrGO.Marker(-opt_ctr-[50, 120],bm_sz,mode=0)
|
||||
bm.setTransform(tr) # assign transform
|
||||
self.vb.addItem(bm)
|
||||
|
||||
#--- opctical center ---
|
||||
self._goOptCtr=obj=UsrGO.Marker(-opt_ctr, [50, 50],mode=1)
|
||||
bm.setTransform(tr) # assign transform
|
||||
self.vb.addItem(obj)
|
||||
|
||||
#--- testing scan grid ---
|
||||
vi=UsrGO.Grid((120, -100), (200, 150), (30, 22), 2)
|
||||
vi.setTransform(tr) # assign transform
|
||||
@@ -426,7 +433,7 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
sim['imgIdx']=(idx+1)%imgSeq.shape[0]
|
||||
# _log.info('simulated idx:{}'.format(idx))
|
||||
pic=imgSeq[idx]
|
||||
self.img.setImage(pic)
|
||||
self._goImg.setImage(pic)
|
||||
|
||||
delay=500 # ms -> 2fps
|
||||
QtCore.QTimer.singleShot(delay, self.new_frame_sim_cb)
|
||||
@@ -443,7 +450,7 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
if pic.dtype==np.int16:
|
||||
pic.dtype=np.uint16
|
||||
camera.epics_cam.set_fiducial(pic, 255)
|
||||
self.img.setImage(pic)
|
||||
self._goImg.setImage(pic)
|
||||
|
||||
def init_settings_tracker(self):
|
||||
app=QApplication.instance()
|
||||
@@ -1093,7 +1100,7 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
app = QApplication.instance()
|
||||
self._mouse_pos = pos
|
||||
task = self.active_task()
|
||||
xy = self.img.mapFromScene(pos)
|
||||
xy = self._goImg.mapFromScene(pos)
|
||||
z = app._zoom.get()
|
||||
#_log.debug('mouse_pos:{} scene_pos:{} zoom:{}'.format(pos,xy,z))
|
||||
#TODO: implement mouse handling
|
||||
@@ -1142,7 +1149,7 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
raw=app._raw_pix2pos[zoom]
|
||||
except KeyError as e:
|
||||
raw=app._raw_pix2pos[zoom]=list()
|
||||
imgPos=self.img.mapFromScene(event.scenePos())
|
||||
imgPos=self._goImg.mapFromScene(event.scenePos())
|
||||
fx=fast_x.get_position();
|
||||
fy=fast_y.get_position()
|
||||
x=imgPos.x();y=imgPos.y()
|
||||
@@ -1153,7 +1160,7 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
raw=app._raw_opt_ctr[zoom]
|
||||
except KeyError as e:
|
||||
raw=app._raw_opt_ctr[zoom]=list()
|
||||
imgPos=self.img.mapFromScene(event.scenePos())
|
||||
imgPos=self._goImg.mapFromScene(event.scenePos())
|
||||
x=imgPos.x();y=imgPos.y()
|
||||
_log.debug('append calib: zoom:{} cam_pix_x_y:{}/{}'.format(zoom, x, y))
|
||||
raw.append(( x, y))
|
||||
@@ -1161,24 +1168,61 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
QMessageBox.warning(self, "calibration", "no calibration started yet.\nPress 'pix2pos' or 'opt_ctr' button first")
|
||||
|
||||
def mouse_click_event(self, event):
|
||||
_log.debug("{}".format(event))
|
||||
_log.debug("screen pos {}".format(event.screenPos())) #pixel position on the whole screen
|
||||
_log.debug("scene pos {}".format(event.scenePos())) #pixel position on the scene (including black frame)
|
||||
#_log.debug("{}".format(event))
|
||||
#_log.debug("screen pos {}".format(event.screenPos())) #pixel position on the whole screen
|
||||
#_log.debug("scene pos {}".format(event.scenePos())) #pixel position on the scene (including black frame)
|
||||
#_log.debug(" pos {}".format(event.pos())) #pixel position of the ckicked object mapped to its coordinates
|
||||
p=event.scenePos()
|
||||
_log.debug(f"vb pos {self.vb.mapFromScene(p)}") #pixel position on the scene (including black frame)
|
||||
for o in self.vb.childGroup.childItems():
|
||||
_log.debug(f"{type(o)} pos {o.mapFromScene(p)}") #pixel position on the scene (including black frame)
|
||||
#p=event.scenePos()
|
||||
#_log.debug(f"vb pos {self.vb.mapFromScene(p)}") #pixel position on the scene (including black frame)
|
||||
#for o in self.vb.childGroup.childItems():
|
||||
# _log.debug(f"{type(o)} pos {o.mapFromScene(p)}") #pixel position on the scene (including black frame)
|
||||
|
||||
task = self.active_task()
|
||||
if task==TASK_SETUP_GEOMETRY_CALIB:
|
||||
self.mouse_click_event_geometry_calib(event)
|
||||
return
|
||||
|
||||
#Ctrl-left : move to position
|
||||
#Ctrl-left : move to position
|
||||
|
||||
#dblclick = event.double()
|
||||
app=QApplication.instance()
|
||||
mod=event.modifiers()
|
||||
btn=event.button()
|
||||
if btn==Qt.LeftButton:
|
||||
if mod&Qt.ShiftModifier:
|
||||
pass
|
||||
elif mod&Qt.ControlModifier:
|
||||
pos=event.scenePos()
|
||||
_log.debug(f'move to position :scene pos {pos}')
|
||||
geo=app._geometry
|
||||
geo.interp_zoom(1)
|
||||
bm=self._goBeamMarker
|
||||
p1=self._goImg.mapFromScene(pos)
|
||||
p2=bm.pos()+bm.size()/2
|
||||
px=p2+p1
|
||||
um=geo.pix2pos(px)
|
||||
_log.debug(f'{px} -> {um}')
|
||||
pass
|
||||
elif mod&Qt.AltModifier:
|
||||
pass
|
||||
else:
|
||||
pass
|
||||
elif btn==Qt.RightButton:
|
||||
if mod&Qt.ShiftModifier:
|
||||
pass
|
||||
elif mod&Qt.ControlModifier:
|
||||
_log.debug('object tree')
|
||||
UsrGO.obj_tree(self.vb)
|
||||
pass
|
||||
elif mod&Qt.AltModifier:
|
||||
pass
|
||||
else:
|
||||
pass
|
||||
return
|
||||
|
||||
return
|
||||
assert(event.currentItem==self.vb)
|
||||
UsrGO.obj_tree(self.vb)
|
||||
#UsrGO.obj_info(self.img)
|
||||
|
||||
event.pos()# return Point(self.currentItem.mapFromScene(self._scenePos))
|
||||
@@ -1203,7 +1247,7 @@ class Main(QMainWindow, Ui_MainWindow):
|
||||
ctrl = Qt.ControlModifier & event.modifiers()
|
||||
alt = Qt.AltModifier & event.modifiers()
|
||||
|
||||
xy = self.img.mapFromScene(pos)
|
||||
xy = self._goImg.mapFromScene(pos)
|
||||
x, y = xy.x(), xy.y()
|
||||
bx, by = self.get_beam_mark_on_camera_xy()
|
||||
a = np.asarray([x, y])
|
||||
|
||||
Reference in New Issue
Block a user