SCNGeometryElement
SCNGeometryElement
объект описывает, как вершины соединяются для формирования поверхности трехмерного объекта или геометрии. Вы используете элементы геометрии вместе с SCNGeometrySource
объекты определить пользовательский SCNGeometry
объекты или проверить данные, составляющие существующую геометрию.
Вы создаете пользовательскую геометрию с помощью трехступенчатого процесса:
Создайте один или больше
SCNGeometrySource
объекты, каждый из которых определяет информацию на вершину, такую как позиция, поверхностные нормальные, или координаты текстуры для всех вершин в геометрии.Создайте по крайней мере один
SCNGeometryElement
объект, содержа массив индексов, идентифицирующих вершины в источниках геометрии и описывающих получение, примитивное, что использование SceneKit для соединения вершин при рендеринге геометрии.Создайте
SCNGeometry
экземпляр из источников геометрии и элементов геометрии.
Когда SceneKit представляет геометрию, каждый элемент геометрии соответствует команде рисования, отправленной в GPU. Поскольку различные состояния рендеринга требуют отдельных команд рисования, можно определить геометрию с помощью многократных элементов геометрии. Например, геометрия заварного чайника на рисунке 1 имеет четыре элемента геометрии, таким образом, можно присвоить до четырех SCNMaterial
объекты для рендеринга каждого элемента с различным появлением. Когда рендеринг, минимизация числа элементов в пользовательской геометрии могут улучшить производительность рендеринга, но потому что каждая команда рисования подвергается процессорному времени наверху.
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSObjectProtocol
-
NSSecureCoding
-
Печатаемый
-
NSObject
-
NSSecureCoding
Оператор импорта
Swift
import SceneKit
Objective C
@import SceneKit;
Доступность
Доступный в OS X v10.8 и позже.
-
init (data:primitiveType:primitiveCount:bytesPerIndex:) + geometryElementWithData:primitiveType:primitiveCount:bytesPerIndex:
Создает элемент геометрии из указанных данных и опций.
Объявление
Swift
convenience init(data
data
: NSData, primitiveTypeprimitiveType
: SCNGeometryPrimitiveType, primitiveCountprimitiveCount
: Int, bytesPerIndexbytesPerIndex
: Int)Objective C
+ (instancetype)geometryElementWithData:(NSData *)
data
primitiveType:(SCNGeometryPrimitiveType)primitiveType
primitiveCount:(NSInteger)primitiveCount
bytesPerIndex:(NSInteger)bytesPerIndex
Параметры
data
Данные, описывающие элемент.
primitiveType
Получение, примитивное, который соединяет вершины при рендеринге элемента геометрии. Для возможных значений посмотрите
SCNGeometryPrimitiveType
.primitiveCount
Число примитивов в элементе.
bytesPerIndex
Число байтов, представляющих единственное индексное значение в данных.
Возвращаемое значение
Новый объект элемента геометрии.
Обсуждение
Данные элемента являются массивом индексных значений, идентифицирующих вершины в источнике геометрии. SceneKit интерпретирует данные как массив целых без знака (чей размер указан
bytesPerIndex
параметр), и затем соединяет вершины в порядке, указанном этим массивом, расположенным согласноprimitiveType
параметр.Создать пользовательское
SCNGeometry
объект от элемента геометрии, используйтеgeometryWithSources:elements:
метод.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
-
primitiveType primitiveType
СвойствоПолучение, примитивное, который соединяет вершины при рендеринге элемента геометрии. (только для чтения)
Объявление
Swift
var primitiveType: SCNGeometryPrimitiveType { get }
Objective C
@property(nonatomic, readonly) SCNGeometryPrimitiveType primitiveType
Обсуждение
Для возможных значений посмотрите
SCNGeometryPrimitiveType
.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
-
primitiveCount primitiveCount
Свойство -
Данные, описывающие элемент геометрии. (только для чтения)
Обсуждение
Данные элемента являются массивом индексных значений, идентифицирующих вершины в источнике геометрии. SceneKit интерпретирует данные как массив целых без знака, размер которых указан
bytesPerIndex
свойство.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
-
bytesPerIndex bytesPerIndex
СвойствоЧисло байтов, представляющих каждое индексное значение в данных элемента. (только для чтения)
Объявление
Swift
var bytesPerIndex: Int { get }
Objective C
@property(nonatomic, readonly) NSInteger bytesPerIndex
Обсуждение
Элемент
data
свойство содержит массив индексных значений, идентифицирующих вершины в источнике геометрии. SceneKit интерпретирует данные как массив целых без знака, размер которых указанbytesPerIndex
свойство.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
-
Получение, примитивное, который соединяет вершины при рендеринге элемента геометрии, используемого
primitiveType
свойство, чтобы указать, как SceneKit интерпретирует данные элемента геометрии.Объявление
Swift
enum SCNGeometryPrimitiveType : Int { case Triangles case TriangleStrip case Line case Point }
Objective C
typedef enum { SCNGeometryPrimitiveTypeTriangles = 0, SCNGeometryPrimitiveTypeTriangleStrip = 1, SCNGeometryPrimitiveTypeLine = 2, SCNGeometryPrimitiveTypePoint = 3 } SCNGeometryPrimitiveType;
Константы
-
Triangles
SCNGeometryPrimitiveTypeTriangles
Данные элемента геометрии являются последовательностью треугольников с каждым треугольником, описанным тремя новыми вершинами.
Доступный в OS X v10.8 и позже.
-
TriangleStrip
SCNGeometryPrimitiveTypeTriangleStrip
Данные элемента геометрии являются последовательностью треугольников с каждым треугольником, описанным одной новой вершиной и двумя вершинами от предыдущего треугольника.
Доступный в OS X v10.8 и позже.
-
Line
SCNGeometryPrimitiveTypeLine
Данные элемента геометрии являются последовательностью линейных сегментов с каждым линейным сегментом, описанным двумя новыми вершинами.
Доступный в OS X v10.8 и позже.
-
Point
SCNGeometryPrimitiveTypePoint
Данные элемента геометрии являются последовательностью несвязанных точек.
Доступный в OS X v10.8 и позже.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.8 и позже.
-