SCNGeometrySource 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。
[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
- 繼承
- 屬性
- 實作
備註
想要以程式設計方式產生自訂 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) |
建立 Unmanaged 物件的 Managed 標記法時所使用的建構函式;由執行時間呼叫。 |
SCNGeometrySource(NSCoder) |
從儲存在 unarchiver 物件中的資料初始化 物件的建構函式。 |
SCNGeometrySource(NSObjectFlag) |
呼叫衍生類別的建構函式,以略過初始化,並只配置 物件。 |
屬性
BytesPerComponent |
基礎向量資料的大小,以位元組為單位。 |
Class |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
ClassHandle |
這個類別的控制碼。 |
ComponentsPerVector |
這個來源中每個向量元素的元件數目。 |
Data |
基礎資料緩衝區。 |
DataOffset |
從 開頭 Data 到第一個頂點元素的距離,以位元組為單位。 |
DataStride |
中 Data 頂點專案之間的位元組數目。 |
DebugDescription |
此物件的開發人員有意義描述。 (繼承來源 NSObject) |
Description |
物件的描述,ToString 的 Objective-C 版本。 (繼承來源 NSObject) |
FloatComponents |
頂點元件資料是否由值所組成 |
Handle |
處理非受控物件標記法) (指標。 (繼承來源 NSObject) |
IsDirectBinding |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
IsProxy |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
RetainCount |
傳回物件的目前 Objective-C 保留計數。 (繼承來源 NSObject) |
Self |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
Semantic |
對應至 SCNGeometrySourceSemantic 這個來源的值。 |
Superclass |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
SuperHandle |
用來表示這個 NSObject 基類中方法的控制碼。 (繼承來源 NSObject) |
VectorCount |
基礎 Data 中的向量總數。 |
Zone |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 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 檔案載入物件之後呼叫。 覆寫程式必須呼叫基底。AwakeFromNib () 。 (繼承來源 NSObject) |
BeginInvokeOnMainThread(Action) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
BeginInvokeOnMainThread(Selector, NSObject) |
在主要 UI 執行緒上以非同步方式叫用指定的程式碼。 (繼承來源 NSObject) |
Bind(NSString, NSObject, String, NSDictionary) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
Bind(String, NSObject, String, NSDictionary) |
已淘汰.
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
BindingInfo(String) |
已淘汰.
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
BindingOptionDescriptions(String) |
已淘汰.
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
BindingValueClass(String) |
已淘汰.
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
CommitEditing() |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
CommitEditing(NSObject, Selector, IntPtr) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
ConformsToProtocol(IntPtr) |
叫用 以判斷這個物件是否實作指定的通訊協定。 (繼承來源 NSObject) |
Copy() |
執行基礎 Objective-C 物件的複本。 (繼承來源 NSObject) |
DangerousAutorelease() |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
DangerousRelease() |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
DangerousRetain() |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
DidChange(NSKeyValueChange, NSIndexSet, NSString) |
指出對多關聯性的索引發生變更。 (繼承來源 NSObject) |
DidChange(NSString, NSKeyValueSetMutationKind, NSSet) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
DidChangeValue(String) |
表示在指定的索引鍵上發生變更。 (繼承來源 NSObject) |
Dispose() |
釋放 NSObject 物件所使用的資源。 (繼承來源 NSObject) |
Dispose(Boolean) |
釋放 NSObject 物件所使用的資源。 (繼承來源 NSObject) |
DoesNotRecognizeSelector(Selector) |
表示這個物件無法辨識指定的選取器。 (繼承來源 NSObject) |
EncodeTo(NSCoder) |
編碼所提供編碼器上物件的狀態 |
Equals(NSObject) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
Equals(Object) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
ExposedBindings() |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
FromData(NSData, NSString, nint, Boolean, nint, nint, nint, nint) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 |
FromData(NSData, SCNGeometrySourceSemantics, nint, Boolean, nint, nint, nint, nint) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 |
FromMetalBuffer(IMTLBuffer, MTLVertexFormat, NSString, nint, nint, nint) |
從資料緩衝區建立新 SCNGeometrySource 的 Factory 方法。 |
FromMetalBuffer(IMTLBuffer, MTLVertexFormat, SCNGeometrySourceSemantics, nint, nint, nint) |
從資料緩衝區建立新 SCNGeometrySource 的 Factory 方法。 |
FromNormals(SCNVector3[]) |
建立頂點常態來源的 Factory 方法。 |
FromTextureCoordinates(CGPoint[]) |
建立紋理座標來源的 Factory 方法。 |
FromVertices(SCNVector3[]) |
建立頂點資料來源的 Factory 方法。 |
GetBindingInfo(NSString) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
GetBindingOptionDescriptions(NSString) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
GetBindingValueClass(NSString) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
GetDictionaryOfValuesFromKeys(NSString[]) |
擷取指定索引鍵的值。 (繼承來源 NSObject) |
GetHashCode() |
產生目前實例的雜湊碼。 (繼承來源 NSObject) |
GetMethodForSelector(Selector) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
GetNativeField(String) |
已淘汰.
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
GetNativeHash() |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
Init() |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
InitializeHandle(IntPtr) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
InitializeHandle(IntPtr, String) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
Invoke(Action, Double) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
Invoke(Action, TimeSpan) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
InvokeOnMainThread(Action) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
InvokeOnMainThread(Selector, NSObject) |
在主要 UI 執行緒上,以同步方式叫用指定的程式碼。 (繼承來源 NSObject) |
IsEqual(NSObject) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
IsKindOfClass(Class) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
IsMemberOfClass(Class) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
MarkDirty() |
將一般對等物件升階 (IsDirectBinding 為 true) 為 toggleref 物件。 (繼承來源 NSObject) |
MutableCopy() |
建立指定之 NSObject 的可變動複本。 (繼承來源 NSObject) |
ObjectDidEndEditing(NSObject) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
ObserveValue(NSString, NSObject, NSDictionary, IntPtr) |
表示相對於這個物件的指定 keyPath 的值已變更。 (繼承來源 NSObject) |
PerformSelector(Selector) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
PerformSelector(Selector, NSObject) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
PerformSelector(Selector, NSObject, Double) |
叫用目前實例上的選取器,如果 |
PerformSelector(Selector, NSObject, Double, NSString[]) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
PerformSelector(Selector, NSObject, NSObject) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
PerformSelector(Selector, NSThread, NSObject, Boolean) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
PerformSelector(Selector, NSThread, NSObject, Boolean, NSString[]) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
PrepareForInterfaceBuilder() |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 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 定義 3D 物件。 (繼承來源 NSObject) |
SetNilValueForKey(NSString) |
將指定索引鍵的值設定為 null。 (繼承來源 NSObject) |
SetValueForKey(NSObject, NSString) |
將索引鍵所指定的屬性值設定為指定的值。 (繼承來源 NSObject) |
SetValueForKeyPath(IntPtr, NSString) |
建立 Unmanaged 物件的 Managed 標記法時所使用的建構函式;由執行時間呼叫。 (繼承來源 NSObject) |
SetValueForKeyPath(NSObject, NSString) |
設定可以使用索引鍵路徑到達的屬性值。 (繼承來源 NSObject) |
SetValueForUndefinedKey(NSObject, NSString) |
表示嘗試將值寫入未定義的索引鍵。 如果未覆寫,會引發 NSUndefinedKeyException。 (繼承來源 NSObject) |
SetValuesForKeysWithDictionary(NSDictionary) |
將這個 NSObject 的值設定為指定字典中的值。 (繼承來源 NSObject) |
ToString() |
傳回目前實例值的字串表示。 (繼承來源 NSObject) |
Unbind(NSString) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
Unbind(String) |
已淘汰.
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
ValueForKey(NSString) |
傳回與指定索引鍵相關聯的屬性值。 (繼承來源 NSObject) |
ValueForKeyPath(NSString) |
傳回可以使用 keypath 到達的屬性值。 (繼承來源 NSObject) |
ValueForUndefinedKey(NSString) |
表示嘗試讀取未定義索引鍵的值。 如果未覆寫,會引發 NSUndefinedKeyException。 (繼承來源 NSObject) |
WillChange(NSKeyValueChange, NSIndexSet, NSString) |
表示指定索引鍵中指定索引的值即將變更。 (繼承來源 NSObject) |
WillChange(NSString, NSKeyValueSetMutationKind, NSSet) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 (繼承來源 NSObject) |
WillChangeValue(String) |
表示指定索引鍵的值即將變更。 (繼承來源 NSObject) |
擴充方法
ObjectDidBeginEditing(NSObject, INSEditor) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 |
ObjectDidEndEditing(NSObject, INSEditor) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 |
GetValidModes(NSObject, NSFontPanel) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 |
ValidateToolbarItem(NSObject, NSToolbarItem) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 |
GetDebugDescription(INSObjectProtocol) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 |
AcceptsPreviewPanelControl(NSObject, QLPreviewPanel) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 |
BeginPreviewPanelControl(NSObject, QLPreviewPanel) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 |
EndPreviewPanelControl(NSObject, QLPreviewPanel) |
提供頂點資料,並搭配 SCNGeometryElements 定義 3D 物件。 |
GetAccessibilityCustomRotors(NSObject) |
取得物件適用的 |
SetAccessibilityCustomRotors(NSObject, UIAccessibilityCustomRotor[]) |
設定適用于 |