it.unibo.alchemist.model.neighborhoods.Neighborhoods.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of alchemist-implementationbase Show documentation
Show all versions of alchemist-implementationbase Show documentation
Abstract, incarnation independent implementations of the Alchemist's interfaces. Provides support for those who want to write incarnations.
/*
* Copyright (C) 2010-2023, Danilo Pianini and contributors
* listed, for each module, in the respective subproject's build.gradle.kts file.
*
* This file is part of Alchemist, and is distributed under the terms of the
* GNU General Public License, with a linking exception,
* as described in the file LICENSE in the Alchemist distribution's top directory.
*/
package it.unibo.alchemist.model.neighborhoods
import it.unibo.alchemist.model.Environment
import it.unibo.alchemist.model.Node
import it.unibo.alchemist.model.Position
/**
* Contains utility functions for neighborhoods.
*/
class Neighborhoods private constructor() {
companion object {
/**
* Creates a [SimpleNeighborhood].
*
* @param environment The environment of the neighborhood.
* @param center The center of the neighborhood.
* @param neighbors The neighbors in the neighborhood, defaults to empty.
*
* @return The newly created [SimpleNeighborhood].
*/
@JvmStatic @JvmOverloads
fun > make(
environment: Environment,
center: Node,
neighbors: Iterable> = emptyList(),
) = SimpleNeighborhood(environment, center, neighbors)
}
}