/// <summary> /// Calculates an arrow /// </summary> /// <param name="source">The source of the source arrow</param> /// <param name="target">The target of the source arrow</param> /// <param name="arrow">The source arrow</param> /// <returns>The target arrow</returns> public IAdvancedCategoryArrow CalculateArrow(IAdvancedCategoryObject source, IAdvancedCategoryObject target, IAdvancedCategoryArrow arrow) { IAdvancedCategoryObject s = next.CalculateObject(arrow.Source as IAdvancedCategoryObject); IAdvancedCategoryObject t = next.CalculateObject(arrow.Target as IAdvancedCategoryObject); IAdvancedCategoryArrow n = next.CalculateArrow(s, t, arrow); IAdvancedCategoryArrow ar = first.CalculateArrow(source, target, n); return(ar); }
/// <summary> /// Calculates an object /// </summary> /// <param name="obj">The source object</param> /// <returns>The target object</returns> public IAdvancedCategoryObject CalculateObject(IAdvancedCategoryObject obj) { return(first.CalculateObject(next.CalculateObject(obj))); }