protected virtual void OnSceneGUI()
    {
        circlePath = target as CirclePath;

        Vector3 prevPathPos = circlePath.GetPoint(0f);

        int iterations = 100;

        for (int i = 1; i <= iterations; i++)
        {
            Vector3 pathPos = circlePath.GetPoint(i / (float)iterations);
            Handles.DrawLine(pathPos, prevPathPos);

            prevPathPos = pathPos;
        }

        int numIterations = 10 * Mathf.CeilToInt(circlePath.CircleRadius);

        for (int i = 1; i < numIterations; i++)
        {
            float alpha = i / (float)numIterations;

            Vector3 pos    = circlePath.GetPoint(alpha);
            Vector3 normal = circlePath.GetNormal(alpha);

            Handles.color = Color.green;
            Handles.DrawLine(pos, pos + normal * 0.4f);
        }
    }