void OnDrawGizmos()
    {
        Transform[] trans = GetTransforms();
        if (trans.Length < 2)
        {
            return;
        }

        SplineInterpolator interp = GetComponent(typeof(SplineInterpolator)) as SplineInterpolator;

        SetupSplineInterpolator(interp, trans);
        interp.StartInterpolation(null, eRotationMode.PATH_ANGLE, WrapMode);

        Vector3 prevPos = trans[0].position;
        //Quaternion prevRot = trans [0].rotation;
        int numberOfLines = 500;

        for (int c = 1; c <= numberOfLines; c++)
        {
            float      currTime = c * Duration / numberOfLines;
            Vector3    currPos  = interp.GetHermiteAtTime(currTime);
            Quaternion currRot  = interp.GetRotationAtTime(currTime);
            //float mag = (currPos-prevPos).magnitude * 2;
            Gizmos.color = new Color(0, 0, 1, 1);
            Gizmos.DrawLine(prevPos, currPos);

            Vector3 dP = currPos - prevPos;

            Transform _transform = new GameObject().transform;
            _transform.rotation = currRot;

            Quaternion armDir   = Quaternion.LookRotation(dP, _transform.up);
            Vector3    rightArm = armDir * Vector3.right;
            Vector3    leftArm  = armDir * Vector3.left;

            Gizmos.color = new Color(0, 1, 0, 1);

            Gizmos.DrawRay(currPos, rightArm);
            Gizmos.DrawRay(currPos, leftArm);

            prevPos = currPos;
            //prevRot = currRot;

            DestroyImmediate(_transform.gameObject);
        }
    }