C# Class FlatRedBall.AI.LineOfSight.VisibilityGrid

Represents a 2D grid of cells which identify what can be seen given a list of IViewers. This supports line of sight.
Mostra file Open project: vchelaru/FlatRedBall Class Usage Examples

Public Methods

Method Description
Activity ( ) : bool

Checks if any viewers have changed since last Update, and if so it updates the grid.

AddViewer ( IViewer viewerToAdd ) : void

Adds an IViewer to this grid.

BleedDirectlyVisibleToWalls ( ) : void

Makes walls visible if they are adjacent to visible non-walls.

BlockWorld ( float worldX, float worldY ) : void

Adds a block (or wall) at a given world location.

ClearBlockedTiles ( ) : void

Clears all blocked tiles.

Destroy ( ) : void

Destroys the VisibilityGrid - specifically disposing its internal fog texture.

ForceUpdateImageData ( ) : void
ForceUpdateVisibilityGrid ( ) : void
IndexToWorld ( int xIndex, int yIndex, float &worldX, float &worldY ) : void
IsPositionInDirectView ( IViewer viewer, Microsoft.Xna.Framework.Vector3 &targetPosition ) : bool

Returns whether a given world position is in view of a given viewer.

IsRevealed ( int xIndex, int yIndex ) : bool

Returns whether a given X and Y index is revealed.

IsRevealedWorld ( float worldX, float worldY ) : bool

Returns whether a given world coordinate is relealed.

MakeAllHidden ( ) : void

Hides the entire grid (makes it not revealed).

MakeAllRevealed ( ) : void

Reveals the entire grid.

RemoveViewer ( IViewer viewerToRemove ) : void

Removes a viewer.

RevealArea ( int x0, int y0, int x1, int y1 ) : void
RevealAreaWorld ( float worldX1, float worldY1, float worldX2, float worldY2 ) : void
RevealCircle ( int xIndex, int yIndex, int tileRadius ) : void
RevealCircleWorld ( float worldX, float worldY, float worldRadius ) : void

Reveals a circle around the given world coordinate using a given radius

RevealLine ( int x0, int y0, int x1, int y1 ) : void
RevealLineWorld ( float worldX1, float worldY1, float worldX2, float worldY2 ) : void
UnBlockWorld ( float X, float Y ) : void

Unblocks a tile that was previously marked as a world blocker

UpdateDisplay ( ) : void
UpdateFog ( ) : void
UpdateFog ( bool fullUpdate ) : void
VisibilityGrid ( float xSeed, float ySeed, float gridSpacing, int numberOfXTiles, int numberOfYTiles ) : System

Instantiates a new VisibilityGrid.

WorldToIndex ( float worldX, float worldY, float &xIndex, float &yIndex ) : void
WorldToIndex ( float worldX, float worldY, int &xIndex, int &yIndex ) : void

Private Methods

Method Description
CalculateFogColorByDistance ( float x, float y, byte alpha ) : byte
CalculateFogColorByDistance ( float x, float y, byte alpha, IViewer viewer ) : byte
UpdateRevealedFromViewers ( ) : void
UpdateViewersLocalVisibilityGrid ( IViewer viewer, ViewerInformation viewerInformation ) : void

Method Details

Activity() public method

Checks if any viewers have changed since last Update, and if so it updates the grid.
public Activity ( ) : bool
return bool

AddViewer() public method

Adds an IViewer to this grid.
public AddViewer ( IViewer viewerToAdd ) : void
viewerToAdd IViewer The viewer to add.
return void

BleedDirectlyVisibleToWalls() public method

Makes walls visible if they are adjacent to visible non-walls.
public BleedDirectlyVisibleToWalls ( ) : void
return void

BlockWorld() public method

Adds a block (or wall) at a given world location.
public BlockWorld ( float worldX, float worldY ) : void
worldX float The world coordinate X.
worldY float The world coordinate Y.
return void

ClearBlockedTiles() public method

Clears all blocked tiles.
public ClearBlockedTiles ( ) : void
return void

Destroy() public method

Destroys the VisibilityGrid - specifically disposing its internal fog texture.
public Destroy ( ) : void
return void

