import Vector from '../math/Vector'; import SteeringBehavior from './SteeringBehavior'; import Proximity from './Proximity'; import Steerable from './Steerable'; /** * {@code GroupBehavior} is the base class for the steering behaviors that take into consideration the agents in the game world * that are within the immediate area of the owner. This immediate area is defined by a {@link Proximity} that is in charge of * finding and processing the owner's neighbors through the given {@link ProximityCallback}. * * @param Type of vector, either 2D or 3D, implementing the {@link Vector} interface * * @author davebaol */ declare abstract class GroupBehavior> extends SteeringBehavior { /** The proximity decides which agents are considered neighbors. */ protected proximity: Proximity; /** * Creates a GroupBehavior for the specified owner and proximity. * @param owner the owner of this behavior. * @param proximity the proximity to detect the owner's neighbors */ constructor(owner: Steerable, proximity: Proximity); /** Returns the proximity of this group behavior */ getProximity(): Proximity; /** * Sets the proximity of this group behavior * @param proximity the proximity to set */ setProximity(proximity: Proximity): void; } export default GroupBehavior;