Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class Spatialized2DElement: SpatializedElement, ScrollAbleSpatialElementContaine
var backgroundMaterial = BackgroundMaterial.None

var scrollPageEnabled = false

var scrollEdgeInsetsMarginRight: CGFloat? {
get {
return spatialWebViewModel.getController().webview?.scrollView.contentInset.right
Expand Down Expand Up @@ -46,16 +46,13 @@ class Spatialized2DElement: SpatializedElement, ScrollAbleSpatialElementContaine
spatialWebViewModel = SpatialWebViewModel(url: nil)

super.init()

clip = false

spatialWebViewModel.setBackgroundTransparent(true)
spatialWebViewModel.addScrollUpdateListener { _, point in
self._scrollOffset.x = point.x
self._scrollOffset.y = point.y
}
spatialWebViewModel.scrollEnabled = false

}

// Spatialized2DElement can hold a collection of SpatializedElement children
Expand Down Expand Up @@ -92,7 +89,7 @@ class Spatialized2DElement: SpatializedElement, ScrollAbleSpatialElementContaine
func loadHtml(_ html: String) {
spatialWebViewModel.loadHTML(html)
}

func load(_ url: String) {
spatialWebViewModel.load(url)
}
Expand Down
16 changes: 5 additions & 11 deletions packages/visionOS/web-spatial/model/SpatializedElement.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,13 @@ class SpatializedElement: SpatialObject {
var height: Double = 0.0
var depth: Double = 0.0
var backOffset: Double = 0.0
var transform: AffineTransform3D = AffineTransform3D.identity
var transform: AffineTransform3D = .identity
var rotationAnchor: UnitPoint3D = .center
var opacity: Double = 1.0
var visible = true
var scrollWithParent = true
var zIndex: Double = 0

// whether require clip action
var clip = true


var enableDragStartGesture: Bool = false
var enableDragGesture: Bool = false
var enableDragEndGesture: Bool = false
Expand All @@ -36,16 +33,13 @@ class SpatializedElement: SpatialObject {
var enableMagnifyGesture: Bool = false
var enableMagnifyEndGesture: Bool = false
var enableTapGesture: Bool = false

var enableGesture: Bool {
get {
return enableDragStartGesture || enableDragGesture || enableDragEndGesture || enableRotateStartGesture || enableRotateGesture || enableRotateEndGesture || enableMagnifyStartGesture || enableMagnifyGesture || enableMagnifyEndGesture || enableTapGesture
}
return enableDragStartGesture || enableDragGesture || enableDragEndGesture || enableRotateStartGesture || enableRotateGesture || enableRotateEndGesture || enableMagnifyStartGesture || enableMagnifyGesture || enableMagnifyEndGesture || enableTapGesture
}


enum CodingKeys: String, CodingKey {
case clientX, clientY, width, height, depth, backOffset, transform, rotationAnchor, opacity, visible, scrollWithParent, zIndex, parent, enableGesture, enableTapGesture, enableDragGesture, enableDragEndGesture, enableRotateStartGesture, enableRotateGesture,enableRotateEndGesture,enableMagnifyStartGesture, enableMagnifyGesture, enableMagnifyEndGesture
case clientX, clientY, width, height, depth, backOffset, transform, rotationAnchor, opacity, visible, scrollWithParent, zIndex, parent, enableGesture, enableTapGesture, enableDragGesture, enableDragEndGesture, enableRotateStartGesture, enableRotateGesture, enableRotateEndGesture, enableMagnifyStartGesture, enableMagnifyGesture, enableMagnifyEndGesture
}

override func encode(to encoder: Encoder) throws {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,6 @@ struct SpatializedElementView<Content: View>: View {
let opacity = spatializedElement.opacity
let visible = spatializedElement.visible
let enableGesture = spatializedElement.enableGesture
let clip = spatializedElement.clip

let z = translation.z + (spatializedElement.zIndex * zOrderBias)
let smallOffset = z == 0.0 ? 0.0001 : 0
Expand All @@ -155,10 +154,7 @@ struct SpatializedElementView<Content: View>: View {
return proxy.transform(in: .named("SpatialScene"))!
} action: { _, new in
spatialScene.sendWebMsg(spatializedElement.id, SpatiaizedContainerTransform(detail: new))
}.if(clip, transform: { view in
view.clipped()
})

}
.frame(depth: 0, alignment: .back)
// use .offset(smallVal) to workaround for glassEffect not working and small width/height spatialDiv not working
.offset(z: smallOffset)
Expand Down