def showDoorHandlePoints(self, polyData):

        doorHandle = om.findObjectByName('door handle')
        door = om.findObjectByName('door')

        doorWidth = door.getProperty('Dimensions')[1]
        doorAxes = transformUtils.getAxesFromTransform(door.getChildFrame().transform)
        doorOrigin = np.array(door.getChildFrame().transform.GetPosition())

        handleAxes = transformUtils.getAxesFromTransform(doorHandle.getChildFrame().transform)
        handleOrigin = np.array(doorHandle.getChildFrame().transform.GetPosition())

        doorSide = 1 if self.graspingHand == 'left' else -1

        polyData = segmentation.cropToLineSegment(polyData, doorOrigin - doorAxes[0]*0.02, doorOrigin - doorAxes[0]*0.1)
        polyData = segmentation.cropToLineSegment(polyData, doorOrigin, doorOrigin + doorAxes[1]*(doorWidth*0.5-0.01)*doorSide)
        polyData = segmentation.cropToLineSegment(polyData, handleOrigin - handleAxes[2]*0.1, handleOrigin + handleAxes[2]*0.1)

        pointsName = 'door handle points'
        existed = om.findObjectByName(pointsName) is not None
        obj = vis.updatePolyData(polyData, pointsName, parent=doorHandle, color=[1,0,0])
        if not existed:
            obj.setProperty('Point Size', 10)
dataset/ETHPy150Open RobotLocomotion/director/src/python/director/doordemo.py/DoorDemo.showDoorHandlePoints/original