def drawFacePath(self, facePath):

        valveTransform = om.findObjectByName('valve').getChildFrame().transform
        path = DebugData()
        for i in range(1, len(facePath)):
            end0 = transformUtils.copyFrame(facePath[i - 1].transform)
            end0.Concatenate(valveTransform.GetLinearInverse())
            end1 = transformUtils.copyFrame(facePath[i].transform)
            end1.Concatenate(valveTransform.GetLinearInverse())
            path.addLine(np.array(end0.GetPosition()), np.array(end1.GetPosition()), radius=0.025)

        pathMesh = path.getPolyData()
        pointerTipLinePath = vis.showPolyData(pathMesh, 'face frame desired path', color=[0.0, 0.3, 1.0], parent=om.findObjectByName('valve'), alpha=1.0)
        pointerTipLinePath.actor.SetUserTransform(om.findObjectByName('valve').getChildFrame().transform)


    # Glue Functions ###########################################################
dataset/ETHPy150Open RobotLocomotion/director/src/python/director/valvedemo.py/ValvePlannerDemo.drawFacePath/original