Package it.unibo.alchemist.model.implementations.linkingrules

Types

Link copied to clipboard
abstract class AbstractLocallyConsistentLinkingRule<T, P : Position<out P>?> : LinkingRule<T, P>
Link copied to clipboard
open class AdaptiveRange<T, P : Position<P>?> : ConnectWithinDistance<T, P>
This linking rule dynamically searches for the best radius for each device, in such a way that it connects to a certain number of devices.
Link copied to clipboard
open class ClosestN<T, P : Position<P>?> : LinkingRule<T, P>
Non local-consistent rule that connect the closest N nodes together.
Link copied to clipboard
class CombinedLinkingRule<T, P : Position<P>>(subRules: List<LinkingRule<T, P>>) : LinkingRule<T, P>

A meta-rule that combines multiple subRules. If any mandates a link, such link is created (union of all links).

Link copied to clipboard
class ConditionalClosestN<T, P : Position<P>?> : ClosestN<T, P>
A ClosestN rule that also checks that a Molecule has a specific concentration before allowing the connection.
Link copied to clipboard
class ConnectIfInLineOfSigthOnMap<T> @JvmOverloads constructor(maxRange: Double, tolerance: Double) : AbstractLocallyConsistentLinkingRule<T, GeoPosition>

This rule connects nodes that are within maxRange distance, but only if there are not too many obstacles separating their line of sight. The base idea is that line-of-sight distance and routing distance should not differ "too much", as captured by tolerance. tolerance measures the maximum allowed relative difference between the line-of-sight and the route distance. It's default 0.1 (10%) means that if LOS-distance is more than 10% shorter than route-distance, then the nodes are considered disconnected. Route distance is taken two-ways (to account for one-way roads) and the shortest one is considered (wireless signals do not need to follow one-way roads).

Link copied to clipboard
class ConnectionBeam<T> : ConnectWithinDistance<T, Euclidean2DPosition>
Connects two nodes if, throwing a beam from one to the other, there exists at least one path entirely inside the beam that connects the two nodes.
Link copied to clipboard
class ConnectToAccessPoint<T, P : Position<P>>(radius: Double, accessPointId: Molecule) : ConnectWithinDistance<T, P>
Link copied to clipboard
class ConnectViaAccessPoint<T, P : Position<P>>(radius: Double, accessPointId: Molecule) : ConnectWithinDistance<T, P>
Link copied to clipboard
open class ConnectWithinDistance<T, P : Position<P>?> : AbstractLocallyConsistentLinkingRule<T, P>
LinkingRule which connects nodes whose euclidean distance is shorter than a given radius.
Link copied to clipboard
class FullyConnected<T, P : Position<P>> : LinkingRule<T, P>

This rule connects each and every node to each and every other.

Link copied to clipboard
Link copied to clipboard
open class NoLinks<T, P : Position<P>?> : AbstractLocallyConsistentLinkingRule<T, P>
This rule guarantees that no links are created at all.
Link copied to clipboard
class ObstaclesBreakConnection<T, P : Position<P>?, Vector<P>?> : ConnectWithinDistance<T, P>
Similar to ConnectWithinDistance, but if the environment has obstacles, the links are removed.
Link copied to clipboard
class OffsetGraphStreamLinkingRule<T, P : Position<P>>(offset: Int, graph: Graph) : LinkingRule<T, P>

A LinkingRule that statically connects nodes as they were configured by GraphStream. An offset is used to determine the id of the environment's nodes when compared to the one of the provided graph.

Link copied to clipboard
open class SelectiveAdaptiveRange<T, P : Position<P>?> : AdaptiveRange<T, P>