Spec-Zone.ru › OpenJavaFX 11
Модуль javafx.graphics
Пакет 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) для индексов нормалей и в диапазоне количества вершин в массиве texCoords (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 сетка) и 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.

Spec-Zone.ru

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