Поделиться через


SCNGeometrySource Класс

Определение

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

[Foundation.Register("SCNGeometrySource", true)]
[ObjCRuntime.Introduced(ObjCRuntime.PlatformName.WatchOS, 3, 0, ObjCRuntime.PlatformArchitecture.All, null)]
[ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 8, 0, ObjCRuntime.PlatformArchitecture.All, null)]
public class SCNGeometrySource : Foundation.NSObject, Foundation.INSSecureCoding, IDisposable
[Foundation.Register("SCNGeometrySource", true)]
[ObjCRuntime.Introduced(ObjCRuntime.PlatformName.WatchOS, 3, 0, ObjCRuntime.PlatformArchitecture.All, null)]
[ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 8, 0, ObjCRuntime.PlatformArchitecture.All, null)]
[ObjCRuntime.Introduced(ObjCRuntime.PlatformName.MacOSX, 10, 8, ObjCRuntime.PlatformArchitecture.All, null)]
public class SCNGeometrySource : Foundation.NSObject, Foundation.INSSecureCoding, IDisposable
type SCNGeometrySource = class
    inherit NSObject
    interface INSCoding
    interface INativeObject
    interface IDisposable
    interface INSSecureCoding
Наследование
SCNGeometrySource
Атрибуты
Реализации

Комментарии

Разработчики, желающие программно создавать пользовательские SCNGeometry объекты, используют метод M:SceneKit.SCNGeometry.Create(SceneKit.SCNGeometrySource[], SceneKit.SCNGeometryElement[]* . Форма и число SCNGeometrySource объектов зависят от способа описания геометрии разработчиком (например, от того, поступают ли данные вершин в виде ряда тройни, описывающих треугольники, или движущегося ряда, описывающего полосу треугольника), а также от того, будет ли геометрия просто окрашена или будет иметь карту текстуры.

В следующем коде демонстрируется пользовательский код для создания пользовательской четырехсторонняя пирамида. В этом примере показано использование вершин, определяющих треугольники, с которыми сопоставлена одна текстура. Обратите внимание на то, как конкретные значения индекса в locs используются для определения indices и как порядок в влияет locs на normals и txCoords. Кроме того, обратите внимание, что тройни в indices связаны с SCNGeometryPrimitiveType.Triangles.

//Lower-left
var a = new SCNVector3(-1, -1, 0);
//Upper-right
var b = new SCNVector3(1, 1, 0);

var halfX = (c.X + a.X) / 2;
var halfY = (c.Y + a.Y) / 2;
var halfZ = (c.Z + a.Z) / 2;

var b = new SCNVector3(a.X, c.Y, halfZ);
var d = new SCNVector3(c.X, a.Y, halfZ);
//Elevate the midpoint so that it's clearly a pyramid
var midPoint = new SCNVector3(halfX, halfY, halfZ + 1.0);

//The vertices of the geometry
var locs = new [] {
	a, b, c, d, midPoint
};
var locSource = SCNGeometrySource.FromVertices(locs);

//Note that this relies on the ordering of locs above
//and it defines triangles (could be triangle strips, etc.)
var indices = new [] {
	//Triangles are defined counter-clockwise!
	4, 1, 0,
	1, 4, 2,
	2, 4, 3,
	3, 4, 0
};


var idxArray = new byte[indices.Length][];
for(int i = 0; i < idxArray.Length; i++)
{
	idxArray[i] = BitConverter.GetBytes(indices[i]);
}
var idxData = NSData.FromArray(idxArray.SelectMany(id => id).ToArray());

//Note that this relies on indices defining triangles
var element = SCNGeometryElement.FromData(idxData, SCNGeometryPrimitiveType.Triangles, indices.Length / 3, sizeof(int));

//Normals are relative to geometry
var normals = new [] {
	new SCNVector3(0, 0, 1),
	new SCNVector3(0, 0, 1),
	new SCNVector3(0, 0, 1),
	new SCNVector3(0, 0, 1),
	new SCNVector3(0, 0, 1),
};;
var normSource = SCNGeometrySource.FromNormals(normals);

//These texture coords will cause the texture to wrap 
var txCoords = new [] {
	new CGPoint(0, 0),
	new CGPoint(0, 1),
	new CGPoint(1, 1),
	new CGPoint(1, 0),
  new CGPoint(0.5, 0.5)
};

var txCoordsSource = SCNGeometrySource.FromTextureCoordinates(txCoords);

var geometry = SCNGeometry.Create(new [] { locSource, normSource, txCoordsSource }, new [] { element });

Конструкторы

SCNGeometrySource()

Конструктор по умолчанию инициализирует новый экземпляр этого класса.

SCNGeometrySource(IntPtr)

Конструктор, используемый при создании управляемых представлений неуправляемых объектов; Вызывается средой выполнения.

SCNGeometrySource(NSCoder)

Конструктор, который инициализирует объект из данных, хранящихся в объекте unarchiver.

SCNGeometrySource(NSObjectFlag)

Конструктор для вызова производных классов для пропуска инициализации и просто выделения объекта.

Свойства

BytesPerComponent

Размер базовых векторных данных (в байтах).

Class

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
ClassHandle

Дескриптор для этого класса.

ComponentsPerVector

Количество компонентов на векторный элемент в этом источнике.

Data

Базовый буфер данных.

DataOffset

Расстояние (в байтах) от начала Data до первого элемента вершины.

DataStride

Число байтов между элементами вершины в Data.

DebugDescription

Понятное для разработчика описание этого объекта.

(Унаследовано от NSObject)
Description

Описание объекта , версия ToString для Objective-C.

(Унаследовано от NSObject)
FloatComponents

Указывает, состоят ли данные компонента вершины из значений nfloat .

Handle

Дескриптор (указатель) на представление неуправляемого объекта.

(Унаследовано от NSObject)
IsDirectBinding

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
IsProxy

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
RetainCount

Возвращает текущее число удержания Objective-C для объекта .

(Унаследовано от NSObject)
Self

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
Semantic

Соответствует значению SCNGeometrySourceSemantic для этого источника.

Superclass

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
SuperHandle

Дескриптор, используемый для представления методов в базовом классе для этого объекта NSObject.

(Унаследовано от NSObject)
VectorCount

Общее число векторов в базовом Dataобъекте .

Zone

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)

