import Vector from '../../../math/Vector'; import Ray from '../../../utils/Ray'; import Steerable from '../../Steerable'; import RayConfigurationBase from './RayConfigurationBase'; /** * A {@code ParallelSideRayConfiguration} uses two rays parallel to the direction of motion. The rays have the same length and * opposite side offset. *

* The parallel configuration works well in areas where corners are highly obtuse but is very susceptible to the corner trap. * * @param Type of vector, either 2D or 3D, implementing the {@link Vector} interface * * @author davebaol */ declare class ParallelSideRayConfiguration> extends RayConfigurationBase { private length; private sideOffset; /** * Creates a {@code ParallelSideRayConfiguration} for the given owner where the two rays have the specified length and side * offset. * @param owner the owner of this ray configuration * @param length the length of the rays. * @param sideOffset the side offset of the rays. */ constructor(owner: Steerable, length: number, sideOffset: number); updateRays(): Ray[]; /** Returns the length of the rays. */ getLength(): number; /** Sets the length of the rays. */ setLength(length: number): void; /** Returns the side offset of the rays. */ getSideOffset(): number; /** Sets the side offset of the rays. */ setSideOffset(sideOffset: number): void; } export default ParallelSideRayConfiguration;