Spec-Zone.ru › OpenJavaFX 24

Класс 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) для индексов координат текстуры.

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

С тех пор:
JavaFX 8.0

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

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

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

Конструктор Описание
TriangleMesh()
Создает новый экземпляр класса TriangleMesh с типом формата VertexFormat.POINT_TEXCOORD по умолчанию.
TriangleMesh(VertexFormat vertexFormat)
Создает новый экземпляр класса 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 value)
Устанавливает значение свойства vertexFormat.
final 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)
  • vertexFormatProperty()

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

TriangleMesh

public TriangleMesh()
Создаёт новый экземпляр класса TriangleMesh с типом формата вершин по умолчанию.

TriangleMesh

public TriangleMesh(VertexFormat vertexFormat)
Создаёт новый экземпляр класса TriangleMesh со специфицированным форматом VertexFormat.
Параметры:
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()
  • vertexFormatProperty()

getVertexFormat

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

vertexFormatProperty

public final ObjectProperty<VertexFormat> vertexFormatProperty()
Указывает формат вершин этого TriangleMesh, один из VertexFormat.POINT_TEXCOORD или VertexFormat.POINT_NORMAL_TEXCOORD.
Значение по умолчанию:
VertexFormat.POINT_TEXCOORD
Возвращает:
свойство vertexFormat
С:
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, где каждая точка представлена 3 значениями с плавающей точкой x, y и z в этом порядке.

getNormals

public final ObservableFloatArray getNormals()
Получает массив normals этого TriangleMesh.
Возвращает:
массив normals, где каждая нормаль представлена 3 значениями с плавающей точкой nx, ny и nz в этом порядке.
С:
JavaFX 8u40

getTexCoords

public final ObservableFloatArray getTexCoords()
Получает массив texCoords этого TriangleMesh. Координаты пропорциональны, поэтому верхний левый угол текстуры находится в [0, 0], а нижний правый — в [1, 1].
Возвращает:
массив texCoord, где каждая координата текстуры представлена 2 значениями с плавающей точкой: 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 и/или его дочерние компании. Все права защищены.

© 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