def updatePick(self, displayPoint): pickType = str(self.ui.pickTypeCombo.currentText) if 'render' in pickType: pickType = 'render' elif 'vertex' in pickType: pickType = 'points' elif 'surface' in pickType: pickType = 'cells' else: raise Exception('unknown pick type') tolerance = self.ui.toleranceSpinBox.value pickPointFields = vis.pickPoint(displayPoint, self.view, pickType=pickType, tolerance=tolerance) worldPoint = pickPointFields.pickedPoint prop = pickPointFields.pickedProp dataset = pickPointFields.pickedDataset normal = pickPointFields.pickedNormal if not prop: worldPoint = np.zeros(3) normal = np.zeros(3) obj = vis.getObjectByProp(prop) self.ui.displayPt.text = '%d, %d' % tuple(displayPoint) self.ui.worldPt.text = '%.5f, %.5f, %.5f' % tuple(worldPoint) self.ui.pickPt.text = '%.5f, %.5f, %.5f' % tuple(worldPoint) if normal is not None: self.ui.pickNormal.text = '%.5f, %.5f, %.5f' % tuple(normal) else: self.ui.pickNormal.text = 'not available' scale = computeViewScale(self.view, worldPoint) scale = scale * 10 self.annotation.setProperty('Visible', prop is not None) t = vtk.vtkTransform() t.Translate(worldPoint) t.Scale(scale, scale, scale) self.annotation.actor.SetUserTransform(t) self.annotation._renderAllViews() if obj: self.ui.objName.text = obj.getProperty('Name') else: self.ui.objName.text = 'none' if dataset: self.ui.numPts.text = dataset.GetNumberOfPoints() self.ui.numCells.text = dataset.GetNumberOfCells() else: self.ui.numPts.text = '0' self.ui.numCells.text = '0'
def tick(self): objs = self.getObjectsFunction() if self.getObjectsFunction else None self.hoverPos, prop, _ = vis.pickPoint(self.lastMovePos, self.view, pickType='cells', tolerance=self.tolerance, obj=objs) prevPickedObj = self.pickedObj curPickedObj = vis.getObjectByProp(prop) if curPickedObj is not prevPickedObj: self.unsetHoverProperties(prevPickedObj) self.setHoverProperties(curPickedObj) self.pickedObj = curPickedObj
def updatePick(self, displayPoint): pickType = str(self.ui.pickTypeCombo.currentText) if 'render' in pickType: pickType = 'render' elif 'vertex' in pickType: pickType = 'points' elif 'surface' in pickType: pickType = 'cells' else: raise Exception('unknown pick type') tolerance = self.ui.toleranceSpinBox.value pickPointFields = vis.pickPoint( displayPoint, self.view, pickType=pickType, tolerance=tolerance) worldPoint = pickPointFields.pickedPoint prop = pickPointFields.pickedProp dataset = pickPointFields.pickedDataset normal = pickPointFields.pickedNormal if not prop: worldPoint = np.zeros(3) normal = np.zeros(3) obj = vis.getObjectByProp(prop) self.ui.displayPt.text = '%d, %d' % tuple(displayPoint) self.ui.worldPt.text = '%.5f, %.5f, %.5f' % tuple(worldPoint) self.ui.pickPt.text = '%.5f, %.5f, %.5f' % tuple(worldPoint) self.ui.pickNormal.text = '%.5f, %.5f, %.5f' % tuple(normal) self.annotation.setProperty('Visible', prop is not None) t = vtk.vtkTransform() t.Translate(worldPoint) self.annotation.actor.SetUserTransform(t) self.annotation._renderAllViews() if obj: self.ui.objName.text = obj.getProperty('Name') else: self.ui.objName.text = 'none' if dataset: self.ui.numPts.text = dataset.GetNumberOfPoints() self.ui.numCells.text = dataset.GetNumberOfCells() else: self.ui.numPts.text = '0' self.ui.numCells.text = '0'
def updatePick(self, displayPoint): pickType = str(self.ui.pickTypeCombo.currentText) if "render" in pickType: pickType = "render" elif "vertex" in pickType: pickType = "points" elif "surface" in pickType: pickType = "cells" else: raise Exception("unknown pick type") tolerance = self.ui.toleranceSpinBox.value pickPointFields = vis.pickPoint(displayPoint, self.view, pickType=pickType, tolerance=tolerance) worldPoint = pickPointFields.pickedPoint prop = pickPointFields.pickedProp dataset = pickPointFields.pickedDataset normal = pickPointFields.pickedNormal if not prop: worldPoint = np.zeros(3) normal = np.zeros(3) obj = vis.getObjectByProp(prop) self.ui.displayPt.text = "%d, %d" % tuple(displayPoint) self.ui.worldPt.text = "%.5f, %.5f, %.5f" % tuple(worldPoint) self.ui.pickPt.text = "%.5f, %.5f, %.5f" % tuple(worldPoint) self.ui.pickNormal.text = "%.5f, %.5f, %.5f" % tuple(normal) self.annotation.setProperty("Visible", prop is not None) t = vtk.vtkTransform() t.Translate(worldPoint) self.annotation.actor.SetUserTransform(t) self.annotation._renderAllViews() if obj: self.ui.objName.text = obj.getProperty("Name") else: self.ui.objName.text = "none" if dataset: self.ui.numPts.text = dataset.GetNumberOfPoints() self.ui.numCells.text = dataset.GetNumberOfCells() else: self.ui.numPts.text = "0" self.ui.numCells.text = "0"
def placeHandModel(displayPoint, view, side='left'): obj, _ = vis.findPickedObject(displayPoint, view) if isinstance(obj, vis.FrameItem): _, handFrame = handFactory.placeHandModelWithTransform( obj.transform, view, side=side, parent=obj.parent()) handFrame.frameSync = vis.FrameSync() handFrame.frameSync.addFrame(obj) handFrame.frameSync.addFrame(handFrame, ignoreIncoming=True) return pickedPointFields = vis.pickPoint(displayPoint, view, pickType='cells', tolerance=0.0) pickedPoint = pickedPointFields.pickedPoint prop = pickedPointFields.pickedProp obj = vis.getObjectByProp(prop) if not obj: return yaxis = -normal zaxis = [0, 0, 1] xaxis = np.cross(yaxis, zaxis) xaxis /= np.linalg.norm(xaxis) zaxis = np.cross(xaxis, yaxis) zaxis /= np.linalg.norm(zaxis) t = transformUtils.getTransformFromAxes(-zaxis, yaxis, xaxis) t.PostMultiply() t.Translate(pickedPoint) if side == 'right': t.PreMultiply() t.RotateY(180) handObj, handFrame = handFactory.placeHandModelWithTransform(t, view, side=side, parent=obj) syncFrame = getChildFrame(obj) if syncFrame: handFrame.frameSync = vis.FrameSync() handFrame.frameSync.addFrame(handFrame, ignoreIncoming=True) handFrame.frameSync.addFrame(syncFrame)
def tick(self): objs = self.getObjectsFunction() if self.getObjectsFunction else None pickedPointFields = vis.pickPoint( self.lastMovePos, self.view, pickType="cells", tolerance=self.tolerance, obj=objs, ) self.hoverPos = pickedPointFields.pickedPoint prop = pickedPointFields.pickedProp prevPickedObj = self.pickedObj curPickedObj = vis.getObjectByProp(prop) if curPickedObj is not prevPickedObj: self.unsetHoverProperties(prevPickedObj) self.setHoverProperties(curPickedObj) self.pickedObj = curPickedObj
def placeHandModel(displayPoint, view, side='left'): obj, _ = vis.findPickedObject(displayPoint, view) if isinstance(obj, vis.FrameItem): _, handFrame = handFactory.placeHandModelWithTransform(obj.transform, view, side=side, parent=obj.parent()) handFrame.frameSync = vis.FrameSync() handFrame.frameSync.addFrame(obj) handFrame.frameSync.addFrame(handFrame, ignoreIncoming=True) return pickedPointFields = vis.pickPoint(displayPoint, view, pickType='cells', tolerance=0.0) pickedPoint = pickedPointFields.pickedPoint prop = pickedPointFields.pickedProp obj = vis.getObjectByProp(prop) if not obj: return yaxis = -normal zaxis = [0,0,1] xaxis = np.cross(yaxis, zaxis) xaxis /= np.linalg.norm(xaxis) zaxis = np.cross(xaxis, yaxis) zaxis /= np.linalg.norm(zaxis) t = transformUtils.getTransformFromAxes(-zaxis, yaxis, xaxis) t.PostMultiply() t.Translate(pickedPoint) if side == 'right': t.PreMultiply() t.RotateY(180) handObj, handFrame = handFactory.placeHandModelWithTransform(t, view, side=side, parent=obj) syncFrame = getChildFrame(obj) if syncFrame: handFrame.frameSync = vis.FrameSync() handFrame.frameSync.addFrame(handFrame, ignoreIncoming=True) handFrame.frameSync.addFrame(syncFrame)
def tick(self): # get affordances affs = self.affordanceManager.getAffordances() affs = [a for a in affs if a.getProperty('Visible')] if self.filterFunc is not None: affs = [a for a in affs if self.filterFunc(a)] # get picked affordance self.hoverPos, prop, _ = vis.pickPoint(self.lastMovePos, self.view, pickType='cells', tolerance=self.tolerance, obj=affs) prevPickedObj = self.pickedObj curPickedObj = vis.getObjectByProp(prop) if curPickedObj is not prevPickedObj: if prevPickedObj is not None: prevPickedObj.setProperty('Color', self.storedProps['Color']) prevPickedObj.setProperty('Alpha', self.storedProps['Alpha']) if curPickedObj is not None: self.storedProps['Color'] = curPickedObj.getProperty('Color') self.storedProps['Alpha'] = curPickedObj.getProperty('Alpha') curPickedObj.setProperty('Color', self.hoverColor) curPickedObj.setProperty('Alpha', self.hoverAlpha) self.pickedObj = curPickedObj self.draw()