/// <summary>
        /// Creates a vector field using the VectorFieldOptions exposed on this component.
        /// </summary>
        /// <param name="group">The transient unit group.</param>
        /// <param name="path">The path.</param>
        /// <returns>A new vector field, or null on error</returns>
        public IVectorField CreateVectorField(TransientGroup <IUnitFacade> group, Path path)
        {
            IVectorField newField = null;

            switch (vectorFieldOptions.vectorFieldType)
            {
            case VectorFieldType.FullGridField:
            {
                newField = new FullGridVectorField(group, path, vectorFieldOptions);
                break;
            }

            case VectorFieldType.ProgressiveField:
            {
                newField = new ProgressiveVectorField(group, path, vectorFieldOptions);
                break;
            }

            case VectorFieldType.CrossGridField:
            {
                newField = new CrossGridVectorField(group, path, vectorFieldOptions);
                break;
            }

            default:
            case VectorFieldType.FunnelField:
            {
                newField = new FunnelVectorField(group, path, vectorFieldOptions);
                break;
            }
            }

            if (newField == null)
            {
                return(null);
            }

            newField.Initialize();

            return(newField);
        }
        /// <summary>
        /// Creates a vector field using the VectorFieldOptions exposed on this component.
        /// </summary>
        /// <param name="group">The transient unit group.</param>
        /// <param name="path">The path.</param>
        /// <returns>A new vector field, or null on error</returns>
        public IVectorField CreateVectorField(TransientGroup<IUnitFacade> group, Path path)
        {
            IVectorField newField = null;
            switch (vectorFieldOptions.vectorFieldType)
            {
                case VectorFieldType.FullGridField:
                {
                    newField = new FullGridVectorField(group, path, vectorFieldOptions);
                    break;
                }

                case VectorFieldType.ProgressiveField:
                {
                    newField = new ProgressiveVectorField(group, path, vectorFieldOptions);
                    break;
                }

                case VectorFieldType.CrossGridField:
                {
                    newField = new CrossGridVectorField(group, path, vectorFieldOptions);
                    break;
                }

                default:
                case VectorFieldType.FunnelField:
                {
                    newField = new FunnelVectorField(group, path, vectorFieldOptions);
                    break;
                }
            }

            if (newField == null)
            {
                return null;
            }

            newField.Initialize();

            return newField;
        }