Spec-Zone.ru › OpenJavaFX 8
javafx.scene.shape

Класс 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) для индексов нормалей и в пределах от 0 до (texCoords.length / 2 - 1) для индексов текстурных координат.

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

С:

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 с типом формата по умолчанию VertexFormat.POINT_TEXCOORD.
    • 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

      С:

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

      Возвращает:

      массив faces, где каждая грань состоит из 3 * VertexFormat.getVertexIndexSize() целых чисел.

    • getFaceSmoothingGroups

      public final ObservableIntegerArray getFaceSmoothingGroups()
      Возвращает массив faceSmoothingGroups этого TriangleMesh. Сглаживание влияет на то, как отображается mesh, но не влияет на его геометрию. Значение группы сглаживания граней используется для управления сглаживанием между смежными гранями.

      Значение группы сглаживания граней представлено массивом битов, и возможно до 32 уникальных групп; (1 << 0) до (1 << 31). Значение группы сглаживания граней может изменяться от 0 (нет группы сглаживания) до всех 32 групп. Одна грань может принадлежать нулю или более группам сглаживания. Грань является членом группы N, если бит N установлен, например, группы |= (1 << N). Значение 0 подразумевает отсутствие группы сглаживания или жёсткие грани. Сглаживание применяется, когда смежные пары граней имеют общую группу сглаживания. В противном случае грани отображаются с жёсткой гранью между ними.

      Пустой faceSmoothingGroups подразумевает, что все грани в этом mesh имеют значение группы сглаживания 1.

      Если faceSmoothingGroups не пустой, его размер должен быть равен количеству граней.

      Этот faceSmoothingGroups не влияет на его TriangleMesh, если он имеет формат VertexFormat.POINT_NORMAL_TEXCOORD.

© 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