func (l *List2D[T]) GetW(x, y int) T {
	if l.width < 1 || l.height < 1 {
		var zv T
		return zv
	}
	for x < 0 {
		x += l.width
	}
	for x >= l.width {
		x -= l.width
	}
	for y < 0 {
		y += l.height
	}
	for y >= l.height {
		y -= l.height
	}
	return l.data[x+y*l.width]
}
// GetW is the same as Get, but wraps around if is out of bounds. It returns the
// zero value if the width or height is zero
GetW is the same as Get, but wraps around if is out of bounds. It returns the
zero value if the width or height is zero
// GetW is the same as Get but wraps around if is out of bounds . It returns the // zero value if the width or height is zero
func (l *List2D[T]) GetW(x, y int) T {
	if l.width < 1 || l.height < 1 {
		var zv T
		return zv
	}
	for x < 0 {
		x += l.width
	}
	for x >= l.width {
		x -= l.width
	}
	for y < 0 {
		y += l.height
	}
	for y >= l.height {
		y -= l.height
	}
	return l.data[x+y*l.width]
}
func ( l * List2D [ T ] ) GetW ( x , y int ) T { if l . width < 1 || l . height < 1 { var zv T return zv } for x < 0 { x += l . width } for x >= l . width { x -= l . width } for y < 0 { y += l . height } for y >= l . height { y -= l . height } return l . data [ x + y * l . width ] }
GetW is the same as Get, but wraps around if is out of bounds.
GetW is the same as Get but wraps around if is out of bounds .