Методы

AddObserver(NSObject, NSString, NSKeyValueObservingOptions, IntPtr)

Регистрирует объект для внешнего наблюдения (с помощью NSString keyPath).   Наблюдаемые изменения отправляются в объектный ObserveValue(NSString, NSObject, NSDictionary, IntPtr) метод наблюдателя.

(Унаследовано от NSObject)
AddObserver(NSObject, String, NSKeyValueObservingOptions, IntPtr)

Регистрирует объект для наблюдения извне (с помощью строки keyPath).   Наблюдаемые изменения отправляются в объектный ObserveValue(NSString, NSObject, NSDictionary, IntPtr) метод наблюдателя.

(Унаследовано от NSObject)
AddObserver(NSString, NSKeyValueObservingOptions, Action<NSObservedChange>)

Регистрирует объект для наблюдения извне с помощью произвольного метода.

(Унаследовано от NSObject)
AddObserver(String, NSKeyValueObservingOptions, Action<NSObservedChange>)

Регистрирует объект для наблюдения извне с помощью произвольного метода.

(Унаследовано от NSObject)
AwakeFromNib()

Вызывается после загрузки объекта из nib-файла. Переопределители должны вызывать base. AwakeFromNib().

(Унаследовано от NSObject)
BeginInvokeOnMainThread(Action)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
BeginInvokeOnMainThread(Selector, NSObject)

Асинхронно вызывает указанный код в основном потоке пользовательского интерфейса.

(Унаследовано от NSObject)
Bind(NSString, NSObject, String, NSDictionary)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
Bind(String, NSObject, String, NSDictionary)
Устаревшие..

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
BindingInfo(String)
Устаревшие..

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
BindingOptionDescriptions(String)
Устаревшие..

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
BindingValueClass(String)
Устаревшие..

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
CommitEditing()

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
CommitEditing(NSObject, Selector, IntPtr)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
ConformsToProtocol(IntPtr)

