import Vector from '../../../math/Vector'; import Ray from '../../../utils/Ray'; import Steerable from '../../Steerable'; import RayConfigurationBase from './RayConfigurationBase'; /** * A {@code CentralRayWithWhiskersConfiguration} uses a long central ray and two shorter whiskers. *

* A central ray with short whiskers is often the best initial configuration to try but can make it impossible for the character * to move down tight passages. Also, it is still susceptible to the corner trap, far less than the parallel configuration though. * * @param Type of vector, either 2D or 3D, implementing the {@link Vector} interface * * @author davebaol */ declare class CentralRayWithWhiskersConfiguration> extends RayConfigurationBase { private rayLength; private whiskerLength; private whiskerAngle; /** * Creates a {@code CentralRayWithWhiskersConfiguration} for the given owner where the central ray has the specified length and * the two whiskers have the specified length and angle. * @param owner the owner of this configuration * @param rayLength the length of the central ray * @param whiskerLength the length of the two whiskers (usually shorter than the central ray) * @param whiskerAngle the angle in radians of the whiskers from the central ray */ constructor(owner: Steerable, rayLength: number, whiskerLength: number, whiskerAngle: number); updateRays(): Ray[]; /** Returns the length of the central ray. */ getRayLength(): number; /** Sets the length of the central ray. */ setRayLength(rayLength: number): void; /** Returns the length of the two whiskers. */ getWhiskerLength(): number; /** Sets the length of the two whiskers. */ setWhiskerLength(whiskerLength: number): void; /** Returns the angle in radians of the whiskers from the central ray. */ getWhiskerAngle(): number; /** Sets the angle in radians of the whiskers from the central ray. */ setWhiskerAngle(whiskerAngle: number): void; } export default CentralRayWithWhiskersConfiguration;