/// <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; }