hi
Question is in the title.. do we already know the length of the vectors?
best regards
simd
RSS for tagsimd provides types and functions for small vector and matrix computations.
Posts under simd tag
4 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
I'm encountering an issue when trying to store a SIMD3<Float> in a SwiftData model. Since SIMD3<Float> already conforms to Codable, I expected it to work. However, attempting to store a single SIMD3<Float> crashes with the following error:
Fatal error: Unexpected property within Persisted Struct/Enum: Builtin.Vec4xFPIEEE32
Interestingly, storing an array of vectors, [SIMD3<Float>], works perfectly fine. The issue only arises when trying to store a single SIMD3<Float>.
I’m not looking for a workaround (I can break the vector into individual floats in a custom codable struct to get by) , but I’d like to understand why storing a codable SIMD3<Float> in SwiftData results in this crash. Is this a limitation of SwiftData, or is there something I’m missing about how vectors are handled?
Any insights would be greatly appreciated!
Hi, i want to place a object in 3d world space without the use of hittest or plane detection in ios swift code. Suggest the best method.
Now, I take the camera center matrix and use simd_mul to place the object, it works but the object gets placed at the centre of the mobile screen. I want to select the x and y positino on the screen 2d coordinate and place the object.
I tried using the unprojectpoint function, to get the AR scene world coordinate of the point i touch on the mobile screen. I get the x, y,z values, they are very close to the values from camera center matrix. When i try to replace the unprojectpoint values in the cameracenter matrix, i dont see a difference in the location of the placed object.
The below code always place object from center screen with specified depth, But i need to place object in user specified position(x,y) of the screen with depth.
2D pixel coordinate system of the renderer to the 3D world coordinate system of the scene.
/* Create a transform with a translation of 0.2 meters in front of the camera. */
var translation = matrix_identity_float4x4
translation.columns.3.z = -0.2
let transform = simd_mul(view.session.currentFrame.camera.transform, translation)
Refer from : [https://developer.apple.com/documentation/arkit/arskview/providing_2d_virtual_content_with_spritekit)
The code i used for replacing the camera center matrix with the unprojectpoint is
let vpWithZ = SCNVector3(x: 100.0, y: 100.0, z: -1.0)
let worldPoint = sceneView.unprojectPoint(vpWithZ)
var translation = matrix_identity_float4x4
translation.columns.3.z = Float(Depth)
var translation2 = sceneView.session.currentFrame!.camera.transform
translation2.columns.3.x = worldPoint.x
translation2.columns.3.y = worldPoint.y
translation2.columns.3.z = worldPoint.z
let new_transform = simd_mul(translation2, translation)
/* add object name you wanted in your project*/
let sphere = SCNSphere(radius: 0.03)
let objectNode = SCNNode(geometry: sphere)
objectNode.position = SCNVector3(x: transform.columns.3.x, y: transform.columns.3.y, z: transform.columns.3.z)
The below image shows outline of my idea.
I'm trying to decipher this roomplan api data output. Dimensions:
the simd3 is width and height and I think thickness in meters but the spacial information is not clear to me and I can't find any info on it. an insights on this?
*** CAPTURED ROOM OBJECTS ***
Walls:
Identifier: 9F4BEEBB-990C-42F3-A0BC-912E1F770877
Dimensions: SIMD3(5.800479, 2.4299998, 0.0)
Category: wall
Transform:
SIMD4(0.25821668, 0.0, 0.966087, 0.0)
SIMD4(0.0, 1.0, 0.0, 0.0)
SIMD4(-0.966087, 0.0, 0.2582167, 0.0)
SIMD4(2.463065, -0.27346277, -0.5366996, 1.0)
Identifier: A72544F5-068D-4F19-8FA4-60C1331003E3
Dimensions: SIMD3(2.28993, 2.4299998, 0.0)
Category: wall
Transform:
SIMD4(0.966087, 0.0, -0.2582166, 0.0)
SIMD4(0.0, 1.0, 0.0, 0.0)
SIMD4(0.25821656, 0.0, 0.966087, 0.0)
SIMD4(0.608039, -0.27346277, -3.0429342, 1.0)