import Vector from '../../math/Vector'; import Location from '../../utils/Location'; import Limiter from '../Limiter'; import Steerable from '../Steerable'; import SteeringAcceleration from '../SteeringAcceleration'; import ReachOrientation from './ReachOrientation'; /** * {@code Face} behavior makes the owner look at its target. It delegates to the {@link ReachOrientation} behavior to perform the * rotation but calculates the target orientation first based on target and owner position. * * @param Type of vector, either 2D or 3D, implementing the {@link Vector} interface * * @author davebaol */ declare class Face> extends ReachOrientation { /** * Creates a {@code Face} behavior for the specified owner and target. * @param owner the owner of this behavior * @param target the target of this behavior. */ constructor(owner: Steerable, target?: Location); setOwner(owner: Steerable): Face; setEnabled(enabled: boolean): Face; /** * Sets the limiter of this steering behavior. The given limiter must at least take care of the maximum angular speed and * acceleration. * @return this behavior for chaining. */ setLimiter(limiter: Limiter): Face; setTarget(target: Location): Face; setAlignTolerance(alignTolerance: number): Face; setDecelerationRadius(decelerationRadius: number): Face; setTimeToTarget(timeToTarget: number): Face; protected calculateRealSteering(steering: SteeringAcceleration): SteeringAcceleration; protected face(steering: SteeringAcceleration, targetPosition: T): SteeringAcceleration; } export default Face;