add ModuleFixTarget tab

This commit is contained in:
2022-08-25 17:17:54 +02:00
parent d625fbdfbd
commit 8fbd1c56af
4 changed files with 909 additions and 24 deletions

View File

@@ -138,6 +138,27 @@ class Marker(pg.ROI):
# p.drawRect(-w / 2, -h / 2, w, h)
# # p.drawText(-w, -h, '{:.0f}x{:.0f}'.format(*self._size))
class Fiducial(pg.ROI):
def __init__(self, pos, size, xyz, **kargs):
pg.ROI.__init__(self, pos, size, **kargs)
self._xyz=xyz
def paint(self, p, *args):
#pg.ROI.paint(self, p, *args)
r=QtCore.QRectF(0, 0, self.state['size'][0], self.state['size'][1]).normalized()
p.setRenderHint(QtGui.QPainter.Antialiasing)
p.setPen(self.currentPen)
p.translate(r.left(), r.top())
p.scale(.01*r.width(), .01*r.height()) # -> values x,y 0 to 100
p.drawRect(0, 0, 100, 100)
p.setPen(pg.mkPen(width=1, color=[255, 0, 0]))
p.drawLine(pg.Point(50,10), pg.Point(50, 90))
p.drawLine(pg.Point(10,50), pg.Point(90, 50))
tr=p.transform()
tr.setMatrix(tr.m11(), tr.m12(), tr.m13(), tr.m21(), -tr.m22(), tr.m23(), tr.m31(), tr.m32(), tr.m33())
p.setTransform(tr)
class Grid(pg.ROI):
'''a grid'''
@@ -200,6 +221,25 @@ class Grid(pg.ROI):
#p.drawEllipse(0, 0, 1, 1)
#p.drawRect(0, 0, 1, 1)
def __repr__(self):
s=f'{self.__class__.__name__}:(pos:{tuple(self.pos())}, size:{tuple(self.size())}, cnt:{self._cnt}, ficucialScale:{self._fidScl}}}'
return s
import yaml
def yaml_repr_Grid(dumper, data):
#s=f'{{"pos":{tuple(data.pos())}, "size":{tuple(data.size())}, "cnt":{data._cnt}, "ficucialScale":{data._fidScl}}}'
#return dumper.represent_scalar(u'!Grid', s)
m={'pos':tuple(data.pos()),'size':tuple(data.size()),'cnt':data._cnt, 'ficucialScale':data._fidScl}
return dumper.represent_mapping(u'!Grid', m)
yaml.add_representer(Grid, yaml_repr_Grid)
def yaml_cnstr_Grid(loader, node):
#value = loader.construct_scalar(node)
#kwargs=eval(value)
#return Grid(**kwargs)
m = loader.construct_mapping(node)
return Grid(**m)
yaml.add_constructor(u'!Grid', yaml_cnstr_Grid)
class Path(pg.ROI):
'''
@@ -524,6 +564,10 @@ if __name__=='__main__':
vi=FixTargetFrame((400,-200),(400,400),tpl='12.5x12.5')
vb.addItem(vi)
vi=Fiducial((0,200),(40,40),(1,2,3))
vb.addItem(vi)
childTree(vb)
w.scene().sigMouseClicked.connect(mouse_click_event)