Вызывается для определения того, реализует ли этот объект указанный протокол.

(Унаследовано от NSObject)
Copy()

Выполняет копию базового объекта Objective-C.

(Унаследовано от NSObject)
DangerousAutorelease()

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
DangerousRelease()

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
DangerousRetain()

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
DidChange(NSKeyValueChange, NSIndexSet, NSString)

Указывает на изменение индексов для связи ко многим.

(Унаследовано от NSObject)
DidChange(NSString, NSKeyValueSetMutationKind, NSSet)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
DidChangeValue(String)

Указывает, что в указанном ключе произошло изменение.

(Унаследовано от NSObject)
Dispose()

Освобождает ресурсы, используемые объектом NSObject.

(Унаследовано от NSObject)
Dispose(Boolean)

Освобождает ресурсы, используемые объектом NSObject.

(Унаследовано от NSObject)
DoesNotRecognizeSelector(Selector)

Указывает, что этот объект не распознает указанный селектор.

(Унаследовано от NSObject)
EncodeTo(NSCoder)

Кодирует состояние объекта в предоставленном кодировщике.

Equals(NSObject)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
Equals(Object)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
ExposedBindings()

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
FromData(NSData, NSString, nint, Boolean, nint, nint, nint, nint)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

FromData(NSData, SCNGeometrySourceSemantics, nint, Boolean, nint, nint, nint, nint)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

FromMetalBuffer(IMTLBuffer, MTLVertexFormat, NSString, nint, nint, nint)

Метод фабрики для создания нового SCNGeometrySource объекта из буфера данных.

FromMetalBuffer(IMTLBuffer, MTLVertexFormat, SCNGeometrySourceSemantics, nint, nint, nint)

Метод фабрики для создания нового SCNGeometrySource объекта из буфера данных.

FromNormals(SCNVector3[])

Фабричный метод, который создает источник для норм вершин.

FromTextureCoordinates(CGPoint[])

Фабричный метод, который создает источник для координат текстуры.

FromVertices(SCNVector3[])

Метод фабрики для создания источника данных вершин.

GetBindingInfo(NSString)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
GetBindingOptionDescriptions(NSString)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
GetBindingValueClass(NSString)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
GetDictionaryOfValuesFromKeys(NSString[])

Извлекает значения указанных ключей.

(Унаследовано от NSObject)
GetHashCode()

Создает хэш-код для текущего экземпляра.

(Унаследовано от NSObject)
GetMethodForSelector(Selector)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
GetNativeField(String)
Устаревшие..

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
GetNativeHash()

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
Init()

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
InitializeHandle(IntPtr)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
InitializeHandle(IntPtr, String)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
Invoke(Action, Double)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
Invoke(Action, TimeSpan)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
InvokeOnMainThread(Action)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
InvokeOnMainThread(Selector, NSObject)

Синхронно вызывает указанный код в основном потоке пользовательского интерфейса.

(Унаследовано от NSObject)
IsEqual(NSObject)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
IsKindOfClass(Class)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
IsMemberOfClass(Class)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
MarkDirty()

Повышает уровень обычного однорангового объекта (isDirectBinding имеет значение true) в объект toggleref.

(Унаследовано от NSObject)
MutableCopy()

Создает изменяемую копию указанного объекта NSObject.

(Унаследовано от NSObject)
ObjectDidEndEditing(NSObject)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
ObserveValue(NSString, NSObject, NSDictionary, IntPtr)

Указывает, что значение указанного keyPath относительно данного объекта изменилось.

(Унаследовано от NSObject)
PerformSelector(Selector)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
PerformSelector(Selector, NSObject)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
PerformSelector(Selector, NSObject, Double)

Вызывает селектор для текущего экземпляра и, если obj не имеет значения NULL, он передает его в качестве одного параметра.

