Spec-Zone.ru › OpenJavaFX 17

Класс TriangleMesh

java.lang.Object
javafx.scene.shape.Mesh
javafx.scene.shape.TriangleMesh
public class TriangleMesh
extends Mesh
Определяет 3D сетку треугольников, которая состоит из её связанного 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) для индексов текстурных координат.

Будет записано предупреждение в логгер, и сетка не будет отображаться (и её границы будут пустыми), если длины любого из массивов некорректны или любое из значений в массиве граней выходят за пределы диапазона.

Since:
JavaFX 8.0

Краткое описание свойств

Свойства
Тип Свойство Описание
ObjectProperty<VertexFormat> vertexFormat
Указывает формат вершин этой TriangleMesh, один из VertexFormat.POINT_TEXCOORD или VertexFormat.POINT_NORMAL_TEXCOORD.

Краткое описание конструкторов

Конструкторы
Конструктор Описание
TriangleMesh()
Создаёт новый экземпляр класса TriangleMesh с типом формата VertexFormat.POINT_TEXCOORD по умолчанию.
TriangleMesh​(VertexFormat vertexFormat)
Создаёт новый экземпляр класса TriangleMesh со указанным VertexFormat.

Краткое описание методов

Модификатор и тип Метод Описание
int getFaceElementSize()
Возвращает количество элементов, представляющих грань.
ObservableFaceArray getFaces()
Возвращает массив faces, индексы в массивах points, normals (необязательно, если это VertexFormat.POINT_NORMAL_TEXCOORD сетка) и texCoords этого TriangleMesh.
ObservableIntegerArray getFaceSmoothingGroups()
Возвращает массив faceSmoothingGroups этого TriangleMesh.
int getNormalElementSize()
Возвращает количество элементов, представляющих нормаль.
ObservableFloatArray getNormals()
Возвращает массив normals этого TriangleMesh.
int getPointElementSize()
Возвращает количество элементов, представляющих точку.
ObservableFloatArray getPoints()
Возвращает массив points этого TriangleMesh.
int getTexCoordElementSize()
Возвращает количество элементов, представляющих текстурные координаты.
ObservableFloatArray getTexCoords()
Возвращает массив texCoords этого TriangleMesh.
VertexFormat getVertexFormat()
Возвращает значение свойства vertexFormat.
void setVertexFormat​(VertexFormat value)
Устанавливает значение свойства vertexFormat.
ObjectProperty<VertexFormat> vertexFormatProperty()
Указывает формат вершин этого TriangleMesh, один из VertexFormat.POINT_TEXCOORD или VertexFormat.POINT_NORMAL_TEXCOORD.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание свойств

vertexFormat

public final ObjectProperty<VertexFormat> vertexFormatProperty
Указывает формат вершин этого TriangleMesh, один из VertexFormat.POINT_TEXCOORD или VertexFormat.POINT_NORMAL_TEXCOORD.
Значение по умолчанию:
VertexFormat.POINT_TEXCOORD
С:
JavaFX 8u40
См. также:
getVertexFormat(), setVertexFormat(VertexFormat)

Подробное описание конструкторов

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
С:
JavaFX 8u40

getVertexFormat

public final VertexFormat getVertexFormat()
Получает значение свойства vertexFormat.
Описание свойства:
Указывает формат вершин этого TriangleMesh, один из VertexFormat.POINT_TEXCOORD или VertexFormat.POINT_NORMAL_TEXCOORD.
Значение по умолчанию:
VertexFormat.POINT_TEXCOORD
С:
JavaFX 8u40

vertexFormatProperty

public final ObjectProperty<VertexFormat> vertexFormatProperty()
Указывает формат вершин этого TriangleMesh, один из VertexFormat.POINT_TEXCOORD или VertexFormat.POINT_NORMAL_TEXCOORD.
Значение по умолчанию:
VertexFormat.POINT_TEXCOORD
С:
JavaFX 8u40
См. также:
getVertexFormat(), setVertexFormat(VertexFormat)

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. Все индексы относятся к элементам в массивах точек, нормалей или координат текстуры, а не к отдельным значениям с плавающей точкой.
Возвращает:
массив 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API