
Этот рассказ демонстрирует вам полный список классов, структур, перечислений и протоколов, которые можно найти в ARKit 4.0. Все классы, выделенные полужирным шрифтом, являются родительскими классами, унаследованными от общего класса NSObject. Дочерние классы отмечены маркерами и имеют отступ в четыре пробела. Все структуры и перечисления, вложенные в классы, здесь написаны курсивом и также с отступом в четыре пробела. У родительских классов есть ссылки на документацию разработчика.
Представление наследования здесь выглядит так:
⦿ class Parent
⦿ class Child
Вложенные структуры и перечисления изображаются следующим образом:
⦿ class ForNestedContent
⧉ struct Nested01
⨳ enum Nested02
А протоколы представлены так:
❂ Protocol
Список классов, структур и перечислений в ARKit 4.0
⦿ class ARAnchor ⦿ class ARAppClipCodeAnchor var radius var url var urlDecodingState ⦿ class ARBodyAnchor var estimatedScaleFactor var isTracked var skeleton ⦿ class AREnvironmentProbeAnchor var environmentTexture var extent ⦿ class ARFaceAnchor var blendShapes var geometry var isTracked var leftEyeTransform var lookAtPoint var rightEyeTransform ⧉ struct BlendShapeLocation static let browDownLeft static let browDownRight static let browInnerUp static let browOuterUpLeft static let browOuterUpRight static let cheekPuff static let cheekSquintLeft static let cheekSquintRight static let eyeBlinkLeft static let eyeBlinkRight static let eyeLookDownLeft static let eyeLookDownRight static let eyeLookInLeft static let eyeLookInRight static let eyeLookOutLeft static let eyeLookOutRight static let eyeLookUpLeft static let eyeLookUpRight static let eyeSquintLeft static let eyeSquintRight static let eyeWideLeft static let eyeWideRight static let jawForward static let jawLeft static let jawOpen static let jawRight static let mouthClose static let mouthDimpleLeft static let mouthDimpleRight static let mouthFrownLeft static let mouthFrownRight static let mouthFunnel static let mouthLeft static let mouthLowerDownLeft static let mouthLowerDownRight static let mouthPressLeft static let mouthPressRight static let mouthPucker static let mouthRight static let mouthRollLower static let mouthRollUpper static let mouthShrugLower static let mouthShrugUpper static let mouthSmileLeft static let mouthSmileRight static let mouthStretchLeft static let mouthStretchRight static let mouthUpperUpLeft static let mouthUpperUpRight static let noseSneerLeft static let noseSneerRight static let tongueOut ⦿ class ARGeoAnchor @nonobjc var altitude var altitudeSource var coordinate var isTracked ⨳ enum AltitudeSource case coarse case precise case unknown case userDefined ⦿ class ARImageAnchor var estimatedScaleFactor var isTracked var referenceImage var name var physicalSize var resourceGroupName ⦿ class ARMeshAnchor var geometry var classification var faces var normals var vertices ⦿ class ARObjectAnchor var referenceObject var center var extent var name var rawFeaturePoints var resourceGroupName var scale ⦿ class ARParticipantAnchor var sessionIdentifier var transform ⦿ class ARPlaneAnchor var alignment var center var classification var extent var geometry ⨳ enum Alignment case horizontal case vertical ⨳ enum Classification case ceiling case door case floor case none(ARPlaneAnchor.Classification.Status) case seat case table case wall case window ⨳ enum Status case notAvailable case undetermined case unknown ⦿ class ARBody2D ⦿ class ARCamera ⨳@frozen enumTrackingState ⨳enumReason ⦿ class ARCoachingOverlayView ⨳enumGoal ⨳ enum ARConfidenceLevel ⦿ class ARConfiguration ⦿ class ARBodyTrackingConfiguration ⦿ class ARFaceTrackingConfiguration ⦿ class ARGeoTrackingConfiguration ⦿ class ARImageTrackingConfiguration ⦿ class ARObjectScanningConfiguration ⦿ class AROrientationTrackingConfiguration ⦿ class ARPositionalTrackingConfiguration ⦿ class ARWorldTrackingConfiguration ⨳ enum EnvironmentTexturing ⧉ struct FrameSemantics ⧉ struct PlaneDetection ⧉ struct SceneReconstruction ⦿ class VideoFormat ⨳ enum WorldAlignment ⦿ class ARDepthData ⧉ struct ARError ⨳ enum Code case unsupportedConfiguration = 100 case sensorUnavailable = 101 case sensorFailed = 102 case cameraUnauthorized = 103 case microphoneUnauthorized = 104 case locationUnauthorized = 105 case worldTrackingFailed = 200 case geoTrackingNotAvailableAtLocation = 201 case geoTrackingFailed = 202 case invalidReferenceImage = 300 case invalidReferenceObject = 301 case invalidWorldMap = 302 case invalidConfiguration = 303 case collaborationDataUnavailable = 304 // Deprecated case insufficientFeatures = 400 case objectMergeFailed = 401 case fileIOFailed = 500 case requestFailed = 501 public static var invalidCollaborationData // iOS 13.2 ⦿ class ARFaceGeometry ⦿ class ARFrame ⨳ enum SegmentationClass ⨳ enum WorldMappingStatus ⦿ class ARGeometryElement ⨳ enum ARGeometryPrimitiveType ⦿ class ARGeometrySource ⦿ class ARGeoTrackingStatus ⨳ enum Accuracy ⨳ enum State ⨳ enum StateReason ⦿ class ARHitTestResult // Deprecated in iOS 14 ⦿ class ARLightEstimate ⦿ class ARDirectionalLightEstimate ⦿ class ARMatteGenerator ⨳ enum Resolution ⨳ enum ARMeshClassification ⦿ class ARMeshGeometry ⦿ class ARPlaneGeometry ⦿ class ARPointCloud ⦿ class ARQuickLookPreviewItem ⦿ class ARRaycastQuery ⨳ enum Target ⨳ enum TargetAlignment ⦿ class ARRaycastResult ⦿ class ARReferenceImage ⦿ class ARReferenceObject ⦿ class ARSession ⦿ class CollaborationData ⧉ struct RunOptions ⦿ class ARSkeleton ⦿ class ARSkeleton2D ⧉ struct JointName ⦿ class ARSkeleton3D ⧉ struct JointName ⦿ class ARSkeletonDefinition ⧉typealiasARSCNDebugOptions ⦿ class ARSCNFaceGeometry ⦿ class ARSCNPlaneGeometry ⦿ class ARSCNView // SceneKit view ⦿ class ARSKView // SpriteKit view ⦿ class ARTrackedRaycast ⦿ class ARView // RealityKit view ⦿ class ARViewBase ⧉ DebugOptions - Element ⧉ Environment - Background - Color - ImageBasedLight - Reverb ⧉ Image ⦿ class ARWorldMap
Чтобы проверить все доступные классы, структуры и перечисления в Apple ARKit, используйте следующий путь в macOS с установленным Xcode:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ARKit.framework/Headers
Список протоколов ARKit 4.0
Было бы печально, если бы в ARKit не было протоколов. В этом модуле не так много протоколов, но те, что есть, - настоящие рабочие лошадки.
❂ protocol ARAnchorCopying ❂ protocol ARCoachingOverlayViewDelegate ❂ protocol ARSCNViewDelegate ❂ protocol ARSessionDelegate ❂ protocol ARSessionObserver ❂ protocol ARSessionProviding ❂ protocol ARSKViewDelegate ❂ protocol ARTrackable
В качестве примера я хочу показать вам, как используется протокол ARTrackable. Пять типов привязок наследуются от родительского класса ARAnchor, но также соответствуют протоколу ARTrackable. Нам нужен этот протокол, когда ARKit отслеживает изменения положения и ориентации для перемещения реальных объектов.
public protocol ARTrackable: NSObjectProtocol {
var isTracked: Bool { get }
}
open class ARAppClipCodeAnchor: ARAnchor, ARTrackable { ... }
open class ARBodyAnchor: ARAnchor, ARTrackable { ... }
open class ARFaceAnchor: ARAnchor, ARTrackable { ... }
open class ARGeoAnchor: ARAnchor, ARTrackable { ... }
open class ARImageAnchor: ARAnchor, ARTrackable { ... }
Пожертвовать автору

addr1q9w70n62nu8p7f9ukfn66gzumm9d9uxwppkx7gk7vd7gy0ehfavj97gkncwm8t8l8l8x9e4adzmw2djh4y5gd9rmtewqr99zr3
На этом пока все.
Если эта публикация вам полезна, нажмите кнопку Хлопнуть и удерживайте ее. На Medium вы можете аплодировать до 50 за каждое сообщение.
Если у вас есть вопросы, вы можете связаться со мной через StackOverflow.
До встречи!