SceneNodeUpdateResult.swift 819 B

123456789101112131415161718192021
  1. /// The result of updating a scene graph node.
  2. public struct SceneNodeUpdateResult {
  3. /// The preference values produced by the scene and its children.
  4. public var preferences: ScenePreferenceValues
  5. public init(preferences: ScenePreferenceValues) {
  6. self.preferences = preferences
  7. }
  8. /// Creates an update result by combining the preference values of a scene's
  9. /// children.
  10. public init(childResults: [SceneNodeUpdateResult]) {
  11. preferences = ScenePreferenceValues(merging: childResults.map(\.preferences))
  12. }
  13. /// Creates the layout result of a leaf scene (one with no children and no
  14. /// special preference behaviour). Uses ``ScenePreferenceValues/default``.
  15. public static func leafScene() -> Self {
  16. SceneNodeUpdateResult(preferences: .default)
  17. }
  18. }