Hello. I am a beginner VTK user and I need an immediate help. I am working on a extension on an old code. As I understand, I need to give Pick() function id coordinates( back then, code was working properly with id coordinates). But now, I have physical coordinates(as I understand, again) and Pick() do not work with these. So, I tried conversion with TransformPhysicalPointToContinuousIndex() but it did not work. It changed nothing. Returned the exact same physicalcoordinates. Thanks,
def leftButtonPressEvent(self, obj, event):
global data, vec, i, noktagoster, goster, x, y, mousehareket, clickPosold, selet, pointposOld, arb, distp
# print('right',event)
clickPos = self.GetInteractor().GetEventPosition()
picker = vtk.vtkPropPicker()
self.NewPickedActor = picker.GetActor()
picker.Pick(clickPos[0], clickPos[1], 0, self.GetDefaultRenderer())
pointpos = picker.GetPickPosition()
x, y, z = pointpos
vtri = [x, y, z]
print("VTRI first: "+str(pointpos))
vec.append(vtri)
print(i)
i = i + 1
f = open("hamsi.txt", "a")
f.write(str(vec[i][2]) + "\n")
f.close()
if i == 0:
MouseInteractor.cagir(vec)
else:
MouseInteractor.cagir(vec)
diffx = (vec[1][0] - vec[0][0])/100#will be adjusted afterwards
diffy = (vec[1][1] - vec[0][1])/100
temp = [0, 0,0] # holds only x and y
temp[0] = vec[0][0]
temp[1] = vec[0][1]
#while (
# abs(temp[0] - vec[1][0]) > 0.18 or abs(temp[1] - vec[1][1]) > 0.18
#):
for q in range(100):
temp[0] += diffx
temp[1] += diffy
'''print("temp[0]: "+str(temp[0]))
print("temp[1]: "+str(temp[1]))
print("vec[1][0]: "+str(vec[1][0]))
print("vec[1][1]: "+str(vec[1][1]))'''
#clickPos = self.GetInteractor().GetEventPosition()#need to be temp x y and world z
#print(type(clickPos))
picker = vtk.vtkPropPicker()
temp_id=[0,0,0]
convert=vtk.vtkImageData()
convert.TransformPhysicalPointToContinuousIndex(temp[0],temp[1],0,temp_id)
print(temp_id)
#self.NewPickedActor = picker.GetActor()
#temp=tuple(temp)
print("temp[0]: "+str(temp[0]))
print("temp[1]: "+str(temp[1]))
picker.Pick(temp[0],temp[1],0,self.GetDefaultRenderer())
#temp=list(temp)
pointpos = picker.GetPickPosition()
x, y, z = pointpos
vtri = [x, y, z]
print("VTRI: "+str(vtri))
vec.append(vtri)
print(i)
i = i + 1
f = open("hamsi.txt", "a")
f.write(str(vec[i][2]) + "\n")
f.close()
MouseInteractor.cagir(vec)