Show / Hide Table of Contents

Class OffGrid

Variant of a Square grid with irregularly shaped rectangles. https://gitlab.com/chriscox/offgrid/-/wikis/home

Cell (0, 0, 0) is a random rectangle filling at most from (-1, -1, 0) to (1, 1, 0), and having height and width at least minSize

Inheritance
object
NestedModifier
PlanarLazyGrid
OffGrid
Implements
IGrid
Inherited Members
PlanarLazyGrid.Setup(Vector2, Vector2, Vector2, Vector2, bool, SquareBound, IEnumerable<ICellType>, ICachePolicy)
PlanarLazyGrid.ChunkOffset(Cell)
PlanarLazyGrid.MeshTranslation(Cell)
PlanarLazyGrid.GetDual()
PlanarLazyGrid.GetDiagonalGrid()
PlanarLazyGrid.StrideX
PlanarLazyGrid.StrideY
PlanarLazyGrid.AabbBottomLeft
PlanarLazyGrid.AabbSize
NestedModifier.Setup(IGrid, IEnumerable<ICellType>, ICachePolicy)
NestedModifier.GetChildGridCached(Cell)
NestedModifier.GetCellTypes()
NestedModifier.GetCompactGrid()
NestedModifier.Recenter(Cell)
NestedModifier.GetCells()
NestedModifier.GetCellType(Cell)
NestedModifier.IsCellInGrid(Cell)
NestedModifier.TryMoveByOffset(Cell, Vector3Int, Vector3Int, CellRotation, out Cell, out CellRotation)
NestedModifier.ParallelTransport(IGrid, Cell, Cell, Cell, CellRotation, out Cell, out CellRotation)
NestedModifier.GetCellDirs(Cell)
NestedModifier.GetCellCorners(Cell)
NestedModifier.FindBasicPath(Cell, Cell)
NestedModifier.GetIndex(Cell)
NestedModifier.GetCellByIndex(int)
NestedModifier.GetBound()
NestedModifier.GetBound(IEnumerable<Cell>)
NestedModifier.IntersectBounds(IBound, IBound)
NestedModifier.UnionBounds(IBound, IBound)
NestedModifier.GetCellsInBounds(IBound)
NestedModifier.IsCellInBound(Cell, IBound)
NestedModifier.GetBoundAabb(IBound)
NestedModifier.GetCellCenter(Cell)
NestedModifier.GetCellCorner(Cell, CellCorner)
NestedModifier.GetTRS(Cell)
NestedModifier.GetDeformation(Cell)
NestedModifier.GetPolygon(Cell, out Vector3[], out Matrix4x4)
NestedModifier.GetTriangleMesh(Cell)
NestedModifier.GetMeshData(Cell, out MeshData, out Matrix4x4)
NestedModifier.GetAabb(Cell)
NestedModifier.GetAabb(IEnumerable<Cell>)
NestedModifier.FindCell(Vector3, out Cell)
NestedModifier.FindCell(Matrix4x4, out Cell, out CellRotation)
NestedModifier.GetCellsIntersectsApprox(Vector3, Vector3)
NestedModifier.Raycast(Vector3, Vector3, float)
NestedModifier.FindGridSymmetry(ISet<Cell>, ISet<Cell>, Cell, CellRotation)
NestedModifier.TryApplySymmetry(GridSymmetry, IBound, out IBound)
NestedModifier.TryApplySymmetry(GridSymmetry, Cell, out Cell, out CellRotation)
NestedModifier.ChunkGrid
NestedModifier.CachePolicy
NestedModifier.Is2d
NestedModifier.Is3d
NestedModifier.IsPlanar
NestedModifier.IsRepeating
NestedModifier.IsOrientable
NestedModifier.IsFinite
NestedModifier.IsSingleCellType
NestedModifier.CoordinateDimension
NestedModifier.Unwrapped
NestedModifier.IndexCount
object.ToString()
object.Equals(object)
object.Equals(object, object)
object.ReferenceEquals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
Namespace: Sylves
Assembly: Sylves.dll
Syntax
public class OffGrid : PlanarLazyGrid, IGrid

