SCNShape
SCNShape
объект является геометрией, создающей ее содержание из двумерного пути, дополнительно вытесненного для создания трехмерного объекта.
SceneKit создает трехмерную геометрию путем вытеснения пути Bézier, расширяющегося в x-и направлениях оси y ее пространства локальной координаты вдоль оси z указанной суммой. Например, если Вы создаете форму с глубиной экструзии 1.0
, это расширяется от -0.5
к 0.5
вдоль оси z. Глубина экструзии нуля создает плоскую, одностороннюю форму — геометрия ограничена плоскостью, z-координата которой 0.0
, и просматриваемый только от его передней стороны, если его материал doubleSided
свойство YES
true
.
Геометрия формы может содержать между одним и пятью элементами геометрии:
Если
extrusionDepth
свойство0.0
, геометрия формы имеет один элемент, соответствующий его видимая сторона.Если его глубина экструзии больше, чем нуль и его
chamferRadius
свойство0.0
, геометрия формы имеет три элемента, соответствуя ее передней стороне, назад, и вытесненным сторонам.Если и глубина экструзии и радиус закругления кромок больше, чем нуль, текстовая геометрия может иметь четыре или пять элементов в зависимости от
chamferMode
свойство, соответствуя его передней стороне, назад, вытеснило стороны, переднее закругление кромок и заднее закругление кромок.
SceneKit может представить каждый элемент с помощью различного материала. Для получения дополнительной информации см. описание materials
свойство в Ссылке класса SCNGeometry.
Соответствует
Оператор импорта
Swift
import SceneKit
Objective C
@import SceneKit;
Доступность
Доступный в OS X v10.9 и позже.
-
Создает геометрию формы с указанным путем и глубиной экструзии.
Объявление
Swift
convenience init(path
path
: NSBezierPath, extrusionDepthextrusionDepth
: CGFloat)Objective C
+ (instancetype)shapeWithPath:(NSBezierPath *)
path
extrusionDepth:(CGFloat)extrusionDepth
Параметры
path
Двумерный путь, формирующий основание формы.
extrusionDepth
Толщина вытесненной формы вдоль оси z.
Возвращаемое значение
Геометрия формы.
Обсуждение
SceneKit определяет область заливки пути с помощью ровно-нечетного вьющегося правила (см. Вьющиеся Правила в Руководстве по Рисованию Какао), и вытесняет эту область для создания трехмерной геометрии. Результат вытеснения самопересекающегося пути не определен.
Вытесненная форма центрируется в нулевой точке ее оси z. Например, глубина экструзии
1.0
создает форму, расширяющуюся от-0.5
к0.5
вдоль оси z. Глубина экструзии нуля создает плоскую, одностороннюю форму.Плоскость пути (см.
setFlatness:
в Ссылке класса NSBezierPath), определяет уровень детализации использование SceneKit в создании трехмерной формы от пути. Большая плоскость оценивает результаты в меньшем количестве многоугольников для рендеринга, увеличивая производительность и меньшую плоскость повышения стоимости гладкость кривых по стоимости для производительности.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.9 и позже.
-
extrusionDepth extrusionDepth
СвойствоТолщина вытесненной формы вдоль оси z. Animatable.
Объявление
Swift
var extrusionDepth: CGFloat
Objective C
@property(nonatomic) CGFloat extrusionDepth
Обсуждение
Вытесненная форма центрируется в нулевой точке ее оси z. Например, глубина экструзии
1.0
создает форму, расширяющуюся от-0.5
к0.5
вдоль оси z. Глубина экструзии нуля создает плоскую, одностороннюю форму.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.9 и позже.
-
Двумерный путь, формирующий основание формы.
Объявление
Swift
@NSCopying var path: NSBezierPath!
Objective C
@property(nonatomic, copy) NSBezierPath *path
Обсуждение
SceneKit определяет область заливки пути с помощью ровно-нечетного вьющегося правила (см. Вьющиеся Правила в Руководстве по Рисованию Какао), и вытесняет эту область для создания трехмерной геометрии. Результат вытеснения самопересекающегося пути не определен.
Плоскость пути (см.
setFlatness:
в Ссылке класса NSBezierPath), определяет уровень детализации использование SceneKit в создании трехмерной формы от пути — большее значение плоскости приводит к меньшему количеству многоугольников для рендеринга, увеличивая производительность.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.9 и позже.
-
chamferMode chamferMode
СвойствоПостоянное указание, какие концы профиля вытесненной формы закруглены кромки.
Объявление
Swift
var chamferMode: SCNChamferMode
Objective C
@property(nonatomic) SCNChamferMode chamferMode
Обсуждение
Посмотрите
SCNChamferMode
для позволенных значений. Режим закругления кромок по умолчаниюSCNChamferModeBoth
.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.9 и позже.
-
chamferProfile chamferProfile
СвойствоПуть, определяющий перекрестный частный контур каждого закругленного кромки края.
Объявление
Swift
@NSCopying var chamferProfile: NSBezierPath!
Objective C
@property(nonatomic, copy) NSBezierPath *chamferProfile
Обсуждение
Значение этого свойства должно быть двумерным путем, запускающимся в точке
{1, 0}
и окончание в точке{0, 1}
, определение контура формы вдоль ее вытесненных сторон, как проиллюстрировано на рисунке 1. Если значение этого свойстваnil
и значениеchamferRadius
свойство больше, чем нуль, SceneKit использует профиль закругления кромок в форме круга четверти, показанного на рисунке 2 и рисунке 3.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.9 и позже.
-
chamferRadius chamferRadius
СвойствоШирина или глубина каждого закругленного кромки края. Animatable.
Обсуждение
Значение по умолчанию нуля не указывает закругления кромок (вытесненный конец сторон под прямым углом передней и задней части формы). Позволенные значения колеблются от нуля до половины глубины экструзии. (В максимальном радиусе закругления кромок заканчивается переднее закругление кромок, где заднее закругление кромок начинается, как показано справа на рисунке 2.)
Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.9 и позже.
-
Опции, для которых края вытесненной формы закруглены кромки, используемые
chamferMode
свойство.Объявление
Swift
enum SCNChamferMode : Int { case Both case Front case Back }
Objective C
typedef enum : NSInteger { SCNChamferModeBoth, SCNChamferModeFront, SCNChamferModeBack } SCNChamferMode;
Константы
-
Both
SCNChamferModeBoth
Примените закругление кромок и к передним и к задним фронтам вытесненной формы.
Доступный в OS X v10.9 и позже.
-
Front
SCNChamferModeFront
Примените закругление кромок к только переднему фронту вытесненной формы.
Доступный в OS X v10.9 и позже.
-
Back
SCNChamferModeBack
Примените закругление кромок к только заднему фронту вытесненной формы.
Доступный в OS X v10.9 и позже.
Обсуждение
Рисунок 3 иллюстрирует три режима закругления кромок.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.9 и позже.
-