ForceUpdateImageData() public method

public ForceUpdateImageData ( ) : void
return void

ForceUpdateVisibilityGrid() public method

public ForceUpdateVisibilityGrid ( ) : void
return void

IndexToWorld() public method

public IndexToWorld ( int xIndex, int yIndex, float &worldX, float &worldY ) : void
xIndex int
yIndex int
worldX float
worldY float
return void

IsPositionInDirectView() public method

Returns whether a given world position is in view of a given viewer.
public IsPositionInDirectView ( IViewer viewer, Microsoft.Xna.Framework.Vector3 &targetPosition ) : bool
viewer IViewer The viewer to check visibility for.
targetPosition Microsoft.Xna.Framework.Vector3 The world coordinates.
return bool

IsRevealed() public method

Returns whether a given X and Y index is revealed.
public IsRevealed ( int xIndex, int yIndex ) : bool
xIndex int The x index
yIndex int The y index
return bool

IsRevealedWorld() public method

Returns whether a given world coordinate is relealed.
public IsRevealedWorld ( float worldX, float worldY ) : bool
worldX float The world x coordinate.
worldY float The world y coordinate.
return bool

MakeAllHidden() public method

Hides the entire grid (makes it not revealed).
public MakeAllHidden ( ) : void
return void

MakeAllRevealed() public method

Reveals the entire grid.
public MakeAllRevealed ( ) : void
return void

RemoveViewer() public method

Removes a viewer.
public RemoveViewer ( IViewer viewerToRemove ) : void
viewerToRemove IViewer The argument IViewer to remove.
return void

RevealArea() public method

public RevealArea ( int x0, int y0, int x1, int y1 ) : void
x0 int
y0 int
x1 int
y1 int
return void

RevealAreaWorld() public method

public RevealAreaWorld ( float worldX1, float worldY1, float worldX2, float worldY2 ) : void
worldX1 float
worldY1 float
worldX2 float
worldY2 float
return void

RevealCircle() public method

public RevealCircle ( int xIndex, int yIndex, int tileRadius ) : void
xIndex int
yIndex int
tileRadius int
return void

RevealCircleWorld() public method

Reveals a circle around the given world coordinate using a given radius
public RevealCircleWorld ( float worldX, float worldY, float worldRadius ) : void
worldX float The world coordinate X
worldY float The world coordinate Y
worldRadius float The radius in world units
return void

RevealLine() public method

public RevealLine ( int x0, int y0, int x1, int y1 ) : void
x0 int
y0 int
x1 int
y1 int
return void

RevealLineWorld() public method

public RevealLineWorld ( float worldX1, float worldY1, float worldX2, float worldY2 ) : void
worldX1 float
worldY1 float
worldX2 float
worldY2 float
return void

UnBlockWorld() public method

Unblocks a tile that was previously marked as a world blocker
public UnBlockWorld ( float X, float Y ) : void
X float The X coordinate of the tile
Y float The Y coordinate of the tile
return void

UpdateDisplay() public method

public UpdateDisplay ( ) : void
return void

UpdateFog() public method

public UpdateFog ( ) : void
return void

UpdateFog() public method

public UpdateFog ( bool fullUpdate ) : void
fullUpdate bool
return void

VisibilityGrid() public method

Instantiates a new VisibilityGrid.
public VisibilityGrid ( float xSeed, float ySeed, float gridSpacing, int numberOfXTiles, int numberOfYTiles ) : System
xSeed float The absolute x coordinate seed value.
ySeed float The absolute y coordinate seed value.
gridSpacing float The amount of distance in world coordinates between rows and columns.
numberOfXTiles int Number of tiles wide (on the X axis)
numberOfYTiles int Number of tiles heigh (on the Y axis)
return System

WorldToIndex() public method

public WorldToIndex ( float worldX, float worldY, float &xIndex, float &yIndex ) : void
worldX float
worldY float
xIndex float
yIndex float
return void

WorldToIndex() public method

public WorldToIndex ( float worldX, float worldY, int &xIndex, int &yIndex ) : void
worldX float
worldY float
xIndex int
yIndex int
return void