Constructors

OffGrid(float, SquareBound, int?, ICachePolicy)

Declaration
public OffGrid(float minSize = 0.2, SquareBound bound = null, int? seed = null, ICachePolicy cachePolicy = null)
Parameters
Type Name Description
float minSize
SquareBound bound
int? seed
ICachePolicy cachePolicy

Properties

Unbounded

Returns the grid with any bounds removed.

Declaration
public override IGrid Unbounded { get; }
Property Value
Type Description
IGrid
Overrides
NestedModifier.Unbounded

Methods

BoundBy(IBound)

Returns a new grid restricted to just the given bound. If the grid already has a bound, the new grid will have the intersection of both.

Declaration
public override IGrid BoundBy(IBound bound)
Parameters
Type Name Description
IBound bound
Returns
Type Description
IGrid
Overrides
NestedModifier.BoundBy(IBound)

Combine(Cell, Cell)

Declaration
protected override Cell Combine(Cell childCell, Cell chunkCell)
Parameters
Type Name Description
Cell childCell
Cell chunkCell
Returns
Type Description
Cell
Overrides
NestedModifier.Combine(Cell, Cell)

GetAdjacentChunks(Cell)

Declaration
protected override IEnumerable<Cell> GetAdjacentChunks(Cell chunkCell)
Parameters
Type Name Description
Cell chunkCell
Returns
Type Description
IEnumerable<Cell>
Overrides
PlanarLazyGrid.GetAdjacentChunks(Cell)

GetChildGrid(Cell)

The grid associated with each chunk. This grid has extra requirements:

  • It should only use the x-coordinate of the cell. The other two should be zero, (to be offset by the chunk position)
  • The dest of moves is also offset by the chunk position. Moves may be off grid (illegal in a normal grid)

As building a grid with off-grid moves is difficult, you can also just override TryMove to whatever.

Declaration
protected override IGrid GetChildGrid(Cell v)
Parameters
Type Name Description
Cell v
Returns
Type Description
IGrid
Overrides
NestedModifier.GetChildGrid(Cell)

Split(Cell)

Declaration
protected override (Cell childCell, Cell chunkCell) Split(Cell cell)
Parameters
Type Name Description
Cell cell
Returns
Type Description
(Cell childCell, Cell chunkCell)
Overrides
NestedModifier.Split(Cell)

TryMove(Cell, CellDir, out Cell, out CellDir, out Connection)

Attempts to move from a cell in a given direction, and returns information about the move if successful.

Declaration
public override bool TryMove(Cell cell, CellDir dir, out Cell dest, out CellDir inverseDir, out Connection connection)
Parameters
Type Name Description
Cell cell

The cell to move from

CellDir dir

The direction to move in

Cell dest

The cell moved to

CellDir inverseDir

The direction leading back from dest to cell.

Connection connection

A descriptor of how cell-local space relates between cell and dest.

Returns
Type Description
bool
Overrides
NestedModifier.TryMove(Cell, CellDir, out Cell, out CellDir, out Connection)

Implements

IGrid

Extension Methods

GridExtensions.FindCell(IGrid, Vector3)
GridExtensions.GetCellsIntersectsApprox(IGrid, Aabb)
GridExtensions.GetMeshData(IGrid, Cell)
GridExtensions.GetNeighbours(IGrid, Cell)
GridExtensions.GetPolygon(IGrid, Cell)
GridExtensions.Masked(IGrid, ISet<Cell>)
GridExtensions.Masked(IGrid, Func<Cell, bool>, IEnumerable<Cell>)
GridExtensions.Move(IGrid, Cell, CellDir)
GridExtensions.ToMeshData(IGrid)
GridExtensions.ToMeshData(IGrid, IEnumerable<Cell>)
GridExtensions.Transformed(IGrid, Matrix4x4)
In this article
Back to top Generated by DocFX