Класс Car предлагает следующий программный интерфейс:
Color getColor() - Возвращает цвет заданной по умолчанию фигуры анимации машины.
void
setColor( Color color ) - Задает новый цвет
для заданной по умолчанию фигуры анимации машины.
Параметр: color
- новый цвет
double getLength() - Возвращает длину машины, в метрах.
void
setLength( double length ) - Задает длину машины.
Параметр: length
- новая длина, в метрах
double getWidth() - Возвращает ширину машины, в метрах.
void
setWidth( double width ) - Задает ширину
машины.
Параметр: width
- новая ширина, в метрах
double getDefaultAcceleration()
- Возвращает заданное по умолчанию ускорение машины, в м/с2. Оно применяется, когда Вы вызываете метод accelerateTo(
newspeed ) без второго аргумента, и новое значение
скорости больше текущего. Ускорение по умолчанию всегда >
0.
void setDefaultAcceleration(double
acc) - Задает новое ускорение машины по умолчанию, в м/с2.
Это ускорение применяется, когда Вы вызываете метод accelerateTo(
newspeed ) без второго аргумента, и новое значение
скорости больше текущего. Значение должно быть >
0.
Параметр: acc
- новое ускорение по умолчанию для машины, в м/с2
double getDefaultDeceleration()
- Возвращает значение торможения машины по умолчанию, в м/с2. Оно применяется, когда Вы вызываете метод accelerateTo(
newspeed ) без второго аргумента, и новое значение
скорости меньше текущего. Это значение всегда <
0.
void
setDefaultDeceleration( double dec ) - Задает значение торможения машины по умолчанию, в м/с2. Оно применяется, когда Вы вызываете метод accelerateTo(
newspeed ) без второго аргумента, и новое значение
скорости меньше текущего. Задаваемое значение должно быть < 0.
Параметр: dec
- новое значение торможения по умолчанию для машины, в м/с2
Driver
getDriver() - Возвращает управляющего машиной
водителя, если такой есть, иначе - null.
RoadNetwork
getRoadNetwork() - Возвращает дорожную сеть
(активный объект типа RoadNetwork),
в которой зарегистрирована машина, если такая есть, иначе - null.
Road
getRoad( boolean front ) - Возвращает дорогу, на
которой находится заданный торец машины, если такой нет - то возвращает
null.
Параметр: front
- если true, то
передний торец машины, если нет - то задний
Lane
getLane( boolean front ) - Возвращает
дорожную полосу, на которой находится заданный торец машины, если такой
нет - то возвращает null.
Параметр: front
- если true, то
передний торец машины, если нет - то задний
double
getOffset( boolean front ) -
Возвращает смещение от начала дороги/полосы (в метрах), на котором
находится заданный торец машины. Если машина не находится в дорожной
сети, то функция возвращает 0 для заднего торца и длину
машины для переднего.
Параметр: front
- если true, то
передний торец машины, если нет - то задний
double getSpeedLimit() - Возвращает ограничение скорости (в м/с) для дороги, на которой находится передний торец машины, или 0, если машина не находится на дороге.
double getMinDistance() - Возвращает минимальное расстояние до находящейся спереди машины с учетом текущей скорости машины. Если текущее расстояние меньше минимального, то предполагается, что водитель затормозит и увеличит расстояние.
double getMaxDistance()- Возвращает максимальное расстояние до находящейся спереди машины с учетом текущей скорости машины. Если текущее расстояние больше максимального, то водитель может подъехать ближе.
boolean isMoving() - Проверяет, движется ли машина в текущий момент времени (т.е. ее скорость или ускорение не равны нулю). Возвращает true, если машина движется, и false - если нет.
double
getSpeed() -
Возвращает текущую скорость машины, в м/с.
void
setSpeed( double newspeed ) -
Мгновенно меняет скорость машины на заданную. Отменяет любое
проводимое в текущий момент ускорение или торможение. Новое значение
скорости должно быть
>=0.
Параметр: newspeed
- новое значение скорости, в м/с.
void stop() - Немедленно останавливает машину (задает ее скорость равной 0).
boolean isAccelerating() - Проверяет, ускоряется ли или тормозит машина в текущий момент времени. Возвращает true, если машина ускоряется или тормозит, и false - если нет.
double getAcceleration() - Возвращает текущее ускорение/торможение машины, в м/с2. Возвращает 0, если машина движется с постоянной скоростью.
double getTargetSpeed() - Возвращает скорость, которая будет у машины после завершения текущего ускорения/торможения. Если машина движется с постоянной скоростью, то функция вернет эту скорость.
void
accelerateTo( double targetspeed ) -
Начинает ускорение/торможение до заданной скорости. При этом
используется заданное по умолчанию значение ускорения/торможения.
Значение новой скорости должно быть >= 0.
Параметр: targetspeed
- скорость после ускорения/торможения, в м/с
void
accelerateTo( double targetspeed, double acc ) -
Начинает изменение текущей скорости до заданной с заданным
ускорением/ торможением. Если новая скорость больше текущей, то
значение параметра acc должно быть > 0, иначе < 0.
Параметры: acc
- ускорение/торможение, в м/с2
targetspeed
- скорость после ускорения/торможения, в м/с
boolean
isSwitching() - Проверяет, производит
ли машина перестроение на другую полосу. Возвращает true, если машина
перестраивается на другую полосу, иначе - false
void
switchLanes( boolean right ) -
Начинает перестроение на другую полосу. При этом используется
заданная по умолчанию для дорожной сети длительность перестроения.
Параметр: right
- если true, то машина будет перестраиваться в полосу справа, иначе - в полосу слева.
void
switchLanes( boolean right, double duration ) -
Начинает перестроение на другую полосу. Длительность перестроения задается параметром.
Параметры: right
- если true, то машина будет перестраиваться в полосу справа, иначе - в полосу слева.
duration
- время перестроения, в секундах.
double switchRemainingTime() - Возвращает время, оставшееся до завершения перестроения. Если в данный момент времени машина не перестраивается, то функция вернет 0.
void
updateCarsInFront() -
Проверяет ситуацию на дороге перед машиной, передавая обновленную информацию водителю с помощью метода updateCarsInFront().
double
timeToCrash() -
Возвращает время (в секундах), оставшееся до столкновения этой
машины с другой машиной, едущей впереди, если не будет предпринято
никаких мер. Если вероятность столкновения отсутствует, функция вернет
значение "бесконечность" (+infinity)
Car
carToCrashInto() - Возвращает машину, в
которую врежется данная машинва, если не будет предпринято никаких мер
(или null).
boolean
needSwitch( boolean right ) -
Проверяет, должна ли машина перестроиться на другую полосу для
того, чтобы продолжить движение по своему пути. Возвращает true, если да, и false - если нет.
Параметр: right
- если true, то проверяет необходимость перестроения направо, иначе - необходимость перестроения налево
double
distanceToSwitch() -
Возвращает расстояние, остающееся до точки, где машина должна
перестроиться на другую полосу для того, чтобы продолжить движение по
своему пути. Функция учитывает только ближайшее перестроение. Если с
учетом последней информации о потенциальном перестроении машина
находится на нужной полосе, то функция возвращает "бесконечность" (+infinity).
double
getX( boolean front )
- Возвращает Х-координату (в пикселях) заданного торца
машины относительно группы фигур сети дорог. Если машина не
находится в сети, то возвращает 0.
Параметр: front
- если true, то
передний торец машины, если нет - то задний
double
getY( boolean front )
- Возвращает Y-координату (в пикселях) заданного торца
машины относительно группы фигур сети дорог. Если машина не
находится в
сети, то возвращает 0.
Параметр: front
- если true, то
передний торец машины, если нет - то задний
double
getZ( boolean front ) - Возвращает Z-координату
(в пикселях) заданного торца
машины относительно группы фигур сети дорог. Если машина не
находится в
сети, то возвращает 0.
Параметр: front
- если true, то
передний торец машины, если нет - то задний
double getAngle() - Возвращает угол поворота машины в плоскости (x,y) , в радианах.
void
highlight( boolean yes ) - Выделяет / снимает выделение с машины на анимации. Вокруг выделенной машины рисуется красный круг.
Параметр: yes
- если true, то выделить машину, иначе - снять выделение
boolean isHighlighted() - Проверяет, выделена ли машина на анимации в текущий момент. Возвращает true, если машина выделена, иначе - false