(Унаследовано от NSObject)
PerformSelector(Selector, NSObject, Double, NSString[])

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
PerformSelector(Selector, NSObject, NSObject)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
PerformSelector(Selector, NSThread, NSObject, Boolean)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
PerformSelector(Selector, NSThread, NSObject, Boolean, NSString[])

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
PrepareForInterfaceBuilder()

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
RemoveObserver(NSObject, NSString)

Запрещает указанному наблюдателю получать дальнейшие уведомления об изменении значений для указанного keyPath.

(Унаследовано от NSObject)
RemoveObserver(NSObject, NSString, IntPtr)

Запрещает указанному наблюдателю получать дальнейшие уведомления об изменении значений для указанного keyPath и контекста.

(Унаследовано от NSObject)
RemoveObserver(NSObject, String)

Запрещает указанному наблюдателю получать дальнейшие уведомления об изменении значений для указанного keyPath.

(Унаследовано от NSObject)
RemoveObserver(NSObject, String, IntPtr)

Запрещает указанному наблюдателю получать дальнейшие уведомления об изменении значений для указанного keyPath и контекста.

(Унаследовано от NSObject)
RespondsToSelector(Selector)

Распознает ли этот объект указанный селектор.

(Унаследовано от NSObject)
SetNativeField(String, NSObject)
Устаревшие..

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
SetNilValueForKey(NSString)

Задает значение null для указанного ключа.

(Унаследовано от NSObject)
SetValueForKey(NSObject, NSString)

Задает указанное значение свойства, указанного ключом.

(Унаследовано от NSObject)
SetValueForKeyPath(IntPtr, NSString)

Конструктор, используемый при создании управляемых представлений неуправляемых объектов; Вызывается средой выполнения.

(Унаследовано от NSObject)
SetValueForKeyPath(NSObject, NSString)

Задает значение свойства, которое можно получить с помощью пути к ключу.

(Унаследовано от NSObject)
SetValueForUndefinedKey(NSObject, NSString)

Указывает на попытку записать значение в неопределенный ключ. Если значение не переопределено, вызывает исключение NSUndefinedKeyException.

(Унаследовано от NSObject)
SetValuesForKeysWithDictionary(NSDictionary)

Устанавливает значения этого объекта NSObject в указанный словарь.

(Унаследовано от NSObject)
ToString()

Возвращает строковое представление значения текущего экземпляра.

(Унаследовано от NSObject)
Unbind(NSString)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
Unbind(String)
Устаревшие..

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
ValueForKey(NSString)

Возвращает значение свойства, связанного с указанным ключом.

(Унаследовано от NSObject)
ValueForKeyPath(NSString)

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

(Унаследовано от NSObject)
ValueForUndefinedKey(NSString)

Указывает на попытку считывания значения неопределенного ключа. Если значение не переопределено, вызывает исключение NSUndefinedKeyException.

(Унаследовано от NSObject)
WillChange(NSKeyValueChange, NSIndexSet, NSString)

Указывает, что значения указанных индексов в указанном ключе собираются измениться.

(Унаследовано от NSObject)
WillChange(NSString, NSKeyValueSetMutationKind, NSSet)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

(Унаследовано от NSObject)
WillChangeValue(String)

Указывает, что значение указанного ключа изменится.

(Унаследовано от NSObject)

Методы расширения

ObjectDidBeginEditing(NSObject, INSEditor)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

ObjectDidEndEditing(NSObject, INSEditor)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

GetValidModes(NSObject, NSFontPanel)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

ValidateToolbarItem(NSObject, NSToolbarItem)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

GetDebugDescription(INSObjectProtocol)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

AcceptsPreviewPanelControl(NSObject, QLPreviewPanel)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

BeginPreviewPanelControl(NSObject, QLPreviewPanel)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

EndPreviewPanelControl(NSObject, QLPreviewPanel)

Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект.

GetAccessibilityCustomRotors(NSObject)

Возвращает массив объектов, подходящих UIAccessibilityCustomRotor для this объекта .

SetAccessibilityCustomRotors(NSObject, UIAccessibilityCustomRotor[])

Задает массив объектов, подходящих UIAccessibilityCustomRotor для this объекта .

Применяется к

См. также раздел