RibbonOptions
Неизменяемый объект настроек для генерации полигональной ленты, угловых стыков, круглых заглушек и UV-трансформаций текстуры.
Обзор
RibbonOptions объединяет параметры генерации ленты (замыкание контура, лимит miter, транспонирование UV, зеркалирование осей и круглые стыки) в неизменяемую структуру, предотвращая перегрузку методов DrawScope и RenderContext множеством аргументов.
Неизменяемость и методы модификации
Каждый метод-модификатор возвращает новый экземпляр RibbonOptions либо возвращает текущий, если значение не изменилось. Базовый экземпляр доступен через RibbonOptions.defaults().
Битовое поле и кэширование
Все флаги, квантованный лимит miter и количество сегментов стыка упакованы в 32-битное целое число через packed(). Это позволяет использовать options в качестве легковесного ключа кэша без лишних аллокаций.
Использование параметров по умолчанию
RibbonOptions basic = RibbonOptions.defaults();
scope.ribbon(texture, points, 10.0f, 32.0f, ColorView.WHITE, basic);
Настройка вертикального кабеля с круглыми стыками
RibbonOptions cableOptions = RibbonOptions.defaults()
.swapUv(true)
.jointDots(true)
.jointSegments(12)
.miterLimit(3.0f);
scope.ribbon(cableTexture, wirePoints, 6.0f, 24.0f, ColorView.rgb(0, 220, 255), cableOptions);
API
RibbonOptions::defaults()
defaults()
Возвращает дефолтные параметры ленты: разомкнутый контур, miter-лимит 4.0, без стыков и трансформаций UV.
Возвращает RibbonOptions: Общий shared-экземпляр RibbonOptions..
RibbonOptions::closed()
closed()
Проверяет, замкнут ли контур ленты.
Возвращает boolean: true, если контур замкнут и соединяет конец с началом..
RibbonOptions::miterLimit()
miterLimit()
Возвращает максимальную длину miter в половинах ширины ленты.
Возвращает float: Лимит miter, не менее 1.0..
RibbonOptions::swapUv()
swapUv()
Проверяет, меняются ли U и V местами.
Возвращает boolean: true, если U идёт вдоль пути, а V поперёк ленты..
RibbonOptions::flipU()
flipU()
Проверяет, отражается ли горизонтальная координата U.
Возвращает boolean: true, если U отражается (1 - u)..
RibbonOptions::flipV()
flipV()
Проверяет, отражается ли вертикальная координата V.
Возвращает boolean: true, если V отражается (1 - v)..
RibbonOptions::jointDots()
jointDots()
Проверяет, включены ли круглые диски на стыках.
Возвращает boolean: true, если круглые стыки включены..
RibbonOptions::jointSegments()
jointSegments()
Возвращает число сегментов диска стыка.
Возвращает int: Число сегментов или 0 для автоматического расчёта по радиусу..
RibbonOptions::packed()
packed()
Возвращает компактный 32-битный ключ со всеми флагами, miter-лимитом и сегментами стыка.
Возвращает int: Стабильный 32-битный ключ кэша..
RibbonOptions::closed(boolean)
closed(boolean)
Возвращает копию с новым флагом замыкания контура.
| Параметр | Тип | Описание |
|---|---|---|
closed |
boolean |
true для замыкания последней точки на первую. |
Возвращает RibbonOptions: Новый экземпляр RibbonOptions или текущий, если значение не изменилось..
RibbonOptions::miterLimit(float)
miterLimit(float)
Возвращает копию с новым лимитом miter.
| Параметр | Тип | Описание |
|---|---|---|
miterLimit |
float |
Лимит в половинах ширины; значения меньше 1.0 нормализуются к 1.0. |
Возвращает RibbonOptions: Новый экземпляр RibbonOptions или текущий, если значение не изменилось..
RibbonOptions::swapUv(boolean)
swapUv(boolean)
Возвращает копию с новым флагом поворота текстуры.
| Параметр | Тип | Описание |
|---|---|---|
swapUv |
boolean |
true для транспонирования U и V (для вертикальных текстур). |
Возвращает RibbonOptions: Новый экземпляр RibbonOptions или текущий, если значение не изменилось..
RibbonOptions::flipU(boolean)
flipU(boolean)
Возвращает копию с новым флагом отражения U.
| Параметр | Тип | Описание |
|---|---|---|
flipU |
boolean |
true для инвертирования координаты U. |
Возвращает RibbonOptions: Новый экземпляр RibbonOptions или текущий, если значение не изменилось..
RibbonOptions::flipV(boolean)
flipV(boolean)
Возвращает копию с новым флагом отражения V.
| Параметр | Тип | Описание |
|---|---|---|
flipV |
boolean |
true для инвертирования координаты V. |
Возвращает RibbonOptions: Новый экземпляр RibbonOptions или текущий, если значение не изменилось..
RibbonOptions::jointDots(boolean)
jointDots(boolean)
Возвращает копию с новым флагом круглых стыков.
| Параметр | Тип | Описание |
|---|---|---|
jointDots |
boolean |
true для закрытия внутренних углов дисками. |
Возвращает RibbonOptions: Новый экземпляр RibbonOptions или текущий, если значение не изменилось..
RibbonOptions::jointSegments(int)
jointSegments(int)
Возвращает копию с новым числом сегментов стыка.
| Параметр | Тип | Описание |
|---|---|---|
jointSegments |
int |
Число сегментов; 0 включает автоматический подбор по радиусу. |
Возвращает RibbonOptions: Новый экземпляр RibbonOptions или текущий, если значение не изменилось..
RibbonOptions::isDefault()
isDefault()
Проверяет, совпадают ли параметры с настройками по умолчанию.
Возвращает boolean: true, если все параметры равны дефолтным..