/// <summary> /// Performs a field-of-view calculation with the specified parameters and appends it any existing field-of-view calculations. /// Field-of-view (FOV) is basically a calculation of what is observable in the Map from a given Cell with a given light radius. /// </summary> /// <example> /// When a character is holding a light source in a large area that also has several other sources of light such as torches along the walls /// ComputeFov could first be called for the character and then AppendFov could be called for each torch to give us the final combined FOV given all the light sources /// </example> /// <param name="xOrigin">X location of the Cell to perform the field-of-view calculation with 0 as the farthest left</param> /// <param name="yOrigin">Y location of the Cell to perform the field-of-view calculation with 0 as the top</param> /// <param name="radius">The number of Cells in which the field-of-view extends from the origin Cell. Think of this as the intensity of the light source.</param> /// <param name="lightWalls">True if walls should be included in the field-of-view when they are within the radius of the light source. False excludes walls even when they are within range.</param> public void AppendFov(int xOrigin, int yOrigin, int radius, bool lightWalls) { _fieldOfView.AppendFov(xOrigin, yOrigin, radius, lightWalls); }
/// <summary> /// Performs a field-of-view calculation with the specified parameters and appends it any existing field-of-view calculations. /// Field-of-view (FOV) is basically a calculation of what is observable in the Map from a given Cell with a given light radius. /// </summary> /// <example> /// When a character is holding a light source in a large area that also has several other sources of light such as torches along the walls /// ComputeFov could first be called for the character and then AppendFov could be called for each torch to give us the final combined FOV given all the light sources /// </example> /// <param name="xOrigin">X location of the Cell to perform the field-of-view calculation with 0 as the farthest left</param> /// <param name="yOrigin">Y location of the Cell to perform the field-of-view calculation with 0 as the top</param> /// <param name="radius">The number of Cells in which the field-of-view extends from the origin Cell. Think of this as the intensity of the light source.</param> /// <param name="lightWalls">True if walls should be included in the field-of-view when they are within the radius of the light source. False excludes walls even when they are within range.</param> /// <returns>List of Cells representing what is observable in the Map based on the specified parameters</returns> public ReadOnlyCollection <ICell> AppendFov(int xOrigin, int yOrigin, int radius, bool lightWalls) { return(_fieldOfView.AppendFov(xOrigin, yOrigin, radius, lightWalls)); }