import Vector from '../../math/Vector'; import Limiter from '../Limiter'; import Steerable from '../Steerable'; import SteeringAcceleration from '../SteeringAcceleration'; import SteeringBehavior from '../SteeringBehavior'; /** * This steering behavior produces a linear acceleration trying to match target's velocity. It does not produce any angular * acceleration. * * @param Type of vector, either 2D or 3D, implementing the {@link Vector} interface * * @author davebaol */ declare class MatchVelocity> extends SteeringBehavior { /** The target of this behavior */ protected target: Steerable; /** The time over which to achieve target speed */ protected timeToTarget: number; /** * Creates a {@code MatchVelocity} behavior for the given owner, target and timeToTarget. * @param owner the owner of this behavior * @param target the target of this behavior * @param timeToTarget the time over which to achieve target speed. */ constructor(owner: Steerable, target?: Steerable, timeToTarget?: number); /** Returns the target whose velocity should be matched. */ getTarget(): Steerable; /** * Sets the target whose velocity should be matched. * @param target the target to set * @return this behavior for chaining. */ setTarget(target: Steerable): MatchVelocity; /** Returns the time over which to achieve target speed. */ getTimeToTarget(): number; /** * Sets the time over which to achieve target speed. * @param timeToTarget the time to set * @return this behavior for chaining. */ setTimeToTarget(timeToTarget: number): MatchVelocity; setOwner(owner: Steerable): MatchVelocity; setEnabled(enabled: boolean): MatchVelocity; /** * Sets the limiter of this steering behavior. The given limiter must at least take care of the maximum linear acceleration. * @return this behavior for chaining. */ setLimiter(limiter: Limiter): MatchVelocity; protected calculateRealSteering(steering: SteeringAcceleration): SteeringAcceleration; } export default MatchVelocity;