UNPKG

agentscript

Version:

AgentScript Model in Model/View architecture

45 lines (39 loc) 1.51 kB
import AgentSet from './AgentSet.js' // Links are a collection of all the Link objects between turtles. /** * Links are a collection of all the {@link Link} objects between turtles. * */ class Links extends AgentSet { // Use AgentSeet ctor: constructor (model, AgentClass, name) constructor(model, AgentClass, name, baseSet = null) { super(model, AgentClass, name, baseSet) } // Factories: // Add 1 or more links from the from turtle to the to turtle(s) which // can be a single turtle or an array of turtles. The optional init // proc is called on the new link after inserting in the agentSet. // Return a single link createOne(from, to, initFcn = link => {}) { const link = this.addAgent() link.init(from, to) initFcn(link) return link } // Return an array of links. // To can be an array or a single turtle (returning an array of 1 link) create(from, to, initFcn = link => {}) { // if (!Array.isArray(to)) return this.createOne(from, to, initFcn) if (!Array.isArray(to)) to = [to] // Return array of new links. REMIND: should be agentarray? return to.map(t => { // REMIND: skip dups // const link = this.addAgent() // link.init(from, t) // initFcn(link) // return link return this.createOne(from, t, initFcn) }) // REMIND: return single link if to not an array? } } export default Links