Класс TriangleMesh
public class TriangleMesh extends Mesh
VertexFormat и набора отдельных массивов компонентов вершин, таких как точки, нормали, текстурные координаты, а также массив граней, определяющих отдельные треугольники сетки. Обратите внимание, что термин «точка», используемый в именах методов и описаниях методов, фактически относится к 3D-точке (x, y, z) в пространстве, представляющей положение отдельной вершины. Термин «точки» (множественное число) используется для обозначения набора 3D-точек для нескольких вершин. Аналогично, термин «нормаль» используется для обозначения 3D-вектора (nx, ny, nz) в пространстве, представляющего направление отдельной вершины. Термин «нормали» (множественное число) используется для обозначения наборов 3D-векторов для нескольких вершин. Термин «texCoord» используется для обозначения одной пары 2D-текстурных координат (u, v) для одной вершины, а термин «texCoords» (множественное число) используется для обозначения наборов текстурных координат для нескольких вершин. Наконец, термин «грань» используется для обозначения 3 наборов переплетающихся точек, нормалей (необязательно, в зависимости от связанного VertexFormat) и текстурных координат, которые вместе представляют геометрическую топологию одного треугольника, а термин «грани» (множественное число) используется для обозначения набора треугольников (каждый представлен гранью).
Например, грани с VertexFormat.POINT_TEXCOORD, представляющие один текстурированный прямоугольник, используя 2 треугольника, имеют следующий порядок данных: [
p0, t0, p1, t1, p3, t3, // Первый треугольник текстурированного прямоугольника
p1, t1, p2, t2, p3, t3 // Второй треугольник текстурированного прямоугольника
]
в то время как грани с VertexFormat.POINT_NORMAL_TEXCOORD, представляющие один текстурированный прямоугольник, используя 2 треугольника, имеют следующий порядок данных: [
p0, n0, t0, p1, n1, t1, p3, n3, t3, // Первый треугольник текстурированного прямоугольника
p1, n1, t1, p2, n2, t2, p3, n3, t3 // Второй треугольник текстурированного прямоугольника
]
где p0, p1, p2 и p3 являются индексами в массиве точек, n0, n1, n2 и n3 являются индексами в массиве нормалей, а t0, t1, t2 и t3 являются индексами в массиве texCoords.
Треугольник имеет переднюю и заднюю грань. Порядок обхода вершин треугольника определяет, какая сторона является передней гранью. JavaFX выбирает порядок обхода против часовой стрелки (или правило правой руки) как переднюю грань. По умолчанию отображается только передняя грань треугольника. См. CullFace для получения дополнительной информации.
Длина points, normals и texCoords должна быть кратна 3, 3 и 2 соответственно. Длина faces должна быть кратна 6, если она VertexFormat.POINT_TEXCOORD, иначе она должна быть кратна 9, если она VertexFormat.POINT_NORMAL_TEXCOORD. Значения в массиве граней должны находиться в диапазоне от числа вершин в массиве точек (0 до points.length / 3 - 1) для индексов точек, в диапазоне от числа вершин в массиве нормалей (0 до normals.length / 3 - 1) для индексов нормалей и в диапазоне от числа вершин в массиве texCoords (0 до texCoords.length / 2 - 1) для индексов текстурных координат.
Предупреждение будет записано в логгер, и сетка не будет отображена (и будет иметь пустую границу), если длина любого из массивов некорректна или если любое из значений в массиве граней находится вне диапазона.
- С момента:
- JavaFX 8.0
Краткое описание свойств
| Тип | Свойство | Описание |
|---|---|---|
final ObjectProperty<VertexFormat> |
vertexFormat |
Определяет формат вершин этой TriangleMesh, один из VertexFormat.POINT_TEXCOORD или VertexFormat.POINT_NORMAL_TEXCOORD. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
TriangleMesh() |
Создаёт новый экземпляр класса TriangleMesh с типом формата VertexFormat.POINT_TEXCOORD по умолчанию. |
TriangleMesh |
Создаёт новый экземпляр класса TriangleMesh со специфицированным форматом VertexFormat. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final int |
getFaceElementSize() |
Возвращает количество элементов, представляющих грань. |
final ObservableFaceArray |
getFaces() |
Получает массив faces, индексы в массивах points, normals (необязательно, если это VertexFormat.POINT_NORMAL_TEXCOORD сетка) и texCoords, этой TriangleMesh. |
final ObservableIntegerArray |
getFaceSmoothingGroups() |
Получает массив faceSmoothingGroups этой TriangleMesh. |
final int |
getNormalElementSize() |
Возвращает количество элементов, представляющих нормаль. |
final ObservableFloatArray |
getNormals() |
Получает массив normals этой TriangleMesh. |
final int |
getPointElementSize() |
Возвращает количество элементов, представляющих точку. |
final ObservableFloatArray |
getPoints() |
Получает массив points этой TriangleMesh. |
final int |
getTexCoordElementSize() |
Возвращает количество элементов, представляющих текстурные координаты. |
final ObservableFloatArray |
getTexCoords() |
Получает массив texCoords этой TriangleMesh. |
final VertexFormat |
getVertexFormat() |
Получает значение свойства vertexFormat. |
final void |
setVertexFormat |
Устанавливает значение свойства vertexFormat. |
final ObjectProperty<VertexFormat> |
vertexFormatProperty() |
Устанавливает формат вершин этой TriangleMesh, один из VertexFormat.POINT_TEXCOORD или VertexFormat.POINT_NORMAL_TEXCOORD. |
Подробности свойства
vertexFormat
public final ObjectProperty<VertexFormat> vertexFormatProperty
TriangleMesh, один из VertexFormat.POINT_TEXCOORD или VertexFormat.POINT_NORMAL_TEXCOORD.- Значение по умолчанию:
- VertexFormat.POINT_TEXCOORD
- С версии:
- JavaFX 8u40
- См. также:
Подробности конструктора
TriangleMesh
public TriangleMesh()
TriangleMesh с типом формата вершин по умолчанию.TriangleMesh
public TriangleMesh(VertexFormat vertexFormat)
TriangleMesh с указанным форматом вершин.- Параметры:
-
vertexFormat— определяет тип формата вершин. - С версии:
- JavaFX 8u40
Подробности методов
setVertexFormat
public final void setVertexFormat(VertexFormat value)
vertexFormat.- Описание свойства:
- Определяет формат вершин этого
TriangleMesh, один изVertexFormat.POINT_TEXCOORDилиVertexFormat.POINT_NORMAL_TEXCOORD. - Значение по умолчанию:
- VertexFormat.POINT_TEXCOORD
- Параметры:
-
value— значение для свойстваvertexFormat - С версии:
- JavaFX 8u40
- См. также:
getVertexFormat
public final VertexFormat getVertexFormat()
vertexFormat.- Описание свойства:
- Определяет формат вершин этого
TriangleMesh, один изVertexFormat.POINT_TEXCOORDилиVertexFormat.POINT_NORMAL_TEXCOORD. - Значение по умолчанию:
- VertexFormat.POINT_TEXCOORD
- Возвращает:
- значение свойства
vertexFormat - С версии:
- JavaFX 8u40
- См. также:
vertexFormatProperty
public final ObjectProperty<VertexFormat> vertexFormatProperty()
TriangleMesh, один из VertexFormat.POINT_TEXCOORD или VertexFormat.POINT_NORMAL_TEXCOORD.- Значение по умолчанию:
- VertexFormat.POINT_TEXCOORD
- Возвращает:
- свойство
vertexFormat - С версии:
- JavaFX 8u40
- См. также:
getPointElementSize
public final int getPointElementSize()
- Возвращает:
- количество элементов
getNormalElementSize
public final int getNormalElementSize()
- Возвращает:
- количество элементов
- С версии:
- JavaFX 8u40
getTexCoordElementSize
public final int getTexCoordElementSize()
- Возвращает:
- количество элементов
getFaceElementSize
public final int getFaceElementSize()
- Возвращает:
- количество элементов
getPoints
public final ObservableFloatArray getPoints()
points этого TriangleMesh.- Возвращает:
-
массив
points, где каждая точка представлена тремя значениями с плавающей запятой x, y и z в указанном порядке.
getNormals
public final ObservableFloatArray getNormals()
normals этого TriangleMesh.- Возвращает:
-
массив
normals, где каждая нормаль представлена тремя значениями с плавающей запятой nx, ny и nz в указанном порядке. - С версии:
- JavaFX 8u40
getTexCoords
public final ObservableFloatArray getTexCoords()
texCoords этого TriangleMesh. Координаты пропорциональны, поэтому верхний левый угол текстуры находится в [0, 0], а нижний правый угол — в [1, 1].- Возвращает:
-
массив
texCoord, где каждая координата текстуры представлена двумя значениями с плавающей запятой: u и v в указанном порядке.
getFaces
public final ObservableFaceArray getFaces()
faces, индексы в массивы points, normals (необязательно, если это VertexFormat.POINT_NORMAL_TEXCOORD сетка) и texCoords, этого TriangleMesh. Все индексы относятся к элементам в массивах points, normals или texCoords, а не к отдельным значениям с плавающей запятой.- Возвращает:
-
массив
faces, где каждая грань состоит из 3 *VertexFormat.getVertexIndexSize()целых чисел.
getFaceSmoothingGroups
public final ObservableIntegerArray getFaceSmoothingGroups()
faceSmoothingGroups этого TriangleMesh. Сглаживание влияет на то, как отображается сетка, но не влияет на её геометрию. Значение группы сглаживания граней используется для управления сглаживанием между смежными гранями.
Значение группы сглаживания граней представлено массивом битов, и возможно до 32 уникальных групп; (1 << 0) до (1 << 31). Значение группы сглаживания граней может изменяться от 0 (без группы сглаживания) до всех 32 групп. Грань может принадлежать нулю или более группам сглаживания. Грань является членом группы N, если бит N установлен, например, groups |= (1 << N). Значение 0 означает отсутствие группы сглаживания или жёсткие грани. Сглаживание применяется, когда смежная пара граней имеет общую группу сглаживания. В противном случае грани отображаются с жёсткой гранью между ними.
Пустой faceSmoothingGroups подразумевает, что у всех граней в этой сетке значение группы сглаживания равно 1.
Если faceSmoothingGroups не пустой, его размер должен быть равен количеству граней.
Этот faceSmoothingGroups не влияет на TriangleMesh, если он имеет формат VertexFormat.POINT_NORMAL_TEXCOORD.
- Возвращает:
- массив
faceSmoothingGroupsэтогоTriangleMesh
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.