private void attachDebugNode(Node root) {
        if (debugNode == null) {
            debugNode = new Node();
            Material m = assetManager.loadMaterial("Common/Materials/RedColor.j3m");
            for (Iterator<Vector3f> it = spline.getControlPoints().iterator(); it.hasNext();) {
                Vector3f cp = it.next();
                Geometry geo = new Geometry("box", new Box(0.3f, 0.3f, 0.3f));
                geo.setLocalTranslation(cp);
                geo.setMaterial(m);
                debugNode.attachChild(geo);

            }
            switch (spline.getType()) {
                case CatmullRom:
                    debugNode.attachChild(createCatmullRomPath());
                    break;
                case Linear:
                    debugNode.attachChild(createLinearPath());
                    break;
                default:
                    debugNode.attachChild(createLinearPath());
                    break;
            }

            root.attachChild(debugNode);
        }
    }
interpolate the path giving the time since the beginning and the motionControl
this methods sets the new localTranslation to the spatial of the MotionEvent control.
@param time the time since the animation started
@param control the control over the moving spatial
@param tpf time per frame (in seconds)
@return the distance travelled (in world units)
jme3-core/src/main/java/com/jme3/cinematic/MotionPath.java