SCNBoundingVolume
Наследование
Не применимый
Оператор импорта
Swift
import SceneKit
Objective C
@import SceneKit;
Доступность
Доступный в iOS 8.0 и позже.
SCNBoundingVolume
протокол определяет интерфейс для описания объектов, занимающих объем в пространстве, принятом SCNNode
и SCNGeometry
классы. Его методы измеряют расположение и размер объекта в пространстве локальной координаты объекта, выраженном или как поле или как сфера.
Ограничительная рамка является самым маленьким объемом, в форме прямоугольника, выровненного к осям пространства локальной координаты, полностью содержащего объект. Набор сцены определяет ограничительную рамку с помощью двух точек: минимальный и максимальный угол. Точно так же сфера ограничения является самой маленькой сферой, содержащей объект.
По умолчанию Набор Сцены автоматически определяет минимальные ограничивающие объемы для конфигураций на основе их позиций вершины в пространстве модели. Ограничивающий объем узла с присоединенной геометрией является ограничивающим объемом геометрии, выраженной в локальном пространстве узла. Ограничивающий объем узла, содержащего дочерние узлы, является минимальным объемом, включающим ограничивающие объемы дочерних элементов узла.
Используйте методы, перечисленные в Измерении Ограничивающего объема Объекта для получения информации об ограничительной рамке или сфере объекта. Набор сцены использует эти методы при определении, как представить сцену. Например, SCNCamera
возразите использует ограничительные рамки видимых элементов в сцене для определения ее пределов глубины.
Можно переопределить автоматически решительный ограничивающий объем объекта с помощью setBoundingBoxMin:max:
метод. Например, Вы могли бы использовать этот метод для обработки частей геометрии как несущественных к рендерингу.
-
Получает минимальные и максимальные угловые точки ограничительной рамки объекта. (требуемый)
Объявление
Swift
func getBoundingBoxMin(_
min
: UnsafeMutablePointer<SCNVector3>, maxmax
: UnsafeMutablePointer<SCNVector3>) -> BoolObjective C
- (BOOL)getBoundingBoxMin:(SCNVector3 *)
min
max:(SCNVector3 *)max
Параметры
min
На выводе, минимальных координатах ограничительной рамки.
max
На выводе, максимальных координатах ограничительной рамки.
Возвращаемое значение
YES
true
если объект имеет ненулевой объем; иначе,NO
false
.Обсуждение
Набор сцены определяет ограничительную рамку в пространстве локальной координаты с помощью двух точек, идентифицирующих его углы, неявно определяющие шесть выровненных осью плоскостей, отмечающих его пределы. Например, если ограничительная рамка геометрии имеет минимальный угол
{-1, 0, 2}
и максимальный угол{3, 4, 5}
, все точки в данных вершины геометрии имеют значение x-координаты между-1.0
и3.0
, включительно.Координаты, предоставленные этим методом, допустимы, только если объект имеет объем, который будет измерен. Если обращено геометрия, содержащая данные вершины или узел, содержащий геометрию (и чьи дочерние узлы, если таковые имеются, не содержат геометрии), этот метод возвраты нет, указывая, что значения
*min
и*max
не определены.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
Получает центральную точку и радиус сферы ограничения объекта. (требуемый)
Объявление
Swift
func getBoundingSphereCenter(_
center
: UnsafeMutablePointer<SCNVector3>, radiusradius
: UnsafeMutablePointer<CGFloat>) -> BoolObjective C
- (BOOL)getBoundingSphereCenter:(SCNVector3 *)
center
radius:(CGFloat *)radius
Параметры
center
На выводе, центральной точке сферы ограничения.
radius
На выводе, радиусе сферы ограничения.
Возвращаемое значение
YES
true
если объект имеет ненулевой объем; иначе,NO
false
.Обсуждение
Набор сцены определяет сферу ограничения в пространстве локальной координаты с помощью центральной точки и радиуса. Например, если сфера ограничения узла имеет центральную точку
{3, 1, 4}
и радиус2.0
, все точки в данных вершины геометрии узла (и любой геометрии, присоединенной к ее дочерним узлам), лежат в2.0
модули центральной точки.Координаты, предоставленные этим методом, допустимы, только если объект имеет объем, который будет измерен. Если обращено геометрия, содержащая данные вершины или узел, содержащий геометрию (и чьи дочерние узлы, если таковые имеются, не содержат геометрии), этот метод возвраты нет, указывая, что значения
*center
и*radius
не определены.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
Устанавливает пользовательскую ограничительную рамку для объекта. (требуемый)
Объявление
Swift
func setBoundingBoxMin(_
min
: UnsafeMutablePointer<SCNVector3>, maxmax
: UnsafeMutablePointer<SCNVector3>)Objective C
- (void)setBoundingBoxMin:(SCNVector3 *)
min
max:(SCNVector3 *)max
Параметры
min
Указатель на минимальные координаты ограничительной рамки.
max
Указатель на максимальные координаты ограничительной рамки.
Обсуждение
Вы определяете ограничительную рамку в пространстве локальной координаты с помощью двух точек, идентифицирующих его углы, неявно определяющие шесть выровненных осью плоскостей, отмечающих его пределы. x-, y-, и значения z-координаты любой точки в объеме - каждый больше, чем те
min
точка и меньше, чем теmax
точка.По умолчанию Набор Сцены автоматически вычисляет ограничивающие объемы узлов и конфигураций и использует эту информацию для помощи в рендеринге. Вы используете этот метод для переопределения ограничительной рамки по умолчанию.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.