Build Information
Failed to build JelloSwift, reference master (ce1dac
), with Swift 6.1 for Wasm on 29 May 2025 16:43:06 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi 2>&1
Build Log
28 | public var x: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
29 |
30 | /// The JFloat representation of this vector's y axis
31 | public var y: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
32 |
33 | /// Returns the angle in radians of this Vector2
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:12:15: error: type 'Vector2' does not conform to protocol 'Decodable'
10 |
11 | /// Represents a 2D vector
12 | public struct Vector2: VectorRepresentable, Equatable, CustomStringConvertible, Codable {
| `- error: type 'Vector2' does not conform to protocol 'Decodable'
13 |
14 | /// A zeroed-value Vector2
:
26 |
27 | /// The JFloat representation of this vector's x axis
28 | public var x: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
29 |
30 | /// The JFloat representation of this vector's y axis
31 | public var y: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
32 |
33 | /// Returns the angle in radians of this Vector2
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:93:24: error: cannot find type 'JFloat' in scope
91 | /// Inits a vector 2 with X and Y defined as a given float
92 | @inlinable
93 | public init(value: JFloat) {
| `- error: cannot find type 'JFloat' in scope
94 | x = value
95 | y = value
/host/spi-builder-workspace/Sources/Body.swift:50:28: error: cannot find type 'JFloat' in scope
48 | /// 1 never decelerates. Values outside the range [0, 1] inclusive may
49 | /// introduce instability
50 | public var velDamping: JFloat = 0.999
| `- error: cannot find type 'JFloat' in scope
51 |
52 | /// The array of body components for this body object
/host/spi-builder-workspace/Sources/Body.swift:63:47: error: cannot find type 'JFloat' in scope
61 |
62 | /// The derived rotation of the body, in radians
63 | public fileprivate(set) var derivedAngle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
64 |
65 | /// Omega (ω) is the relative angular speed of the body, in radians/s
/host/spi-builder-workspace/Sources/Body.swift:66:47: error: cannot find type 'JFloat' in scope
64 |
65 | /// Omega (ω) is the relative angular speed of the body, in radians/s
66 | public fileprivate(set) var derivedOmega: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
67 |
68 | // Utilize to calculate the omega for the body
/host/spi-builder-workspace/Sources/Body.swift:69:32: error: cannot find type 'JFloat' in scope
67 |
68 | // Utilize to calculate the omega for the body
69 | fileprivate var lastAngle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
70 |
71 | /// Gets a list of vertices that represents the current position of each
/host/spi-builder-workspace/Sources/Body.swift:143:23: error: cannot find type 'JFloat' in scope
141 | world: World? = nil,
142 | shape: ClosedShape,
143 | pointMasses: [JFloat] = [1],
| `- error: cannot find type 'JFloat' in scope
144 | position: Vector2 = Vector2.zero,
145 | angle: JFloat = 0,
/host/spi-builder-workspace/Sources/Body.swift:145:16: error: cannot find type 'JFloat' in scope
143 | pointMasses: [JFloat] = [1],
144 | position: Vector2 = Vector2.zero,
145 | angle: JFloat = 0,
| `- error: cannot find type 'JFloat' in scope
146 | scale: Vector2 = Vector2.unit,
147 | kinematic: Bool = false,
/host/spi-builder-workspace/Sources/Body.swift:305:39: error: cannot find type 'JFloat' in scope
303 | /// - parameter forceUpdate:
304 | /// Whether to force the update of the body, even if it's a static body.
305 | public func updateAABB(_ elapsed: JFloat, forceUpdate: Bool) {
| `- error: cannot find type 'JFloat' in scope
306 | guard !isStatic || forceUpdate else {
307 | return
/host/spi-builder-workspace/Sources/Body.swift:361:36: error: cannot find type 'JFloat' in scope
359 |
360 | /// Sets the mass for all the PointMass objects in this body.
361 | public func setMassAll(_ mass: JFloat) {
| `- error: cannot find type 'JFloat' in scope
362 | for i in 0..<pointMasses.count {
363 | pointMasses[i].mass = mass
/host/spi-builder-workspace/Sources/Body.swift:370:63: error: cannot find type 'JFloat' in scope
368 |
369 | /// Sets the mass for a single PointMass individually.
370 | public func setMassForPointMass(atIndex index: Int, mass: JFloat) {
| `- error: cannot find type 'JFloat' in scope
371 | pointMasses[index].mass = mass
372 |
/host/spi-builder-workspace/Sources/Body.swift:381:43: error: cannot find type 'JFloat' in scope
379 | /// sets up to the count of masses in the array, if larger, it sets the
380 | /// matching masses for all point masses, and ignores the rest of the array.
381 | public func setMass(fromList masses: [JFloat]) {
| `- error: cannot find type 'JFloat' in scope
382 | for (mass, i) in zip(masses, 0..<pointMasses.count) {
383 | pointMasses[i].mass = mass
/host/spi-builder-workspace/Sources/Body.swift:394:57: error: cannot find type 'JFloat' in scope
392 | /// Setting the position and angle resets the current shape to the original
393 | /// base shape of the object.
394 | public func setPositionAngle(_ pos: Vector2, angle: JFloat, scale: Vector2) {
| `- error: cannot find type 'JFloat' in scope
395 | let matrix = Vector2.matrix(scalingBy: scale, rotatingBy: angle, translatingBy: pos)
396 |
/host/spi-builder-workspace/Sources/Body.swift:424:51: error: cannot find type 'JFloat' in scope
422 | /// call this. Instead you can just access the `derivedPosition`, `DerivedAngle`,
423 | /// `derivedVelocity`, and `derivedOmega` properties.
424 | public func derivePositionAndAngle(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
425 | // No need if this is a static body, or kinematically controlled.
426 | if isStatic || isKinematic {
/host/spi-builder-workspace/Sources/Body.swift:522:38: error: cannot find type 'JFloat' in scope
520 | /// Integrates the point masses for this Body.
521 | /// Ignored, if body is static.
522 | public func integrate(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
523 | if isStatic {
524 | return
/host/spi-builder-workspace/Sources/Body.swift:536:43: error: cannot find type 'JFloat' in scope
534 | /// Applies the velocity damping to the point masses.
535 | /// Ignored, if body is static.
536 | public func dampenVelocity(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
537 | if isStatic {
538 | return
/host/spi-builder-workspace/Sources/Body.swift:550:39: error: cannot find type 'JFloat' in scope
548 | /// Applies a rotational clockwise torque of a given force on this body.
549 | /// Ignored, if body is static.
550 | public func applyTorque(of force: JFloat) {
| `- error: cannot find type 'JFloat' in scope
551 | if isStatic {
552 | return
/host/spi-builder-workspace/Sources/Body.swift:569:43: error: cannot find type 'JFloat' in scope
567 | /// The method keeps the average velocity of the point masses the same during
568 | /// the procedure.
569 | public func setAngularVelocity(_ vel: JFloat) {
| `- error: cannot find type 'JFloat' in scope
570 | if isStatic {
571 | return
/host/spi-builder-workspace/Sources/Body.swift:583:43: error: cannot find type 'JFloat' in scope
581 |
582 | /// Accumulates the angular velocity for this body
583 | public func addAngularVelocity(_ vel: JFloat) {
| `- error: cannot find type 'JFloat' in scope
584 | if isStatic {
585 | return
/host/spi-builder-workspace/Sources/Body.swift:743:54: error: cannot find type 'JFloat' in scope
741 | to pt: Vector2,
742 | onEdge edgeNum: Int
743 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
744 | assert(pointMasses.count > 0)
745 |
/host/spi-builder-workspace/Sources/Body.swift:743:72: error: cannot find type 'JFloat' in scope
741 | to pt: Vector2,
742 | onEdge edgeNum: Int
743 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
744 | assert(pointMasses.count > 0)
745 |
/host/spi-builder-workspace/Sources/Body.swift:810:54: error: cannot find type 'JFloat' in scope
808 | to pt: Vector2,
809 | onEdge edgeNum: Int
810 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
811 | let result = closestPointSquared(to: pt, onEdge: edgeNum)
812 |
/host/spi-builder-workspace/Sources/Body.swift:810:72: error: cannot find type 'JFloat' in scope
808 | to pt: Vector2,
809 | onEdge edgeNum: Int
810 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
811 | let result = closestPointSquared(to: pt, onEdge: edgeNum)
812 |
/host/spi-builder-workspace/Sources/Body.swift:835:80: error: cannot find type 'JFloat' in scope
833 | public func closestPoint(
834 | to pt: Vector2
835 | ) -> (hitPoint: Vector2, normal: Vector2, pointA: Int, pointB: Int, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
836 | assert(pointMasses.count > 0)
837 |
/host/spi-builder-workspace/Sources/Body.swift:835:98: error: cannot find type 'JFloat' in scope
833 | public func closestPoint(
834 | to pt: Vector2
835 | ) -> (hitPoint: Vector2, normal: Vector2, pointA: Int, pointB: Int, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
836 | assert(pointMasses.count > 0)
837 |
/host/spi-builder-workspace/Sources/Body.swift:891:45: error: cannot find type 'JFloat' in scope
889 | to pt: Vector2,
890 | withTolerance tolerance: JFloat = JFloat.infinity
891 | ) -> (edgePosition: Vector2, edgeRatio: JFloat, edgePoint1: Int, edgePoint2: Int)? {
| `- error: cannot find type 'JFloat' in scope
892 | if edges.count == 0 || pointMasses.count == 0 {
893 | return nil
/host/spi-builder-workspace/Sources/Body.swift:890:34: error: cannot find type 'JFloat' in scope
888 | public func closestEdge(
889 | to pt: Vector2,
890 | withTolerance tolerance: JFloat = JFloat.infinity
| `- error: cannot find type 'JFloat' in scope
891 | ) -> (edgePosition: Vector2, edgeRatio: JFloat, edgePoint1: Int, edgePoint2: Int)? {
892 | if edges.count == 0 || pointMasses.count == 0 {
/host/spi-builder-workspace/Sources/Body.swift:936:77: error: cannot find type 'JFloat' in scope
934 | /// Find the closest PointMass index in this body, given a global point
935 | /// - precondition: There is at least one point mass in this body
936 | public func closestPointMass(to pos: Vector2) -> (point: Int, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
937 | assert(pointMasses.count > 0)
938 |
/host/spi-builder-workspace/Sources/BodyEdge.swift:36:24: error: cannot find type 'JFloat' in scope
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
37 |
38 | /// The edge's length, squared
/host/spi-builder-workspace/Sources/BodyEdge.swift:39:31: error: cannot find type 'JFloat' in scope
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
40 |
41 | public init() {
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: error: type 'BodyEdge' does not conform to protocol 'Decodable'
8 |
9 | /// Contains information about the edge of a body
10 | public struct BodyEdge: Codable {
| `- error: type 'BodyEdge' does not conform to protocol 'Decodable'
11 |
12 | /// The index of the edge on the body
:
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
40 |
41 | public init() {
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: error: type 'BodyEdge' does not conform to protocol 'Decodable'
8 |
9 | /// Contains information about the edge of a body
10 | public struct BodyEdge: Codable {
| `- error: type 'BodyEdge' does not conform to protocol 'Decodable'
11 |
12 | /// The index of the edge on the body
:
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
40 |
41 | public init() {
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:284:45: error: cannot find type 'JFloat' in scope
282 |
283 | @inlinable
284 | static public func %(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
285 | return Vector2(x: lhs.x.truncatingRemainder(dividingBy: rhs),
286 | y: lhs.y.truncatingRemainder(dividingBy: rhs))
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:274:46: error: cannot find type 'JFloat' in scope
272 |
273 | @inlinable
274 | static public func % (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
275 | return Vector3(
276 | x: lhs.x.truncatingRemainder(dividingBy: rhs),
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:264:45: error: cannot find type 'JFloat' in scope
262 | // JFloat interaction
263 | @inlinable
264 | static public func +(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
265 | return Vector2(x: lhs.x + rhs, y: lhs.y + rhs)
266 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:254:46: error: cannot find type 'JFloat' in scope
252 | // JFloat interaction
253 | @inlinable
254 | static public func + (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
255 | return Vector3(x: lhs.x + rhs, y: lhs.y + rhs, z: lhs.z + rhs)
256 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:274:45: error: cannot find type 'JFloat' in scope
272 |
273 | @inlinable
274 | static public func *(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
275 | return Vector2(x: lhs.x * rhs, y: lhs.y * rhs)
276 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:264:46: error: cannot find type 'JFloat' in scope
262 |
263 | @inlinable
264 | static public func * (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
265 | return Vector3(x: lhs.x * rhs, y: lhs.y * rhs, z: lhs.z * rhs)
266 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:349:27: error: cannot find type 'JFloat' in scope
347 | static public func matrix(
348 | scalingBy scale: Vector2 = Vector2.unit,
349 | rotatingBy angle: JFloat = 0,
| `- error: cannot find type 'JFloat' in scope
350 | translatingBy translate: Vector2 = Vector2.zero
351 | ) -> Matrix3x3 {
/host/spi-builder-workspace/Sources/Geometry/ClosedShape.swift:150:25: error: cannot find type 'JFloat' in scope
148 | _ target: inout [Vector2],
149 | worldPos: Vector2,
150 | angleInRadians: JFloat,
| `- error: cannot find type 'JFloat' in scope
151 | localScale: Vector2 = Vector2.unit
152 | ) {
/host/spi-builder-workspace/Sources/PointMass.swift:16:22: error: cannot find type 'JFloat' in scope
14 | /// Values `< 0.2` usually cause inconsistency and instability in the
15 | /// simulation
16 | public var mass: JFloat = 1
| `- error: cannot find type 'JFloat' in scope
17 |
18 | /// The global position of the point, in world coordinates
/host/spi-builder-workspace/Sources/PointMass.swift:10:15: error: type 'PointMass' does not conform to protocol 'Decodable'
8 |
9 | /// Specifies a point mass that composes a body
10 | public struct PointMass: Codable, VectorRepresentable {
| `- error: type 'PointMass' does not conform to protocol 'Decodable'
11 | /// The mass of this point mass.
12 | /// Leave this value always `> 0` to maintain consistency on the simulation,
:
14 | /// Values `< 0.2` usually cause inconsistency and instability in the
15 | /// simulation
16 | public var mass: JFloat = 1
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
17 |
18 | /// The global position of the point, in world coordinates
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/PointMass.swift:10:15: error: type 'PointMass' does not conform to protocol 'Decodable'
8 |
9 | /// Specifies a point mass that composes a body
10 | public struct PointMass: Codable, VectorRepresentable {
| `- error: type 'PointMass' does not conform to protocol 'Decodable'
11 | /// The mass of this point mass.
12 | /// Leave this value always `> 0` to maintain consistency on the simulation,
:
14 | /// Values `< 0.2` usually cause inconsistency and instability in the
15 | /// simulation
16 | public var mass: JFloat = 1
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
17 |
18 | /// The global position of the point, in world coordinates
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/PointMass.swift:35:23: error: cannot find type 'JFloat' in scope
33 | }
34 |
35 | public init(mass: JFloat = 0, position: Vector2 = Vector2.zero) {
| `- error: cannot find type 'JFloat' in scope
36 | self.mass = mass
37 | self.position = position
/host/spi-builder-workspace/Sources/Body.swift:445:20: error: cannot find type 'JFloat' in scope
443 |
444 | // find the average angle of all of the masses.
445 | var angle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
446 |
447 | var originalSign = 1
/host/spi-builder-workspace/Sources/Body.swift:448:28: error: cannot find type 'JFloat' in scope
446 |
447 | var originalSign = 1
448 | var originalAngle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
449 |
450 | let c = pointMasses.count
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:221:59: error: cannot find type 'JFloat' in scope
219 | /// See `Vector2.dot`
220 | @inlinable
221 | static public func •(lhs: Vector2, rhs: Vector2) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
222 | return lhs.dot(rhs)
223 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:208:60: error: cannot find type 'JFloat' in scope
206 | /// See `Vector3.dot`
207 | @inlinable
208 | static public func • (lhs: Vector3, rhs: Vector3) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
209 | return lhs.dot(rhs)
210 | }
/host/spi-builder-workspace/Sources/Body.swift:467:33: error: reference to member 'pi' cannot be resolved without a contextual type
465 | let thisSign = (thisAngle >= 0.0) ? 1 : -1
466 |
467 | if abs(diff) > .pi && (thisSign != originalSign) {
| `- error: reference to member 'pi' cannot be resolved without a contextual type
468 | if thisSign == -1 {
469 | thisAngle = .pi + (.pi + thisAngle)
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:316:52: error: cannot find type 'JFloat' in scope
314 | // JFloat interaction
315 | @inlinable
316 | static public func +=(lhs: inout Vector2, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
317 | lhs = lhs + rhs
318 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:309:53: error: cannot find type 'JFloat' in scope
307 | // JFloat interaction
308 | @inlinable
309 | static public func += (lhs: inout Vector3, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
310 | lhs = lhs + rhs
311 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:328:52: error: cannot find type 'JFloat' in scope
326 | }
327 | @inlinable
328 | static public func /=(lhs: inout Vector2, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
329 | lhs = lhs / rhs
330 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:321:53: error: cannot find type 'JFloat' in scope
319 | }
320 | @inlinable
321 | static public func /= (lhs: inout Vector3, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
322 | lhs = lhs / rhs
323 | }
/host/spi-builder-workspace/Sources/Body.swift:479:18: error: cannot find 'JFloat' in scope
477 | }
478 |
479 | angle /= JFloat(c)
| `- error: cannot find 'JFloat' in scope
480 |
481 | derivedAngle = angle
/host/spi-builder-workspace/Sources/Body.swift:486:59: error: binary operator '>=' cannot be applied to operands of type 'Matrix3x3' and '_'
484 | var angleChange = (derivedAngle - lastAngle)
485 |
486 | if (angleChange < 0 ? -angleChange : angleChange) >= .pi {
| `- error: binary operator '>=' cannot be applied to operands of type 'Matrix3x3' and '_'
487 | if angleChange < 0 {
488 | angleChange = angleChange + (.pi * 2)
/host/spi-builder-workspace/Sources/Body.swift:486:63: error: reference to member 'pi' cannot be resolved without a contextual type
484 | var angleChange = (derivedAngle - lastAngle)
485 |
486 | if (angleChange < 0 ? -angleChange : angleChange) >= .pi {
| `- error: reference to member 'pi' cannot be resolved without a contextual type
487 | if angleChange < 0 {
488 | angleChange = angleChange + (.pi * 2)
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:279:45: error: cannot find type 'JFloat' in scope
277 |
278 | @inlinable
279 | static public func /(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
280 | return Vector2(x: lhs.x / rhs, y: lhs.y / rhs)
281 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:290:31: error: cannot find type 'JFloat' in scope
288 |
289 | @inlinable
290 | static public func /(lhs: JFloat, rhs: Vector2) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
291 | return Vector2(x: lhs / rhs.x, y: lhs / rhs.y)
292 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:269:46: error: cannot find type 'JFloat' in scope
267 |
268 | @inlinable
269 | static public func / (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
270 | return Vector3(x: lhs.x / rhs, y: lhs.y / rhs, z: lhs.z / rhs)
271 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:283:32: error: cannot find type 'JFloat' in scope
281 |
282 | @inlinable
283 | static public func / (lhs: JFloat, rhs: Vector3) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
284 | return Vector3(x: lhs / rhs.x, y: lhs / rhs.y, z: lhs / rhs.z)
285 | }
/host/spi-builder-workspace/Sources/PointMass.swift:45:47: error: cannot find type 'JFloat' in scope
43 | /// seconds
44 | @inlinable
45 | public mutating func integrate(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
46 | if mass.isFinite {
47 | let elapsedMass = elapsed / mass
/host/spi-builder-workspace/Sources/Body.swift:544:13: error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
542 | let pointMass = pointMasses[i]
543 |
544 | applyVelocity(-(pointMass.velocity - (pointMass.velocity * velDamping)) * (elapsed * 200), toPointMassAt: i)
| `- error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
545 | }
546 | }
/host/spi-builder-workspace/Sources/Geometry/AABB.swift:53:22: error: cannot find type 'JFloat' in scope
51 | /// Gets the middle X position of this AABB
52 | @inlinable
53 | public var midX: JFloat {
| `- error: cannot find type 'JFloat' in scope
54 | return (minimum.x + maximum.x) / 2
55 | }
/host/spi-builder-workspace/Sources/Body.swift:638:56: error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
636 | // this line crosses the test line at some point... does it
637 | // do so within our test range?
638 | let slope = (edgeEnd.x - edgeSt.x) / (edgeEnd.y - edgeSt.y)
| `- error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
639 | let hitX = edgeSt.x + ((pt.y - edgeSt.y) * slope)
640 |
Swift.DurationProtocol:2:17: note: where 'Self' = 'Matrix3x3'
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public protocol DurationProtocol : AdditiveArithmetic, Comparable, Sendable {
| `- note: where 'Self' = 'Matrix3x3'
3 | static func / (lhs: Self, rhs: Int) -> Self
4 | static func /= (lhs: inout Self, rhs: Int)
/host/spi-builder-workspace/Sources/Body.swift:665:56: error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
663 | // this line crosses the test line at some point... does it
664 | // do so within our test range?
665 | let slope = (edgeEnd.x - edgeSt.x) / (edgeEnd.y - edgeSt.y)
| `- error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
666 | let hitX = edgeSt.x + ((pt.y - edgeSt.y) * slope)
667 |
Swift.DurationProtocol:2:17: note: where 'Self' = 'Matrix3x3'
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public protocol DurationProtocol : AdditiveArithmetic, Comparable, Sendable {
| `- note: where 'Self' = 'Matrix3x3'
3 | static func / (lhs: Self, rhs: Int) -> Self
4 | static func /= (lhs: inout Self, rhs: Int)
/host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift:35:27: error: cannot find type 'JFloat' in scope
33 | lineA: (start: Vector2, end: Vector2),
34 | lineB: (start: Vector2, end: Vector2)
35 | ) -> (hitPt: Vector2, Ua: JFloat, Ub: JFloat)? {
| `- error: cannot find type 'JFloat' in scope
36 | let denom = ((lineB.end.y - lineB.start.y) * (lineA.end.x - lineA.start.x)) - ((lineB.end.x - lineB.start.x) * (lineA.end.y - lineA.start.y))
37 |
/host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift:35:39: error: cannot find type 'JFloat' in scope
33 | lineA: (start: Vector2, end: Vector2),
34 | lineB: (start: Vector2, end: Vector2)
35 | ) -> (hitPt: Vector2, Ua: JFloat, Ub: JFloat)? {
| `- error: cannot find type 'JFloat' in scope
36 | let denom = ((lineB.end.y - lineB.start.y) * (lineA.end.x - lineA.start.x)) - ((lineB.end.x - lineB.start.x) * (lineA.end.y - lineA.start.y))
37 |
/host/spi-builder-workspace/Sources/Body.swift:748:20: error: cannot find type 'JFloat' in scope
746 | var hitPt: Vector2 = .zero
747 | var normal: Vector2 = .zero
748 | var edgeD: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
749 |
750 | var dist: JFloat = 0
/host/spi-builder-workspace/Sources/Body.swift:750:19: error: cannot find type 'JFloat' in scope
748 | var edgeD: JFloat = 0
749 |
750 | var dist: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
751 |
752 | let edge = edges[edgeNum]
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:108:53: error: cannot find type 'JFloat' in scope
106 | /// Returns the distance squared between this Vector2 and another Vector2
107 | @inlinable
108 | public func distanceSquared(to vec: Vector2) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
109 | let d = self - vec
110 |
/host/spi-builder-workspace/Sources/Body.swift:840:20: error: cannot find type 'JFloat' in scope
838 | var pointA = -1
839 | var pointB = -1
840 | var edgeD: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
841 | var normal: Vector2 = .zero
842 | var hitPt: Vector2 = .zero
/host/spi-builder-workspace/Sources/Body.swift:844:24: error: cannot find 'JFloat' in scope
842 | var hitPt: Vector2 = .zero
843 |
844 | var closestD = JFloat.infinity
| `- error: cannot find 'JFloat' in scope
845 |
846 | let c = pointMasses.count
/host/spi-builder-workspace/Sources/Body.swift:900:24: error: cannot find type 'JFloat' in scope
898 | var closestP2 = 0// closestP1
899 | var edgePosition = Vector2.zero
900 | var edgeRatio: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
901 | var closestD = JFloat.infinity
902 |
/host/spi-builder-workspace/Sources/Body.swift:901:24: error: cannot find 'JFloat' in scope
899 | var edgePosition = Vector2.zero
900 | var edgeRatio: JFloat = 0
901 | var closestD = JFloat.infinity
| `- error: cannot find 'JFloat' in scope
902 |
903 | for edge in edges {
/host/spi-builder-workspace/Sources/Body.swift:939:26: error: cannot find 'JFloat' in scope
937 | assert(pointMasses.count > 0)
938 |
939 | var closestSQD = JFloat.greatestFiniteMagnitude
| `- error: cannot find 'JFloat' in scope
940 | var closest: Int!
941 |
/host/spi-builder-workspace/Sources/BodyCollisionInformation.swift:29:23: error: cannot find type 'JFloat' in scope
27 | /// A value from 0 - 1 specifying at which point in the edge
28 | /// bodyBpmA - bodyBpmB is the penetration occurring.
29 | public var edgeD: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
30 | /// Global normal for the collision. Always the penetrated edge's normal.
31 | public var normal = Vector2.zero
/host/spi-builder-workspace/Sources/BodyCollisionInformation.swift:34:29: error: cannot find type 'JFloat' in scope
32 | /// Penetration distance.
33 | /// Is the distance required to move bodyApm in order to solve the collision
34 | public var penetration: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
35 |
36 | /// Inits this collision information with no edge information.
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: error: type 'BodyEdge' does not conform to protocol 'Encodable'
8 |
9 | /// Contains information about the edge of a body
10 | public struct BodyEdge: Codable {
| `- error: type 'BodyEdge' does not conform to protocol 'Encodable'
11 |
12 | /// The index of the edge on the body
:
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- note: cannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- note: cannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'
40 |
41 | public init() {
Swift.Encodable.encode:2:6: note: protocol requires function 'encode(to:)' with type 'Encodable'
1 | protocol Encodable {
2 | func encode(to encoder: any Encoder) throws}
| `- note: protocol requires function 'encode(to:)' with type 'Encodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:100:46: error: cannot find type 'JFloat' in scope
98 | /// Returns the distance between this Vector2 and another Vector2
99 | @inlinable
100 | public func distance(to vec: Vector2) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
101 | let d = self - vec
102 |
[33/36] Compiling JelloSwift Body.swift
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:269:45: error: cannot find type 'JFloat' in scope
267 |
268 | @inlinable
269 | static public func -(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
270 | return Vector2(x: lhs.x - rhs, y: lhs.y - rhs)
271 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:259:46: error: cannot find type 'JFloat' in scope
257 |
258 | @inlinable
259 | static public func - (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
260 | return Vector3(x: lhs.x - rhs, y: lhs.y - rhs, z: lhs.z - rhs)
261 | }
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:5:31: error: cannot find type 'JFloat' in scope
3 | /// Plain 3-row 3-column Matrix with real components.
4 | public struct Matrix3x3: CustomStringConvertible {
5 | public typealias Scalar = JFloat
| `- error: cannot find type 'JFloat' in scope
6 |
7 | /// Returns a 3x3 [identity matrix].
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:28:19: error: cannot find type 'JFloat' in scope
26 |
27 | /// The JFloat representation of this vector's x axis
28 | public var x: JFloat
| `- error: cannot find type 'JFloat' in scope
29 |
30 | /// The JFloat representation of this vector's y axis
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:31:19: error: cannot find type 'JFloat' in scope
29 |
30 | /// The JFloat representation of this vector's y axis
31 | public var y: JFloat
| `- error: cannot find type 'JFloat' in scope
32 |
33 | /// Returns the angle in radians of this Vector2
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:12:15: error: type 'Vector2' does not conform to protocol 'Decodable'
10 |
11 | /// Represents a 2D vector
12 | public struct Vector2: VectorRepresentable, Equatable, CustomStringConvertible, Codable {
| `- error: type 'Vector2' does not conform to protocol 'Decodable'
13 |
14 | /// A zeroed-value Vector2
:
26 |
27 | /// The JFloat representation of this vector's x axis
28 | public var x: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
29 |
30 | /// The JFloat representation of this vector's y axis
31 | public var y: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
32 |
33 | /// Returns the angle in radians of this Vector2
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:12:15: error: type 'Vector2' does not conform to protocol 'Decodable'
10 |
11 | /// Represents a 2D vector
12 | public struct Vector2: VectorRepresentable, Equatable, CustomStringConvertible, Codable {
| `- error: type 'Vector2' does not conform to protocol 'Decodable'
13 |
14 | /// A zeroed-value Vector2
:
26 |
27 | /// The JFloat representation of this vector's x axis
28 | public var x: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
29 |
30 | /// The JFloat representation of this vector's y axis
31 | public var y: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
32 |
33 | /// Returns the angle in radians of this Vector2
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:93:24: error: cannot find type 'JFloat' in scope
91 | /// Inits a vector 2 with X and Y defined as a given float
92 | @inlinable
93 | public init(value: JFloat) {
| `- error: cannot find type 'JFloat' in scope
94 | x = value
95 | y = value
/host/spi-builder-workspace/Sources/Body.swift:50:28: error: cannot find type 'JFloat' in scope
48 | /// 1 never decelerates. Values outside the range [0, 1] inclusive may
49 | /// introduce instability
50 | public var velDamping: JFloat = 0.999
| `- error: cannot find type 'JFloat' in scope
51 |
52 | /// The array of body components for this body object
/host/spi-builder-workspace/Sources/Body.swift:63:47: error: cannot find type 'JFloat' in scope
61 |
62 | /// The derived rotation of the body, in radians
63 | public fileprivate(set) var derivedAngle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
64 |
65 | /// Omega (ω) is the relative angular speed of the body, in radians/s
/host/spi-builder-workspace/Sources/Body.swift:66:47: error: cannot find type 'JFloat' in scope
64 |
65 | /// Omega (ω) is the relative angular speed of the body, in radians/s
66 | public fileprivate(set) var derivedOmega: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
67 |
68 | // Utilize to calculate the omega for the body
/host/spi-builder-workspace/Sources/Body.swift:69:32: error: cannot find type 'JFloat' in scope
67 |
68 | // Utilize to calculate the omega for the body
69 | fileprivate var lastAngle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
70 |
71 | /// Gets a list of vertices that represents the current position of each
/host/spi-builder-workspace/Sources/Body.swift:143:23: error: cannot find type 'JFloat' in scope
141 | world: World? = nil,
142 | shape: ClosedShape,
143 | pointMasses: [JFloat] = [1],
| `- error: cannot find type 'JFloat' in scope
144 | position: Vector2 = Vector2.zero,
145 | angle: JFloat = 0,
/host/spi-builder-workspace/Sources/Body.swift:145:16: error: cannot find type 'JFloat' in scope
143 | pointMasses: [JFloat] = [1],
144 | position: Vector2 = Vector2.zero,
145 | angle: JFloat = 0,
| `- error: cannot find type 'JFloat' in scope
146 | scale: Vector2 = Vector2.unit,
147 | kinematic: Bool = false,
/host/spi-builder-workspace/Sources/Body.swift:305:39: error: cannot find type 'JFloat' in scope
303 | /// - parameter forceUpdate:
304 | /// Whether to force the update of the body, even if it's a static body.
305 | public func updateAABB(_ elapsed: JFloat, forceUpdate: Bool) {
| `- error: cannot find type 'JFloat' in scope
306 | guard !isStatic || forceUpdate else {
307 | return
/host/spi-builder-workspace/Sources/Body.swift:361:36: error: cannot find type 'JFloat' in scope
359 |
360 | /// Sets the mass for all the PointMass objects in this body.
361 | public func setMassAll(_ mass: JFloat) {
| `- error: cannot find type 'JFloat' in scope
362 | for i in 0..<pointMasses.count {
363 | pointMasses[i].mass = mass
/host/spi-builder-workspace/Sources/Body.swift:370:63: error: cannot find type 'JFloat' in scope
368 |
369 | /// Sets the mass for a single PointMass individually.
370 | public func setMassForPointMass(atIndex index: Int, mass: JFloat) {
| `- error: cannot find type 'JFloat' in scope
371 | pointMasses[index].mass = mass
372 |
/host/spi-builder-workspace/Sources/Body.swift:381:43: error: cannot find type 'JFloat' in scope
379 | /// sets up to the count of masses in the array, if larger, it sets the
380 | /// matching masses for all point masses, and ignores the rest of the array.
381 | public func setMass(fromList masses: [JFloat]) {
| `- error: cannot find type 'JFloat' in scope
382 | for (mass, i) in zip(masses, 0..<pointMasses.count) {
383 | pointMasses[i].mass = mass
/host/spi-builder-workspace/Sources/Body.swift:394:57: error: cannot find type 'JFloat' in scope
392 | /// Setting the position and angle resets the current shape to the original
393 | /// base shape of the object.
394 | public func setPositionAngle(_ pos: Vector2, angle: JFloat, scale: Vector2) {
| `- error: cannot find type 'JFloat' in scope
395 | let matrix = Vector2.matrix(scalingBy: scale, rotatingBy: angle, translatingBy: pos)
396 |
/host/spi-builder-workspace/Sources/Body.swift:424:51: error: cannot find type 'JFloat' in scope
422 | /// call this. Instead you can just access the `derivedPosition`, `DerivedAngle`,
423 | /// `derivedVelocity`, and `derivedOmega` properties.
424 | public func derivePositionAndAngle(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
425 | // No need if this is a static body, or kinematically controlled.
426 | if isStatic || isKinematic {
/host/spi-builder-workspace/Sources/Body.swift:522:38: error: cannot find type 'JFloat' in scope
520 | /// Integrates the point masses for this Body.
521 | /// Ignored, if body is static.
522 | public func integrate(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
523 | if isStatic {
524 | return
/host/spi-builder-workspace/Sources/Body.swift:536:43: error: cannot find type 'JFloat' in scope
534 | /// Applies the velocity damping to the point masses.
535 | /// Ignored, if body is static.
536 | public func dampenVelocity(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
537 | if isStatic {
538 | return
/host/spi-builder-workspace/Sources/Body.swift:550:39: error: cannot find type 'JFloat' in scope
548 | /// Applies a rotational clockwise torque of a given force on this body.
549 | /// Ignored, if body is static.
550 | public func applyTorque(of force: JFloat) {
| `- error: cannot find type 'JFloat' in scope
551 | if isStatic {
552 | return
/host/spi-builder-workspace/Sources/Body.swift:569:43: error: cannot find type 'JFloat' in scope
567 | /// The method keeps the average velocity of the point masses the same during
568 | /// the procedure.
569 | public func setAngularVelocity(_ vel: JFloat) {
| `- error: cannot find type 'JFloat' in scope
570 | if isStatic {
571 | return
/host/spi-builder-workspace/Sources/Body.swift:583:43: error: cannot find type 'JFloat' in scope
581 |
582 | /// Accumulates the angular velocity for this body
583 | public func addAngularVelocity(_ vel: JFloat) {
| `- error: cannot find type 'JFloat' in scope
584 | if isStatic {
585 | return
/host/spi-builder-workspace/Sources/Body.swift:743:54: error: cannot find type 'JFloat' in scope
741 | to pt: Vector2,
742 | onEdge edgeNum: Int
743 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
744 | assert(pointMasses.count > 0)
745 |
/host/spi-builder-workspace/Sources/Body.swift:743:72: error: cannot find type 'JFloat' in scope
741 | to pt: Vector2,
742 | onEdge edgeNum: Int
743 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
744 | assert(pointMasses.count > 0)
745 |
/host/spi-builder-workspace/Sources/Body.swift:810:54: error: cannot find type 'JFloat' in scope
808 | to pt: Vector2,
809 | onEdge edgeNum: Int
810 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
811 | let result = closestPointSquared(to: pt, onEdge: edgeNum)
812 |
/host/spi-builder-workspace/Sources/Body.swift:810:72: error: cannot find type 'JFloat' in scope
808 | to pt: Vector2,
809 | onEdge edgeNum: Int
810 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
811 | let result = closestPointSquared(to: pt, onEdge: edgeNum)
812 |
/host/spi-builder-workspace/Sources/Body.swift:835:80: error: cannot find type 'JFloat' in scope
833 | public func closestPoint(
834 | to pt: Vector2
835 | ) -> (hitPoint: Vector2, normal: Vector2, pointA: Int, pointB: Int, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
836 | assert(pointMasses.count > 0)
837 |
/host/spi-builder-workspace/Sources/Body.swift:835:98: error: cannot find type 'JFloat' in scope
833 | public func closestPoint(
834 | to pt: Vector2
835 | ) -> (hitPoint: Vector2, normal: Vector2, pointA: Int, pointB: Int, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
836 | assert(pointMasses.count > 0)
837 |
/host/spi-builder-workspace/Sources/Body.swift:891:45: error: cannot find type 'JFloat' in scope
889 | to pt: Vector2,
890 | withTolerance tolerance: JFloat = JFloat.infinity
891 | ) -> (edgePosition: Vector2, edgeRatio: JFloat, edgePoint1: Int, edgePoint2: Int)? {
| `- error: cannot find type 'JFloat' in scope
892 | if edges.count == 0 || pointMasses.count == 0 {
893 | return nil
/host/spi-builder-workspace/Sources/Body.swift:890:34: error: cannot find type 'JFloat' in scope
888 | public func closestEdge(
889 | to pt: Vector2,
890 | withTolerance tolerance: JFloat = JFloat.infinity
| `- error: cannot find type 'JFloat' in scope
891 | ) -> (edgePosition: Vector2, edgeRatio: JFloat, edgePoint1: Int, edgePoint2: Int)? {
892 | if edges.count == 0 || pointMasses.count == 0 {
/host/spi-builder-workspace/Sources/Body.swift:936:77: error: cannot find type 'JFloat' in scope
934 | /// Find the closest PointMass index in this body, given a global point
935 | /// - precondition: There is at least one point mass in this body
936 | public func closestPointMass(to pos: Vector2) -> (point: Int, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
937 | assert(pointMasses.count > 0)
938 |
/host/spi-builder-workspace/Sources/BodyEdge.swift:36:24: error: cannot find type 'JFloat' in scope
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
37 |
38 | /// The edge's length, squared
/host/spi-builder-workspace/Sources/BodyEdge.swift:39:31: error: cannot find type 'JFloat' in scope
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
40 |
41 | public init() {
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: error: type 'BodyEdge' does not conform to protocol 'Decodable'
8 |
9 | /// Contains information about the edge of a body
10 | public struct BodyEdge: Codable {
| `- error: type 'BodyEdge' does not conform to protocol 'Decodable'
11 |
12 | /// The index of the edge on the body
:
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
40 |
41 | public init() {
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: error: type 'BodyEdge' does not conform to protocol 'Decodable'
8 |
9 | /// Contains information about the edge of a body
10 | public struct BodyEdge: Codable {
| `- error: type 'BodyEdge' does not conform to protocol 'Decodable'
11 |
12 | /// The index of the edge on the body
:
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
40 |
41 | public init() {
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:284:45: error: cannot find type 'JFloat' in scope
282 |
283 | @inlinable
284 | static public func %(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
285 | return Vector2(x: lhs.x.truncatingRemainder(dividingBy: rhs),
286 | y: lhs.y.truncatingRemainder(dividingBy: rhs))
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:274:46: error: cannot find type 'JFloat' in scope
272 |
273 | @inlinable
274 | static public func % (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
275 | return Vector3(
276 | x: lhs.x.truncatingRemainder(dividingBy: rhs),
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:264:45: error: cannot find type 'JFloat' in scope
262 | // JFloat interaction
263 | @inlinable
264 | static public func +(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
265 | return Vector2(x: lhs.x + rhs, y: lhs.y + rhs)
266 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:254:46: error: cannot find type 'JFloat' in scope
252 | // JFloat interaction
253 | @inlinable
254 | static public func + (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
255 | return Vector3(x: lhs.x + rhs, y: lhs.y + rhs, z: lhs.z + rhs)
256 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:274:45: error: cannot find type 'JFloat' in scope
272 |
273 | @inlinable
274 | static public func *(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
275 | return Vector2(x: lhs.x * rhs, y: lhs.y * rhs)
276 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:264:46: error: cannot find type 'JFloat' in scope
262 |
263 | @inlinable
264 | static public func * (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
265 | return Vector3(x: lhs.x * rhs, y: lhs.y * rhs, z: lhs.z * rhs)
266 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:349:27: error: cannot find type 'JFloat' in scope
347 | static public func matrix(
348 | scalingBy scale: Vector2 = Vector2.unit,
349 | rotatingBy angle: JFloat = 0,
| `- error: cannot find type 'JFloat' in scope
350 | translatingBy translate: Vector2 = Vector2.zero
351 | ) -> Matrix3x3 {
/host/spi-builder-workspace/Sources/Geometry/ClosedShape.swift:150:25: error: cannot find type 'JFloat' in scope
148 | _ target: inout [Vector2],
149 | worldPos: Vector2,
150 | angleInRadians: JFloat,
| `- error: cannot find type 'JFloat' in scope
151 | localScale: Vector2 = Vector2.unit
152 | ) {
/host/spi-builder-workspace/Sources/PointMass.swift:16:22: error: cannot find type 'JFloat' in scope
14 | /// Values `< 0.2` usually cause inconsistency and instability in the
15 | /// simulation
16 | public var mass: JFloat = 1
| `- error: cannot find type 'JFloat' in scope
17 |
18 | /// The global position of the point, in world coordinates
/host/spi-builder-workspace/Sources/PointMass.swift:10:15: error: type 'PointMass' does not conform to protocol 'Decodable'
8 |
9 | /// Specifies a point mass that composes a body
10 | public struct PointMass: Codable, VectorRepresentable {
| `- error: type 'PointMass' does not conform to protocol 'Decodable'
11 | /// The mass of this point mass.
12 | /// Leave this value always `> 0` to maintain consistency on the simulation,
:
14 | /// Values `< 0.2` usually cause inconsistency and instability in the
15 | /// simulation
16 | public var mass: JFloat = 1
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
17 |
18 | /// The global position of the point, in world coordinates
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/PointMass.swift:10:15: error: type 'PointMass' does not conform to protocol 'Decodable'
8 |
9 | /// Specifies a point mass that composes a body
10 | public struct PointMass: Codable, VectorRepresentable {
| `- error: type 'PointMass' does not conform to protocol 'Decodable'
11 | /// The mass of this point mass.
12 | /// Leave this value always `> 0` to maintain consistency on the simulation,
:
14 | /// Values `< 0.2` usually cause inconsistency and instability in the
15 | /// simulation
16 | public var mass: JFloat = 1
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
17 |
18 | /// The global position of the point, in world coordinates
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/PointMass.swift:35:23: error: cannot find type 'JFloat' in scope
33 | }
34 |
35 | public init(mass: JFloat = 0, position: Vector2 = Vector2.zero) {
| `- error: cannot find type 'JFloat' in scope
36 | self.mass = mass
37 | self.position = position
/host/spi-builder-workspace/Sources/Body.swift:445:20: error: cannot find type 'JFloat' in scope
443 |
444 | // find the average angle of all of the masses.
445 | var angle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
446 |
447 | var originalSign = 1
/host/spi-builder-workspace/Sources/Body.swift:448:28: error: cannot find type 'JFloat' in scope
446 |
447 | var originalSign = 1
448 | var originalAngle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
449 |
450 | let c = pointMasses.count
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:221:59: error: cannot find type 'JFloat' in scope
219 | /// See `Vector2.dot`
220 | @inlinable
221 | static public func •(lhs: Vector2, rhs: Vector2) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
222 | return lhs.dot(rhs)
223 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:208:60: error: cannot find type 'JFloat' in scope
206 | /// See `Vector3.dot`
207 | @inlinable
208 | static public func • (lhs: Vector3, rhs: Vector3) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
209 | return lhs.dot(rhs)
210 | }
/host/spi-builder-workspace/Sources/Body.swift:467:33: error: reference to member 'pi' cannot be resolved without a contextual type
465 | let thisSign = (thisAngle >= 0.0) ? 1 : -1
466 |
467 | if abs(diff) > .pi && (thisSign != originalSign) {
| `- error: reference to member 'pi' cannot be resolved without a contextual type
468 | if thisSign == -1 {
469 | thisAngle = .pi + (.pi + thisAngle)
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:316:52: error: cannot find type 'JFloat' in scope
314 | // JFloat interaction
315 | @inlinable
316 | static public func +=(lhs: inout Vector2, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
317 | lhs = lhs + rhs
318 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:309:53: error: cannot find type 'JFloat' in scope
307 | // JFloat interaction
308 | @inlinable
309 | static public func += (lhs: inout Vector3, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
310 | lhs = lhs + rhs
311 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:328:52: error: cannot find type 'JFloat' in scope
326 | }
327 | @inlinable
328 | static public func /=(lhs: inout Vector2, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
329 | lhs = lhs / rhs
330 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:321:53: error: cannot find type 'JFloat' in scope
319 | }
320 | @inlinable
321 | static public func /= (lhs: inout Vector3, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
322 | lhs = lhs / rhs
323 | }
/host/spi-builder-workspace/Sources/Body.swift:479:18: error: cannot find 'JFloat' in scope
477 | }
478 |
479 | angle /= JFloat(c)
| `- error: cannot find 'JFloat' in scope
480 |
481 | derivedAngle = angle
/host/spi-builder-workspace/Sources/Body.swift:486:59: error: binary operator '>=' cannot be applied to operands of type 'Matrix3x3' and '_'
484 | var angleChange = (derivedAngle - lastAngle)
485 |
486 | if (angleChange < 0 ? -angleChange : angleChange) >= .pi {
| `- error: binary operator '>=' cannot be applied to operands of type 'Matrix3x3' and '_'
487 | if angleChange < 0 {
488 | angleChange = angleChange + (.pi * 2)
/host/spi-builder-workspace/Sources/Body.swift:486:63: error: reference to member 'pi' cannot be resolved without a contextual type
484 | var angleChange = (derivedAngle - lastAngle)
485 |
486 | if (angleChange < 0 ? -angleChange : angleChange) >= .pi {
| `- error: reference to member 'pi' cannot be resolved without a contextual type
487 | if angleChange < 0 {
488 | angleChange = angleChange + (.pi * 2)
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:279:45: error: cannot find type 'JFloat' in scope
277 |
278 | @inlinable
279 | static public func /(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
280 | return Vector2(x: lhs.x / rhs, y: lhs.y / rhs)
281 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:290:31: error: cannot find type 'JFloat' in scope
288 |
289 | @inlinable
290 | static public func /(lhs: JFloat, rhs: Vector2) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
291 | return Vector2(x: lhs / rhs.x, y: lhs / rhs.y)
292 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:269:46: error: cannot find type 'JFloat' in scope
267 |
268 | @inlinable
269 | static public func / (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
270 | return Vector3(x: lhs.x / rhs, y: lhs.y / rhs, z: lhs.z / rhs)
271 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:283:32: error: cannot find type 'JFloat' in scope
281 |
282 | @inlinable
283 | static public func / (lhs: JFloat, rhs: Vector3) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
284 | return Vector3(x: lhs / rhs.x, y: lhs / rhs.y, z: lhs / rhs.z)
285 | }
/host/spi-builder-workspace/Sources/PointMass.swift:45:47: error: cannot find type 'JFloat' in scope
43 | /// seconds
44 | @inlinable
45 | public mutating func integrate(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
46 | if mass.isFinite {
47 | let elapsedMass = elapsed / mass
/host/spi-builder-workspace/Sources/Body.swift:544:13: error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
542 | let pointMass = pointMasses[i]
543 |
544 | applyVelocity(-(pointMass.velocity - (pointMass.velocity * velDamping)) * (elapsed * 200), toPointMassAt: i)
| `- error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
545 | }
546 | }
/host/spi-builder-workspace/Sources/Geometry/AABB.swift:53:22: error: cannot find type 'JFloat' in scope
51 | /// Gets the middle X position of this AABB
52 | @inlinable
53 | public var midX: JFloat {
| `- error: cannot find type 'JFloat' in scope
54 | return (minimum.x + maximum.x) / 2
55 | }
/host/spi-builder-workspace/Sources/Body.swift:638:56: error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
636 | // this line crosses the test line at some point... does it
637 | // do so within our test range?
638 | let slope = (edgeEnd.x - edgeSt.x) / (edgeEnd.y - edgeSt.y)
| `- error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
639 | let hitX = edgeSt.x + ((pt.y - edgeSt.y) * slope)
640 |
Swift.DurationProtocol:2:17: note: where 'Self' = 'Matrix3x3'
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public protocol DurationProtocol : AdditiveArithmetic, Comparable, Sendable {
| `- note: where 'Self' = 'Matrix3x3'
3 | static func / (lhs: Self, rhs: Int) -> Self
4 | static func /= (lhs: inout Self, rhs: Int)
/host/spi-builder-workspace/Sources/Body.swift:665:56: error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
663 | // this line crosses the test line at some point... does it
664 | // do so within our test range?
665 | let slope = (edgeEnd.x - edgeSt.x) / (edgeEnd.y - edgeSt.y)
| `- error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
666 | let hitX = edgeSt.x + ((pt.y - edgeSt.y) * slope)
667 |
Swift.DurationProtocol:2:17: note: where 'Self' = 'Matrix3x3'
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public protocol DurationProtocol : AdditiveArithmetic, Comparable, Sendable {
| `- note: where 'Self' = 'Matrix3x3'
3 | static func / (lhs: Self, rhs: Int) -> Self
4 | static func /= (lhs: inout Self, rhs: Int)
/host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift:35:27: error: cannot find type 'JFloat' in scope
33 | lineA: (start: Vector2, end: Vector2),
34 | lineB: (start: Vector2, end: Vector2)
35 | ) -> (hitPt: Vector2, Ua: JFloat, Ub: JFloat)? {
| `- error: cannot find type 'JFloat' in scope
36 | let denom = ((lineB.end.y - lineB.start.y) * (lineA.end.x - lineA.start.x)) - ((lineB.end.x - lineB.start.x) * (lineA.end.y - lineA.start.y))
37 |
/host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift:35:39: error: cannot find type 'JFloat' in scope
33 | lineA: (start: Vector2, end: Vector2),
34 | lineB: (start: Vector2, end: Vector2)
35 | ) -> (hitPt: Vector2, Ua: JFloat, Ub: JFloat)? {
| `- error: cannot find type 'JFloat' in scope
36 | let denom = ((lineB.end.y - lineB.start.y) * (lineA.end.x - lineA.start.x)) - ((lineB.end.x - lineB.start.x) * (lineA.end.y - lineA.start.y))
37 |
/host/spi-builder-workspace/Sources/Body.swift:748:20: error: cannot find type 'JFloat' in scope
746 | var hitPt: Vector2 = .zero
747 | var normal: Vector2 = .zero
748 | var edgeD: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
749 |
750 | var dist: JFloat = 0
/host/spi-builder-workspace/Sources/Body.swift:750:19: error: cannot find type 'JFloat' in scope
748 | var edgeD: JFloat = 0
749 |
750 | var dist: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
751 |
752 | let edge = edges[edgeNum]
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:108:53: error: cannot find type 'JFloat' in scope
106 | /// Returns the distance squared between this Vector2 and another Vector2
107 | @inlinable
108 | public func distanceSquared(to vec: Vector2) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
109 | let d = self - vec
110 |
/host/spi-builder-workspace/Sources/Body.swift:840:20: error: cannot find type 'JFloat' in scope
838 | var pointA = -1
839 | var pointB = -1
840 | var edgeD: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
841 | var normal: Vector2 = .zero
842 | var hitPt: Vector2 = .zero
/host/spi-builder-workspace/Sources/Body.swift:844:24: error: cannot find 'JFloat' in scope
842 | var hitPt: Vector2 = .zero
843 |
844 | var closestD = JFloat.infinity
| `- error: cannot find 'JFloat' in scope
845 |
846 | let c = pointMasses.count
/host/spi-builder-workspace/Sources/Body.swift:900:24: error: cannot find type 'JFloat' in scope
898 | var closestP2 = 0// closestP1
899 | var edgePosition = Vector2.zero
900 | var edgeRatio: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
901 | var closestD = JFloat.infinity
902 |
/host/spi-builder-workspace/Sources/Body.swift:901:24: error: cannot find 'JFloat' in scope
899 | var edgePosition = Vector2.zero
900 | var edgeRatio: JFloat = 0
901 | var closestD = JFloat.infinity
| `- error: cannot find 'JFloat' in scope
902 |
903 | for edge in edges {
/host/spi-builder-workspace/Sources/Body.swift:939:26: error: cannot find 'JFloat' in scope
937 | assert(pointMasses.count > 0)
938 |
939 | var closestSQD = JFloat.greatestFiniteMagnitude
| `- error: cannot find 'JFloat' in scope
940 | var closest: Int!
941 |
/host/spi-builder-workspace/Sources/BodyCollisionInformation.swift:29:23: error: cannot find type 'JFloat' in scope
27 | /// A value from 0 - 1 specifying at which point in the edge
28 | /// bodyBpmA - bodyBpmB is the penetration occurring.
29 | public var edgeD: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
30 | /// Global normal for the collision. Always the penetrated edge's normal.
31 | public var normal = Vector2.zero
/host/spi-builder-workspace/Sources/BodyCollisionInformation.swift:34:29: error: cannot find type 'JFloat' in scope
32 | /// Penetration distance.
33 | /// Is the distance required to move bodyApm in order to solve the collision
34 | public var penetration: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
35 |
36 | /// Inits this collision information with no edge information.
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: error: type 'BodyEdge' does not conform to protocol 'Encodable'
8 |
9 | /// Contains information about the edge of a body
10 | public struct BodyEdge: Codable {
| `- error: type 'BodyEdge' does not conform to protocol 'Encodable'
11 |
12 | /// The index of the edge on the body
:
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- note: cannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- note: cannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'
40 |
41 | public init() {
Swift.Encodable.encode:2:6: note: protocol requires function 'encode(to:)' with type 'Encodable'
1 | protocol Encodable {
2 | func encode(to encoder: any Encoder) throws}
| `- note: protocol requires function 'encode(to:)' with type 'Encodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:100:46: error: cannot find type 'JFloat' in scope
98 | /// Returns the distance between this Vector2 and another Vector2
99 | @inlinable
100 | public func distance(to vec: Vector2) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
101 | let d = self - vec
102 |
[34/36] Compiling JelloSwift BodyCollisionInformation.swift
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:269:45: error: cannot find type 'JFloat' in scope
267 |
268 | @inlinable
269 | static public func -(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
270 | return Vector2(x: lhs.x - rhs, y: lhs.y - rhs)
271 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:259:46: error: cannot find type 'JFloat' in scope
257 |
258 | @inlinable
259 | static public func - (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
260 | return Vector3(x: lhs.x - rhs, y: lhs.y - rhs, z: lhs.z - rhs)
261 | }
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:5:31: error: cannot find type 'JFloat' in scope
3 | /// Plain 3-row 3-column Matrix with real components.
4 | public struct Matrix3x3: CustomStringConvertible {
5 | public typealias Scalar = JFloat
| `- error: cannot find type 'JFloat' in scope
6 |
7 | /// Returns a 3x3 [identity matrix].
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:28:19: error: cannot find type 'JFloat' in scope
26 |
27 | /// The JFloat representation of this vector's x axis
28 | public var x: JFloat
| `- error: cannot find type 'JFloat' in scope
29 |
30 | /// The JFloat representation of this vector's y axis
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:31:19: error: cannot find type 'JFloat' in scope
29 |
30 | /// The JFloat representation of this vector's y axis
31 | public var y: JFloat
| `- error: cannot find type 'JFloat' in scope
32 |
33 | /// Returns the angle in radians of this Vector2
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:12:15: error: type 'Vector2' does not conform to protocol 'Decodable'
10 |
11 | /// Represents a 2D vector
12 | public struct Vector2: VectorRepresentable, Equatable, CustomStringConvertible, Codable {
| `- error: type 'Vector2' does not conform to protocol 'Decodable'
13 |
14 | /// A zeroed-value Vector2
:
26 |
27 | /// The JFloat representation of this vector's x axis
28 | public var x: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
29 |
30 | /// The JFloat representation of this vector's y axis
31 | public var y: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
32 |
33 | /// Returns the angle in radians of this Vector2
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:12:15: error: type 'Vector2' does not conform to protocol 'Decodable'
10 |
11 | /// Represents a 2D vector
12 | public struct Vector2: VectorRepresentable, Equatable, CustomStringConvertible, Codable {
| `- error: type 'Vector2' does not conform to protocol 'Decodable'
13 |
14 | /// A zeroed-value Vector2
:
26 |
27 | /// The JFloat representation of this vector's x axis
28 | public var x: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
29 |
30 | /// The JFloat representation of this vector's y axis
31 | public var y: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
32 |
33 | /// Returns the angle in radians of this Vector2
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:93:24: error: cannot find type 'JFloat' in scope
91 | /// Inits a vector 2 with X and Y defined as a given float
92 | @inlinable
93 | public init(value: JFloat) {
| `- error: cannot find type 'JFloat' in scope
94 | x = value
95 | y = value
/host/spi-builder-workspace/Sources/Body.swift:50:28: error: cannot find type 'JFloat' in scope
48 | /// 1 never decelerates. Values outside the range [0, 1] inclusive may
49 | /// introduce instability
50 | public var velDamping: JFloat = 0.999
| `- error: cannot find type 'JFloat' in scope
51 |
52 | /// The array of body components for this body object
/host/spi-builder-workspace/Sources/Body.swift:63:47: error: cannot find type 'JFloat' in scope
61 |
62 | /// The derived rotation of the body, in radians
63 | public fileprivate(set) var derivedAngle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
64 |
65 | /// Omega (ω) is the relative angular speed of the body, in radians/s
/host/spi-builder-workspace/Sources/Body.swift:66:47: error: cannot find type 'JFloat' in scope
64 |
65 | /// Omega (ω) is the relative angular speed of the body, in radians/s
66 | public fileprivate(set) var derivedOmega: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
67 |
68 | // Utilize to calculate the omega for the body
/host/spi-builder-workspace/Sources/Body.swift:69:32: error: cannot find type 'JFloat' in scope
67 |
68 | // Utilize to calculate the omega for the body
69 | fileprivate var lastAngle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
70 |
71 | /// Gets a list of vertices that represents the current position of each
/host/spi-builder-workspace/Sources/Body.swift:143:23: error: cannot find type 'JFloat' in scope
141 | world: World? = nil,
142 | shape: ClosedShape,
143 | pointMasses: [JFloat] = [1],
| `- error: cannot find type 'JFloat' in scope
144 | position: Vector2 = Vector2.zero,
145 | angle: JFloat = 0,
/host/spi-builder-workspace/Sources/Body.swift:145:16: error: cannot find type 'JFloat' in scope
143 | pointMasses: [JFloat] = [1],
144 | position: Vector2 = Vector2.zero,
145 | angle: JFloat = 0,
| `- error: cannot find type 'JFloat' in scope
146 | scale: Vector2 = Vector2.unit,
147 | kinematic: Bool = false,
/host/spi-builder-workspace/Sources/Body.swift:305:39: error: cannot find type 'JFloat' in scope
303 | /// - parameter forceUpdate:
304 | /// Whether to force the update of the body, even if it's a static body.
305 | public func updateAABB(_ elapsed: JFloat, forceUpdate: Bool) {
| `- error: cannot find type 'JFloat' in scope
306 | guard !isStatic || forceUpdate else {
307 | return
/host/spi-builder-workspace/Sources/Body.swift:361:36: error: cannot find type 'JFloat' in scope
359 |
360 | /// Sets the mass for all the PointMass objects in this body.
361 | public func setMassAll(_ mass: JFloat) {
| `- error: cannot find type 'JFloat' in scope
362 | for i in 0..<pointMasses.count {
363 | pointMasses[i].mass = mass
/host/spi-builder-workspace/Sources/Body.swift:370:63: error: cannot find type 'JFloat' in scope
368 |
369 | /// Sets the mass for a single PointMass individually.
370 | public func setMassForPointMass(atIndex index: Int, mass: JFloat) {
| `- error: cannot find type 'JFloat' in scope
371 | pointMasses[index].mass = mass
372 |
/host/spi-builder-workspace/Sources/Body.swift:381:43: error: cannot find type 'JFloat' in scope
379 | /// sets up to the count of masses in the array, if larger, it sets the
380 | /// matching masses for all point masses, and ignores the rest of the array.
381 | public func setMass(fromList masses: [JFloat]) {
| `- error: cannot find type 'JFloat' in scope
382 | for (mass, i) in zip(masses, 0..<pointMasses.count) {
383 | pointMasses[i].mass = mass
/host/spi-builder-workspace/Sources/Body.swift:394:57: error: cannot find type 'JFloat' in scope
392 | /// Setting the position and angle resets the current shape to the original
393 | /// base shape of the object.
394 | public func setPositionAngle(_ pos: Vector2, angle: JFloat, scale: Vector2) {
| `- error: cannot find type 'JFloat' in scope
395 | let matrix = Vector2.matrix(scalingBy: scale, rotatingBy: angle, translatingBy: pos)
396 |
/host/spi-builder-workspace/Sources/Body.swift:424:51: error: cannot find type 'JFloat' in scope
422 | /// call this. Instead you can just access the `derivedPosition`, `DerivedAngle`,
423 | /// `derivedVelocity`, and `derivedOmega` properties.
424 | public func derivePositionAndAngle(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
425 | // No need if this is a static body, or kinematically controlled.
426 | if isStatic || isKinematic {
/host/spi-builder-workspace/Sources/Body.swift:522:38: error: cannot find type 'JFloat' in scope
520 | /// Integrates the point masses for this Body.
521 | /// Ignored, if body is static.
522 | public func integrate(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
523 | if isStatic {
524 | return
/host/spi-builder-workspace/Sources/Body.swift:536:43: error: cannot find type 'JFloat' in scope
534 | /// Applies the velocity damping to the point masses.
535 | /// Ignored, if body is static.
536 | public func dampenVelocity(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
537 | if isStatic {
538 | return
/host/spi-builder-workspace/Sources/Body.swift:550:39: error: cannot find type 'JFloat' in scope
548 | /// Applies a rotational clockwise torque of a given force on this body.
549 | /// Ignored, if body is static.
550 | public func applyTorque(of force: JFloat) {
| `- error: cannot find type 'JFloat' in scope
551 | if isStatic {
552 | return
/host/spi-builder-workspace/Sources/Body.swift:569:43: error: cannot find type 'JFloat' in scope
567 | /// The method keeps the average velocity of the point masses the same during
568 | /// the procedure.
569 | public func setAngularVelocity(_ vel: JFloat) {
| `- error: cannot find type 'JFloat' in scope
570 | if isStatic {
571 | return
/host/spi-builder-workspace/Sources/Body.swift:583:43: error: cannot find type 'JFloat' in scope
581 |
582 | /// Accumulates the angular velocity for this body
583 | public func addAngularVelocity(_ vel: JFloat) {
| `- error: cannot find type 'JFloat' in scope
584 | if isStatic {
585 | return
/host/spi-builder-workspace/Sources/Body.swift:743:54: error: cannot find type 'JFloat' in scope
741 | to pt: Vector2,
742 | onEdge edgeNum: Int
743 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
744 | assert(pointMasses.count > 0)
745 |
/host/spi-builder-workspace/Sources/Body.swift:743:72: error: cannot find type 'JFloat' in scope
741 | to pt: Vector2,
742 | onEdge edgeNum: Int
743 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
744 | assert(pointMasses.count > 0)
745 |
/host/spi-builder-workspace/Sources/Body.swift:810:54: error: cannot find type 'JFloat' in scope
808 | to pt: Vector2,
809 | onEdge edgeNum: Int
810 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
811 | let result = closestPointSquared(to: pt, onEdge: edgeNum)
812 |
/host/spi-builder-workspace/Sources/Body.swift:810:72: error: cannot find type 'JFloat' in scope
808 | to pt: Vector2,
809 | onEdge edgeNum: Int
810 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
811 | let result = closestPointSquared(to: pt, onEdge: edgeNum)
812 |
/host/spi-builder-workspace/Sources/Body.swift:835:80: error: cannot find type 'JFloat' in scope
833 | public func closestPoint(
834 | to pt: Vector2
835 | ) -> (hitPoint: Vector2, normal: Vector2, pointA: Int, pointB: Int, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
836 | assert(pointMasses.count > 0)
837 |
/host/spi-builder-workspace/Sources/Body.swift:835:98: error: cannot find type 'JFloat' in scope
833 | public func closestPoint(
834 | to pt: Vector2
835 | ) -> (hitPoint: Vector2, normal: Vector2, pointA: Int, pointB: Int, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
836 | assert(pointMasses.count > 0)
837 |
/host/spi-builder-workspace/Sources/Body.swift:891:45: error: cannot find type 'JFloat' in scope
889 | to pt: Vector2,
890 | withTolerance tolerance: JFloat = JFloat.infinity
891 | ) -> (edgePosition: Vector2, edgeRatio: JFloat, edgePoint1: Int, edgePoint2: Int)? {
| `- error: cannot find type 'JFloat' in scope
892 | if edges.count == 0 || pointMasses.count == 0 {
893 | return nil
/host/spi-builder-workspace/Sources/Body.swift:890:34: error: cannot find type 'JFloat' in scope
888 | public func closestEdge(
889 | to pt: Vector2,
890 | withTolerance tolerance: JFloat = JFloat.infinity
| `- error: cannot find type 'JFloat' in scope
891 | ) -> (edgePosition: Vector2, edgeRatio: JFloat, edgePoint1: Int, edgePoint2: Int)? {
892 | if edges.count == 0 || pointMasses.count == 0 {
/host/spi-builder-workspace/Sources/Body.swift:936:77: error: cannot find type 'JFloat' in scope
934 | /// Find the closest PointMass index in this body, given a global point
935 | /// - precondition: There is at least one point mass in this body
936 | public func closestPointMass(to pos: Vector2) -> (point: Int, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
937 | assert(pointMasses.count > 0)
938 |
/host/spi-builder-workspace/Sources/BodyEdge.swift:36:24: error: cannot find type 'JFloat' in scope
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
37 |
38 | /// The edge's length, squared
/host/spi-builder-workspace/Sources/BodyEdge.swift:39:31: error: cannot find type 'JFloat' in scope
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
40 |
41 | public init() {
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: error: type 'BodyEdge' does not conform to protocol 'Decodable'
8 |
9 | /// Contains information about the edge of a body
10 | public struct BodyEdge: Codable {
| `- error: type 'BodyEdge' does not conform to protocol 'Decodable'
11 |
12 | /// The index of the edge on the body
:
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
40 |
41 | public init() {
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: error: type 'BodyEdge' does not conform to protocol 'Decodable'
8 |
9 | /// Contains information about the edge of a body
10 | public struct BodyEdge: Codable {
| `- error: type 'BodyEdge' does not conform to protocol 'Decodable'
11 |
12 | /// The index of the edge on the body
:
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
40 |
41 | public init() {
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:284:45: error: cannot find type 'JFloat' in scope
282 |
283 | @inlinable
284 | static public func %(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
285 | return Vector2(x: lhs.x.truncatingRemainder(dividingBy: rhs),
286 | y: lhs.y.truncatingRemainder(dividingBy: rhs))
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:274:46: error: cannot find type 'JFloat' in scope
272 |
273 | @inlinable
274 | static public func % (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
275 | return Vector3(
276 | x: lhs.x.truncatingRemainder(dividingBy: rhs),
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:264:45: error: cannot find type 'JFloat' in scope
262 | // JFloat interaction
263 | @inlinable
264 | static public func +(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
265 | return Vector2(x: lhs.x + rhs, y: lhs.y + rhs)
266 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:254:46: error: cannot find type 'JFloat' in scope
252 | // JFloat interaction
253 | @inlinable
254 | static public func + (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
255 | return Vector3(x: lhs.x + rhs, y: lhs.y + rhs, z: lhs.z + rhs)
256 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:274:45: error: cannot find type 'JFloat' in scope
272 |
273 | @inlinable
274 | static public func *(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
275 | return Vector2(x: lhs.x * rhs, y: lhs.y * rhs)
276 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:264:46: error: cannot find type 'JFloat' in scope
262 |
263 | @inlinable
264 | static public func * (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
265 | return Vector3(x: lhs.x * rhs, y: lhs.y * rhs, z: lhs.z * rhs)
266 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:349:27: error: cannot find type 'JFloat' in scope
347 | static public func matrix(
348 | scalingBy scale: Vector2 = Vector2.unit,
349 | rotatingBy angle: JFloat = 0,
| `- error: cannot find type 'JFloat' in scope
350 | translatingBy translate: Vector2 = Vector2.zero
351 | ) -> Matrix3x3 {
/host/spi-builder-workspace/Sources/Geometry/ClosedShape.swift:150:25: error: cannot find type 'JFloat' in scope
148 | _ target: inout [Vector2],
149 | worldPos: Vector2,
150 | angleInRadians: JFloat,
| `- error: cannot find type 'JFloat' in scope
151 | localScale: Vector2 = Vector2.unit
152 | ) {
/host/spi-builder-workspace/Sources/PointMass.swift:16:22: error: cannot find type 'JFloat' in scope
14 | /// Values `< 0.2` usually cause inconsistency and instability in the
15 | /// simulation
16 | public var mass: JFloat = 1
| `- error: cannot find type 'JFloat' in scope
17 |
18 | /// The global position of the point, in world coordinates
/host/spi-builder-workspace/Sources/PointMass.swift:10:15: error: type 'PointMass' does not conform to protocol 'Decodable'
8 |
9 | /// Specifies a point mass that composes a body
10 | public struct PointMass: Codable, VectorRepresentable {
| `- error: type 'PointMass' does not conform to protocol 'Decodable'
11 | /// The mass of this point mass.
12 | /// Leave this value always `> 0` to maintain consistency on the simulation,
:
14 | /// Values `< 0.2` usually cause inconsistency and instability in the
15 | /// simulation
16 | public var mass: JFloat = 1
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
17 |
18 | /// The global position of the point, in world coordinates
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/PointMass.swift:10:15: error: type 'PointMass' does not conform to protocol 'Decodable'
8 |
9 | /// Specifies a point mass that composes a body
10 | public struct PointMass: Codable, VectorRepresentable {
| `- error: type 'PointMass' does not conform to protocol 'Decodable'
11 | /// The mass of this point mass.
12 | /// Leave this value always `> 0` to maintain consistency on the simulation,
:
14 | /// Values `< 0.2` usually cause inconsistency and instability in the
15 | /// simulation
16 | public var mass: JFloat = 1
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
17 |
18 | /// The global position of the point, in world coordinates
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/PointMass.swift:35:23: error: cannot find type 'JFloat' in scope
33 | }
34 |
35 | public init(mass: JFloat = 0, position: Vector2 = Vector2.zero) {
| `- error: cannot find type 'JFloat' in scope
36 | self.mass = mass
37 | self.position = position
/host/spi-builder-workspace/Sources/Body.swift:445:20: error: cannot find type 'JFloat' in scope
443 |
444 | // find the average angle of all of the masses.
445 | var angle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
446 |
447 | var originalSign = 1
/host/spi-builder-workspace/Sources/Body.swift:448:28: error: cannot find type 'JFloat' in scope
446 |
447 | var originalSign = 1
448 | var originalAngle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
449 |
450 | let c = pointMasses.count
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:221:59: error: cannot find type 'JFloat' in scope
219 | /// See `Vector2.dot`
220 | @inlinable
221 | static public func •(lhs: Vector2, rhs: Vector2) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
222 | return lhs.dot(rhs)
223 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:208:60: error: cannot find type 'JFloat' in scope
206 | /// See `Vector3.dot`
207 | @inlinable
208 | static public func • (lhs: Vector3, rhs: Vector3) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
209 | return lhs.dot(rhs)
210 | }
/host/spi-builder-workspace/Sources/Body.swift:467:33: error: reference to member 'pi' cannot be resolved without a contextual type
465 | let thisSign = (thisAngle >= 0.0) ? 1 : -1
466 |
467 | if abs(diff) > .pi && (thisSign != originalSign) {
| `- error: reference to member 'pi' cannot be resolved without a contextual type
468 | if thisSign == -1 {
469 | thisAngle = .pi + (.pi + thisAngle)
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:316:52: error: cannot find type 'JFloat' in scope
314 | // JFloat interaction
315 | @inlinable
316 | static public func +=(lhs: inout Vector2, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
317 | lhs = lhs + rhs
318 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:309:53: error: cannot find type 'JFloat' in scope
307 | // JFloat interaction
308 | @inlinable
309 | static public func += (lhs: inout Vector3, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
310 | lhs = lhs + rhs
311 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:328:52: error: cannot find type 'JFloat' in scope
326 | }
327 | @inlinable
328 | static public func /=(lhs: inout Vector2, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
329 | lhs = lhs / rhs
330 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:321:53: error: cannot find type 'JFloat' in scope
319 | }
320 | @inlinable
321 | static public func /= (lhs: inout Vector3, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
322 | lhs = lhs / rhs
323 | }
/host/spi-builder-workspace/Sources/Body.swift:479:18: error: cannot find 'JFloat' in scope
477 | }
478 |
479 | angle /= JFloat(c)
| `- error: cannot find 'JFloat' in scope
480 |
481 | derivedAngle = angle
/host/spi-builder-workspace/Sources/Body.swift:486:59: error: binary operator '>=' cannot be applied to operands of type 'Matrix3x3' and '_'
484 | var angleChange = (derivedAngle - lastAngle)
485 |
486 | if (angleChange < 0 ? -angleChange : angleChange) >= .pi {
| `- error: binary operator '>=' cannot be applied to operands of type 'Matrix3x3' and '_'
487 | if angleChange < 0 {
488 | angleChange = angleChange + (.pi * 2)
/host/spi-builder-workspace/Sources/Body.swift:486:63: error: reference to member 'pi' cannot be resolved without a contextual type
484 | var angleChange = (derivedAngle - lastAngle)
485 |
486 | if (angleChange < 0 ? -angleChange : angleChange) >= .pi {
| `- error: reference to member 'pi' cannot be resolved without a contextual type
487 | if angleChange < 0 {
488 | angleChange = angleChange + (.pi * 2)
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:279:45: error: cannot find type 'JFloat' in scope
277 |
278 | @inlinable
279 | static public func /(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
280 | return Vector2(x: lhs.x / rhs, y: lhs.y / rhs)
281 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:290:31: error: cannot find type 'JFloat' in scope
288 |
289 | @inlinable
290 | static public func /(lhs: JFloat, rhs: Vector2) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
291 | return Vector2(x: lhs / rhs.x, y: lhs / rhs.y)
292 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:269:46: error: cannot find type 'JFloat' in scope
267 |
268 | @inlinable
269 | static public func / (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
270 | return Vector3(x: lhs.x / rhs, y: lhs.y / rhs, z: lhs.z / rhs)
271 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:283:32: error: cannot find type 'JFloat' in scope
281 |
282 | @inlinable
283 | static public func / (lhs: JFloat, rhs: Vector3) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
284 | return Vector3(x: lhs / rhs.x, y: lhs / rhs.y, z: lhs / rhs.z)
285 | }
/host/spi-builder-workspace/Sources/PointMass.swift:45:47: error: cannot find type 'JFloat' in scope
43 | /// seconds
44 | @inlinable
45 | public mutating func integrate(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
46 | if mass.isFinite {
47 | let elapsedMass = elapsed / mass
/host/spi-builder-workspace/Sources/Body.swift:544:13: error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
542 | let pointMass = pointMasses[i]
543 |
544 | applyVelocity(-(pointMass.velocity - (pointMass.velocity * velDamping)) * (elapsed * 200), toPointMassAt: i)
| `- error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
545 | }
546 | }
/host/spi-builder-workspace/Sources/Geometry/AABB.swift:53:22: error: cannot find type 'JFloat' in scope
51 | /// Gets the middle X position of this AABB
52 | @inlinable
53 | public var midX: JFloat {
| `- error: cannot find type 'JFloat' in scope
54 | return (minimum.x + maximum.x) / 2
55 | }
/host/spi-builder-workspace/Sources/Body.swift:638:56: error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
636 | // this line crosses the test line at some point... does it
637 | // do so within our test range?
638 | let slope = (edgeEnd.x - edgeSt.x) / (edgeEnd.y - edgeSt.y)
| `- error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
639 | let hitX = edgeSt.x + ((pt.y - edgeSt.y) * slope)
640 |
Swift.DurationProtocol:2:17: note: where 'Self' = 'Matrix3x3'
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public protocol DurationProtocol : AdditiveArithmetic, Comparable, Sendable {
| `- note: where 'Self' = 'Matrix3x3'
3 | static func / (lhs: Self, rhs: Int) -> Self
4 | static func /= (lhs: inout Self, rhs: Int)
/host/spi-builder-workspace/Sources/Body.swift:665:56: error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
663 | // this line crosses the test line at some point... does it
664 | // do so within our test range?
665 | let slope = (edgeEnd.x - edgeSt.x) / (edgeEnd.y - edgeSt.y)
| `- error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
666 | let hitX = edgeSt.x + ((pt.y - edgeSt.y) * slope)
667 |
Swift.DurationProtocol:2:17: note: where 'Self' = 'Matrix3x3'
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public protocol DurationProtocol : AdditiveArithmetic, Comparable, Sendable {
| `- note: where 'Self' = 'Matrix3x3'
3 | static func / (lhs: Self, rhs: Int) -> Self
4 | static func /= (lhs: inout Self, rhs: Int)
/host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift:35:27: error: cannot find type 'JFloat' in scope
33 | lineA: (start: Vector2, end: Vector2),
34 | lineB: (start: Vector2, end: Vector2)
35 | ) -> (hitPt: Vector2, Ua: JFloat, Ub: JFloat)? {
| `- error: cannot find type 'JFloat' in scope
36 | let denom = ((lineB.end.y - lineB.start.y) * (lineA.end.x - lineA.start.x)) - ((lineB.end.x - lineB.start.x) * (lineA.end.y - lineA.start.y))
37 |
/host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift:35:39: error: cannot find type 'JFloat' in scope
33 | lineA: (start: Vector2, end: Vector2),
34 | lineB: (start: Vector2, end: Vector2)
35 | ) -> (hitPt: Vector2, Ua: JFloat, Ub: JFloat)? {
| `- error: cannot find type 'JFloat' in scope
36 | let denom = ((lineB.end.y - lineB.start.y) * (lineA.end.x - lineA.start.x)) - ((lineB.end.x - lineB.start.x) * (lineA.end.y - lineA.start.y))
37 |
/host/spi-builder-workspace/Sources/Body.swift:748:20: error: cannot find type 'JFloat' in scope
746 | var hitPt: Vector2 = .zero
747 | var normal: Vector2 = .zero
748 | var edgeD: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
749 |
750 | var dist: JFloat = 0
/host/spi-builder-workspace/Sources/Body.swift:750:19: error: cannot find type 'JFloat' in scope
748 | var edgeD: JFloat = 0
749 |
750 | var dist: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
751 |
752 | let edge = edges[edgeNum]
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:108:53: error: cannot find type 'JFloat' in scope
106 | /// Returns the distance squared between this Vector2 and another Vector2
107 | @inlinable
108 | public func distanceSquared(to vec: Vector2) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
109 | let d = self - vec
110 |
/host/spi-builder-workspace/Sources/Body.swift:840:20: error: cannot find type 'JFloat' in scope
838 | var pointA = -1
839 | var pointB = -1
840 | var edgeD: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
841 | var normal: Vector2 = .zero
842 | var hitPt: Vector2 = .zero
/host/spi-builder-workspace/Sources/Body.swift:844:24: error: cannot find 'JFloat' in scope
842 | var hitPt: Vector2 = .zero
843 |
844 | var closestD = JFloat.infinity
| `- error: cannot find 'JFloat' in scope
845 |
846 | let c = pointMasses.count
/host/spi-builder-workspace/Sources/Body.swift:900:24: error: cannot find type 'JFloat' in scope
898 | var closestP2 = 0// closestP1
899 | var edgePosition = Vector2.zero
900 | var edgeRatio: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
901 | var closestD = JFloat.infinity
902 |
/host/spi-builder-workspace/Sources/Body.swift:901:24: error: cannot find 'JFloat' in scope
899 | var edgePosition = Vector2.zero
900 | var edgeRatio: JFloat = 0
901 | var closestD = JFloat.infinity
| `- error: cannot find 'JFloat' in scope
902 |
903 | for edge in edges {
/host/spi-builder-workspace/Sources/Body.swift:939:26: error: cannot find 'JFloat' in scope
937 | assert(pointMasses.count > 0)
938 |
939 | var closestSQD = JFloat.greatestFiniteMagnitude
| `- error: cannot find 'JFloat' in scope
940 | var closest: Int!
941 |
/host/spi-builder-workspace/Sources/BodyCollisionInformation.swift:29:23: error: cannot find type 'JFloat' in scope
27 | /// A value from 0 - 1 specifying at which point in the edge
28 | /// bodyBpmA - bodyBpmB is the penetration occurring.
29 | public var edgeD: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
30 | /// Global normal for the collision. Always the penetrated edge's normal.
31 | public var normal = Vector2.zero
/host/spi-builder-workspace/Sources/BodyCollisionInformation.swift:34:29: error: cannot find type 'JFloat' in scope
32 | /// Penetration distance.
33 | /// Is the distance required to move bodyApm in order to solve the collision
34 | public var penetration: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
35 |
36 | /// Inits this collision information with no edge information.
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: error: type 'BodyEdge' does not conform to protocol 'Encodable'
8 |
9 | /// Contains information about the edge of a body
10 | public struct BodyEdge: Codable {
| `- error: type 'BodyEdge' does not conform to protocol 'Encodable'
11 |
12 | /// The index of the edge on the body
:
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- note: cannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- note: cannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'
40 |
41 | public init() {
Swift.Encodable.encode:2:6: note: protocol requires function 'encode(to:)' with type 'Encodable'
1 | protocol Encodable {
2 | func encode(to encoder: any Encoder) throws}
| `- note: protocol requires function 'encode(to:)' with type 'Encodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:100:46: error: cannot find type 'JFloat' in scope
98 | /// Returns the distance between this Vector2 and another Vector2
99 | @inlinable
100 | public func distance(to vec: Vector2) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
101 | let d = self - vec
102 |
[35/36] Compiling JelloSwift BodyComponent.swift
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:269:45: error: cannot find type 'JFloat' in scope
267 |
268 | @inlinable
269 | static public func -(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
270 | return Vector2(x: lhs.x - rhs, y: lhs.y - rhs)
271 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:259:46: error: cannot find type 'JFloat' in scope
257 |
258 | @inlinable
259 | static public func - (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
260 | return Vector3(x: lhs.x - rhs, y: lhs.y - rhs, z: lhs.z - rhs)
261 | }
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:5:31: error: cannot find type 'JFloat' in scope
3 | /// Plain 3-row 3-column Matrix with real components.
4 | public struct Matrix3x3: CustomStringConvertible {
5 | public typealias Scalar = JFloat
| `- error: cannot find type 'JFloat' in scope
6 |
7 | /// Returns a 3x3 [identity matrix].
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:28:19: error: cannot find type 'JFloat' in scope
26 |
27 | /// The JFloat representation of this vector's x axis
28 | public var x: JFloat
| `- error: cannot find type 'JFloat' in scope
29 |
30 | /// The JFloat representation of this vector's y axis
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:31:19: error: cannot find type 'JFloat' in scope
29 |
30 | /// The JFloat representation of this vector's y axis
31 | public var y: JFloat
| `- error: cannot find type 'JFloat' in scope
32 |
33 | /// Returns the angle in radians of this Vector2
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:12:15: error: type 'Vector2' does not conform to protocol 'Decodable'
10 |
11 | /// Represents a 2D vector
12 | public struct Vector2: VectorRepresentable, Equatable, CustomStringConvertible, Codable {
| `- error: type 'Vector2' does not conform to protocol 'Decodable'
13 |
14 | /// A zeroed-value Vector2
:
26 |
27 | /// The JFloat representation of this vector's x axis
28 | public var x: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
29 |
30 | /// The JFloat representation of this vector's y axis
31 | public var y: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
32 |
33 | /// Returns the angle in radians of this Vector2
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:12:15: error: type 'Vector2' does not conform to protocol 'Decodable'
10 |
11 | /// Represents a 2D vector
12 | public struct Vector2: VectorRepresentable, Equatable, CustomStringConvertible, Codable {
| `- error: type 'Vector2' does not conform to protocol 'Decodable'
13 |
14 | /// A zeroed-value Vector2
:
26 |
27 | /// The JFloat representation of this vector's x axis
28 | public var x: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
29 |
30 | /// The JFloat representation of this vector's y axis
31 | public var y: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
32 |
33 | /// Returns the angle in radians of this Vector2
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:93:24: error: cannot find type 'JFloat' in scope
91 | /// Inits a vector 2 with X and Y defined as a given float
92 | @inlinable
93 | public init(value: JFloat) {
| `- error: cannot find type 'JFloat' in scope
94 | x = value
95 | y = value
/host/spi-builder-workspace/Sources/Body.swift:50:28: error: cannot find type 'JFloat' in scope
48 | /// 1 never decelerates. Values outside the range [0, 1] inclusive may
49 | /// introduce instability
50 | public var velDamping: JFloat = 0.999
| `- error: cannot find type 'JFloat' in scope
51 |
52 | /// The array of body components for this body object
/host/spi-builder-workspace/Sources/Body.swift:63:47: error: cannot find type 'JFloat' in scope
61 |
62 | /// The derived rotation of the body, in radians
63 | public fileprivate(set) var derivedAngle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
64 |
65 | /// Omega (ω) is the relative angular speed of the body, in radians/s
/host/spi-builder-workspace/Sources/Body.swift:66:47: error: cannot find type 'JFloat' in scope
64 |
65 | /// Omega (ω) is the relative angular speed of the body, in radians/s
66 | public fileprivate(set) var derivedOmega: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
67 |
68 | // Utilize to calculate the omega for the body
/host/spi-builder-workspace/Sources/Body.swift:69:32: error: cannot find type 'JFloat' in scope
67 |
68 | // Utilize to calculate the omega for the body
69 | fileprivate var lastAngle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
70 |
71 | /// Gets a list of vertices that represents the current position of each
/host/spi-builder-workspace/Sources/Body.swift:143:23: error: cannot find type 'JFloat' in scope
141 | world: World? = nil,
142 | shape: ClosedShape,
143 | pointMasses: [JFloat] = [1],
| `- error: cannot find type 'JFloat' in scope
144 | position: Vector2 = Vector2.zero,
145 | angle: JFloat = 0,
/host/spi-builder-workspace/Sources/Body.swift:145:16: error: cannot find type 'JFloat' in scope
143 | pointMasses: [JFloat] = [1],
144 | position: Vector2 = Vector2.zero,
145 | angle: JFloat = 0,
| `- error: cannot find type 'JFloat' in scope
146 | scale: Vector2 = Vector2.unit,
147 | kinematic: Bool = false,
/host/spi-builder-workspace/Sources/Body.swift:305:39: error: cannot find type 'JFloat' in scope
303 | /// - parameter forceUpdate:
304 | /// Whether to force the update of the body, even if it's a static body.
305 | public func updateAABB(_ elapsed: JFloat, forceUpdate: Bool) {
| `- error: cannot find type 'JFloat' in scope
306 | guard !isStatic || forceUpdate else {
307 | return
/host/spi-builder-workspace/Sources/Body.swift:361:36: error: cannot find type 'JFloat' in scope
359 |
360 | /// Sets the mass for all the PointMass objects in this body.
361 | public func setMassAll(_ mass: JFloat) {
| `- error: cannot find type 'JFloat' in scope
362 | for i in 0..<pointMasses.count {
363 | pointMasses[i].mass = mass
/host/spi-builder-workspace/Sources/Body.swift:370:63: error: cannot find type 'JFloat' in scope
368 |
369 | /// Sets the mass for a single PointMass individually.
370 | public func setMassForPointMass(atIndex index: Int, mass: JFloat) {
| `- error: cannot find type 'JFloat' in scope
371 | pointMasses[index].mass = mass
372 |
/host/spi-builder-workspace/Sources/Body.swift:381:43: error: cannot find type 'JFloat' in scope
379 | /// sets up to the count of masses in the array, if larger, it sets the
380 | /// matching masses for all point masses, and ignores the rest of the array.
381 | public func setMass(fromList masses: [JFloat]) {
| `- error: cannot find type 'JFloat' in scope
382 | for (mass, i) in zip(masses, 0..<pointMasses.count) {
383 | pointMasses[i].mass = mass
/host/spi-builder-workspace/Sources/Body.swift:394:57: error: cannot find type 'JFloat' in scope
392 | /// Setting the position and angle resets the current shape to the original
393 | /// base shape of the object.
394 | public func setPositionAngle(_ pos: Vector2, angle: JFloat, scale: Vector2) {
| `- error: cannot find type 'JFloat' in scope
395 | let matrix = Vector2.matrix(scalingBy: scale, rotatingBy: angle, translatingBy: pos)
396 |
/host/spi-builder-workspace/Sources/Body.swift:424:51: error: cannot find type 'JFloat' in scope
422 | /// call this. Instead you can just access the `derivedPosition`, `DerivedAngle`,
423 | /// `derivedVelocity`, and `derivedOmega` properties.
424 | public func derivePositionAndAngle(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
425 | // No need if this is a static body, or kinematically controlled.
426 | if isStatic || isKinematic {
/host/spi-builder-workspace/Sources/Body.swift:522:38: error: cannot find type 'JFloat' in scope
520 | /// Integrates the point masses for this Body.
521 | /// Ignored, if body is static.
522 | public func integrate(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
523 | if isStatic {
524 | return
/host/spi-builder-workspace/Sources/Body.swift:536:43: error: cannot find type 'JFloat' in scope
534 | /// Applies the velocity damping to the point masses.
535 | /// Ignored, if body is static.
536 | public func dampenVelocity(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
537 | if isStatic {
538 | return
/host/spi-builder-workspace/Sources/Body.swift:550:39: error: cannot find type 'JFloat' in scope
548 | /// Applies a rotational clockwise torque of a given force on this body.
549 | /// Ignored, if body is static.
550 | public func applyTorque(of force: JFloat) {
| `- error: cannot find type 'JFloat' in scope
551 | if isStatic {
552 | return
/host/spi-builder-workspace/Sources/Body.swift:569:43: error: cannot find type 'JFloat' in scope
567 | /// The method keeps the average velocity of the point masses the same during
568 | /// the procedure.
569 | public func setAngularVelocity(_ vel: JFloat) {
| `- error: cannot find type 'JFloat' in scope
570 | if isStatic {
571 | return
/host/spi-builder-workspace/Sources/Body.swift:583:43: error: cannot find type 'JFloat' in scope
581 |
582 | /// Accumulates the angular velocity for this body
583 | public func addAngularVelocity(_ vel: JFloat) {
| `- error: cannot find type 'JFloat' in scope
584 | if isStatic {
585 | return
/host/spi-builder-workspace/Sources/Body.swift:743:54: error: cannot find type 'JFloat' in scope
741 | to pt: Vector2,
742 | onEdge edgeNum: Int
743 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
744 | assert(pointMasses.count > 0)
745 |
/host/spi-builder-workspace/Sources/Body.swift:743:72: error: cannot find type 'JFloat' in scope
741 | to pt: Vector2,
742 | onEdge edgeNum: Int
743 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
744 | assert(pointMasses.count > 0)
745 |
/host/spi-builder-workspace/Sources/Body.swift:810:54: error: cannot find type 'JFloat' in scope
808 | to pt: Vector2,
809 | onEdge edgeNum: Int
810 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
811 | let result = closestPointSquared(to: pt, onEdge: edgeNum)
812 |
/host/spi-builder-workspace/Sources/Body.swift:810:72: error: cannot find type 'JFloat' in scope
808 | to pt: Vector2,
809 | onEdge edgeNum: Int
810 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
811 | let result = closestPointSquared(to: pt, onEdge: edgeNum)
812 |
/host/spi-builder-workspace/Sources/Body.swift:835:80: error: cannot find type 'JFloat' in scope
833 | public func closestPoint(
834 | to pt: Vector2
835 | ) -> (hitPoint: Vector2, normal: Vector2, pointA: Int, pointB: Int, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
836 | assert(pointMasses.count > 0)
837 |
/host/spi-builder-workspace/Sources/Body.swift:835:98: error: cannot find type 'JFloat' in scope
833 | public func closestPoint(
834 | to pt: Vector2
835 | ) -> (hitPoint: Vector2, normal: Vector2, pointA: Int, pointB: Int, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
836 | assert(pointMasses.count > 0)
837 |
/host/spi-builder-workspace/Sources/Body.swift:891:45: error: cannot find type 'JFloat' in scope
889 | to pt: Vector2,
890 | withTolerance tolerance: JFloat = JFloat.infinity
891 | ) -> (edgePosition: Vector2, edgeRatio: JFloat, edgePoint1: Int, edgePoint2: Int)? {
| `- error: cannot find type 'JFloat' in scope
892 | if edges.count == 0 || pointMasses.count == 0 {
893 | return nil
/host/spi-builder-workspace/Sources/Body.swift:890:34: error: cannot find type 'JFloat' in scope
888 | public func closestEdge(
889 | to pt: Vector2,
890 | withTolerance tolerance: JFloat = JFloat.infinity
| `- error: cannot find type 'JFloat' in scope
891 | ) -> (edgePosition: Vector2, edgeRatio: JFloat, edgePoint1: Int, edgePoint2: Int)? {
892 | if edges.count == 0 || pointMasses.count == 0 {
/host/spi-builder-workspace/Sources/Body.swift:936:77: error: cannot find type 'JFloat' in scope
934 | /// Find the closest PointMass index in this body, given a global point
935 | /// - precondition: There is at least one point mass in this body
936 | public func closestPointMass(to pos: Vector2) -> (point: Int, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
937 | assert(pointMasses.count > 0)
938 |
/host/spi-builder-workspace/Sources/BodyEdge.swift:36:24: error: cannot find type 'JFloat' in scope
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
37 |
38 | /// The edge's length, squared
/host/spi-builder-workspace/Sources/BodyEdge.swift:39:31: error: cannot find type 'JFloat' in scope
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
40 |
41 | public init() {
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: error: type 'BodyEdge' does not conform to protocol 'Decodable'
8 |
9 | /// Contains information about the edge of a body
10 | public struct BodyEdge: Codable {
| `- error: type 'BodyEdge' does not conform to protocol 'Decodable'
11 |
12 | /// The index of the edge on the body
:
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
40 |
41 | public init() {
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: error: type 'BodyEdge' does not conform to protocol 'Decodable'
8 |
9 | /// Contains information about the edge of a body
10 | public struct BodyEdge: Codable {
| `- error: type 'BodyEdge' does not conform to protocol 'Decodable'
11 |
12 | /// The index of the edge on the body
:
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
40 |
41 | public init() {
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:284:45: error: cannot find type 'JFloat' in scope
282 |
283 | @inlinable
284 | static public func %(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
285 | return Vector2(x: lhs.x.truncatingRemainder(dividingBy: rhs),
286 | y: lhs.y.truncatingRemainder(dividingBy: rhs))
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:274:46: error: cannot find type 'JFloat' in scope
272 |
273 | @inlinable
274 | static public func % (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
275 | return Vector3(
276 | x: lhs.x.truncatingRemainder(dividingBy: rhs),
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:264:45: error: cannot find type 'JFloat' in scope
262 | // JFloat interaction
263 | @inlinable
264 | static public func +(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
265 | return Vector2(x: lhs.x + rhs, y: lhs.y + rhs)
266 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:254:46: error: cannot find type 'JFloat' in scope
252 | // JFloat interaction
253 | @inlinable
254 | static public func + (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
255 | return Vector3(x: lhs.x + rhs, y: lhs.y + rhs, z: lhs.z + rhs)
256 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:274:45: error: cannot find type 'JFloat' in scope
272 |
273 | @inlinable
274 | static public func *(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
275 | return Vector2(x: lhs.x * rhs, y: lhs.y * rhs)
276 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:264:46: error: cannot find type 'JFloat' in scope
262 |
263 | @inlinable
264 | static public func * (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
265 | return Vector3(x: lhs.x * rhs, y: lhs.y * rhs, z: lhs.z * rhs)
266 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:349:27: error: cannot find type 'JFloat' in scope
347 | static public func matrix(
348 | scalingBy scale: Vector2 = Vector2.unit,
349 | rotatingBy angle: JFloat = 0,
| `- error: cannot find type 'JFloat' in scope
350 | translatingBy translate: Vector2 = Vector2.zero
351 | ) -> Matrix3x3 {
/host/spi-builder-workspace/Sources/Geometry/ClosedShape.swift:150:25: error: cannot find type 'JFloat' in scope
148 | _ target: inout [Vector2],
149 | worldPos: Vector2,
150 | angleInRadians: JFloat,
| `- error: cannot find type 'JFloat' in scope
151 | localScale: Vector2 = Vector2.unit
152 | ) {
/host/spi-builder-workspace/Sources/PointMass.swift:16:22: error: cannot find type 'JFloat' in scope
14 | /// Values `< 0.2` usually cause inconsistency and instability in the
15 | /// simulation
16 | public var mass: JFloat = 1
| `- error: cannot find type 'JFloat' in scope
17 |
18 | /// The global position of the point, in world coordinates
/host/spi-builder-workspace/Sources/PointMass.swift:10:15: error: type 'PointMass' does not conform to protocol 'Decodable'
8 |
9 | /// Specifies a point mass that composes a body
10 | public struct PointMass: Codable, VectorRepresentable {
| `- error: type 'PointMass' does not conform to protocol 'Decodable'
11 | /// The mass of this point mass.
12 | /// Leave this value always `> 0` to maintain consistency on the simulation,
:
14 | /// Values `< 0.2` usually cause inconsistency and instability in the
15 | /// simulation
16 | public var mass: JFloat = 1
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
17 |
18 | /// The global position of the point, in world coordinates
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/PointMass.swift:10:15: error: type 'PointMass' does not conform to protocol 'Decodable'
8 |
9 | /// Specifies a point mass that composes a body
10 | public struct PointMass: Codable, VectorRepresentable {
| `- error: type 'PointMass' does not conform to protocol 'Decodable'
11 | /// The mass of this point mass.
12 | /// Leave this value always `> 0` to maintain consistency on the simulation,
:
14 | /// Values `< 0.2` usually cause inconsistency and instability in the
15 | /// simulation
16 | public var mass: JFloat = 1
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
17 |
18 | /// The global position of the point, in world coordinates
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/PointMass.swift:35:23: error: cannot find type 'JFloat' in scope
33 | }
34 |
35 | public init(mass: JFloat = 0, position: Vector2 = Vector2.zero) {
| `- error: cannot find type 'JFloat' in scope
36 | self.mass = mass
37 | self.position = position
/host/spi-builder-workspace/Sources/Body.swift:445:20: error: cannot find type 'JFloat' in scope
443 |
444 | // find the average angle of all of the masses.
445 | var angle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
446 |
447 | var originalSign = 1
/host/spi-builder-workspace/Sources/Body.swift:448:28: error: cannot find type 'JFloat' in scope
446 |
447 | var originalSign = 1
448 | var originalAngle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
449 |
450 | let c = pointMasses.count
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:221:59: error: cannot find type 'JFloat' in scope
219 | /// See `Vector2.dot`
220 | @inlinable
221 | static public func •(lhs: Vector2, rhs: Vector2) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
222 | return lhs.dot(rhs)
223 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:208:60: error: cannot find type 'JFloat' in scope
206 | /// See `Vector3.dot`
207 | @inlinable
208 | static public func • (lhs: Vector3, rhs: Vector3) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
209 | return lhs.dot(rhs)
210 | }
/host/spi-builder-workspace/Sources/Body.swift:467:33: error: reference to member 'pi' cannot be resolved without a contextual type
465 | let thisSign = (thisAngle >= 0.0) ? 1 : -1
466 |
467 | if abs(diff) > .pi && (thisSign != originalSign) {
| `- error: reference to member 'pi' cannot be resolved without a contextual type
468 | if thisSign == -1 {
469 | thisAngle = .pi + (.pi + thisAngle)
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:316:52: error: cannot find type 'JFloat' in scope
314 | // JFloat interaction
315 | @inlinable
316 | static public func +=(lhs: inout Vector2, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
317 | lhs = lhs + rhs
318 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:309:53: error: cannot find type 'JFloat' in scope
307 | // JFloat interaction
308 | @inlinable
309 | static public func += (lhs: inout Vector3, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
310 | lhs = lhs + rhs
311 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:328:52: error: cannot find type 'JFloat' in scope
326 | }
327 | @inlinable
328 | static public func /=(lhs: inout Vector2, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
329 | lhs = lhs / rhs
330 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:321:53: error: cannot find type 'JFloat' in scope
319 | }
320 | @inlinable
321 | static public func /= (lhs: inout Vector3, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
322 | lhs = lhs / rhs
323 | }
/host/spi-builder-workspace/Sources/Body.swift:479:18: error: cannot find 'JFloat' in scope
477 | }
478 |
479 | angle /= JFloat(c)
| `- error: cannot find 'JFloat' in scope
480 |
481 | derivedAngle = angle
/host/spi-builder-workspace/Sources/Body.swift:486:59: error: binary operator '>=' cannot be applied to operands of type 'Matrix3x3' and '_'
484 | var angleChange = (derivedAngle - lastAngle)
485 |
486 | if (angleChange < 0 ? -angleChange : angleChange) >= .pi {
| `- error: binary operator '>=' cannot be applied to operands of type 'Matrix3x3' and '_'
487 | if angleChange < 0 {
488 | angleChange = angleChange + (.pi * 2)
/host/spi-builder-workspace/Sources/Body.swift:486:63: error: reference to member 'pi' cannot be resolved without a contextual type
484 | var angleChange = (derivedAngle - lastAngle)
485 |
486 | if (angleChange < 0 ? -angleChange : angleChange) >= .pi {
| `- error: reference to member 'pi' cannot be resolved without a contextual type
487 | if angleChange < 0 {
488 | angleChange = angleChange + (.pi * 2)
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:279:45: error: cannot find type 'JFloat' in scope
277 |
278 | @inlinable
279 | static public func /(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
280 | return Vector2(x: lhs.x / rhs, y: lhs.y / rhs)
281 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:290:31: error: cannot find type 'JFloat' in scope
288 |
289 | @inlinable
290 | static public func /(lhs: JFloat, rhs: Vector2) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
291 | return Vector2(x: lhs / rhs.x, y: lhs / rhs.y)
292 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:269:46: error: cannot find type 'JFloat' in scope
267 |
268 | @inlinable
269 | static public func / (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
270 | return Vector3(x: lhs.x / rhs, y: lhs.y / rhs, z: lhs.z / rhs)
271 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:283:32: error: cannot find type 'JFloat' in scope
281 |
282 | @inlinable
283 | static public func / (lhs: JFloat, rhs: Vector3) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
284 | return Vector3(x: lhs / rhs.x, y: lhs / rhs.y, z: lhs / rhs.z)
285 | }
/host/spi-builder-workspace/Sources/PointMass.swift:45:47: error: cannot find type 'JFloat' in scope
43 | /// seconds
44 | @inlinable
45 | public mutating func integrate(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
46 | if mass.isFinite {
47 | let elapsedMass = elapsed / mass
/host/spi-builder-workspace/Sources/Body.swift:544:13: error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
542 | let pointMass = pointMasses[i]
543 |
544 | applyVelocity(-(pointMass.velocity - (pointMass.velocity * velDamping)) * (elapsed * 200), toPointMassAt: i)
| `- error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
545 | }
546 | }
/host/spi-builder-workspace/Sources/Geometry/AABB.swift:53:22: error: cannot find type 'JFloat' in scope
51 | /// Gets the middle X position of this AABB
52 | @inlinable
53 | public var midX: JFloat {
| `- error: cannot find type 'JFloat' in scope
54 | return (minimum.x + maximum.x) / 2
55 | }
/host/spi-builder-workspace/Sources/Body.swift:638:56: error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
636 | // this line crosses the test line at some point... does it
637 | // do so within our test range?
638 | let slope = (edgeEnd.x - edgeSt.x) / (edgeEnd.y - edgeSt.y)
| `- error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
639 | let hitX = edgeSt.x + ((pt.y - edgeSt.y) * slope)
640 |
Swift.DurationProtocol:2:17: note: where 'Self' = 'Matrix3x3'
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public protocol DurationProtocol : AdditiveArithmetic, Comparable, Sendable {
| `- note: where 'Self' = 'Matrix3x3'
3 | static func / (lhs: Self, rhs: Int) -> Self
4 | static func /= (lhs: inout Self, rhs: Int)
/host/spi-builder-workspace/Sources/Body.swift:665:56: error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
663 | // this line crosses the test line at some point... does it
664 | // do so within our test range?
665 | let slope = (edgeEnd.x - edgeSt.x) / (edgeEnd.y - edgeSt.y)
| `- error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
666 | let hitX = edgeSt.x + ((pt.y - edgeSt.y) * slope)
667 |
Swift.DurationProtocol:2:17: note: where 'Self' = 'Matrix3x3'
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public protocol DurationProtocol : AdditiveArithmetic, Comparable, Sendable {
| `- note: where 'Self' = 'Matrix3x3'
3 | static func / (lhs: Self, rhs: Int) -> Self
4 | static func /= (lhs: inout Self, rhs: Int)
/host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift:35:27: error: cannot find type 'JFloat' in scope
33 | lineA: (start: Vector2, end: Vector2),
34 | lineB: (start: Vector2, end: Vector2)
35 | ) -> (hitPt: Vector2, Ua: JFloat, Ub: JFloat)? {
| `- error: cannot find type 'JFloat' in scope
36 | let denom = ((lineB.end.y - lineB.start.y) * (lineA.end.x - lineA.start.x)) - ((lineB.end.x - lineB.start.x) * (lineA.end.y - lineA.start.y))
37 |
/host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift:35:39: error: cannot find type 'JFloat' in scope
33 | lineA: (start: Vector2, end: Vector2),
34 | lineB: (start: Vector2, end: Vector2)
35 | ) -> (hitPt: Vector2, Ua: JFloat, Ub: JFloat)? {
| `- error: cannot find type 'JFloat' in scope
36 | let denom = ((lineB.end.y - lineB.start.y) * (lineA.end.x - lineA.start.x)) - ((lineB.end.x - lineB.start.x) * (lineA.end.y - lineA.start.y))
37 |
/host/spi-builder-workspace/Sources/Body.swift:748:20: error: cannot find type 'JFloat' in scope
746 | var hitPt: Vector2 = .zero
747 | var normal: Vector2 = .zero
748 | var edgeD: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
749 |
750 | var dist: JFloat = 0
/host/spi-builder-workspace/Sources/Body.swift:750:19: error: cannot find type 'JFloat' in scope
748 | var edgeD: JFloat = 0
749 |
750 | var dist: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
751 |
752 | let edge = edges[edgeNum]
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:108:53: error: cannot find type 'JFloat' in scope
106 | /// Returns the distance squared between this Vector2 and another Vector2
107 | @inlinable
108 | public func distanceSquared(to vec: Vector2) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
109 | let d = self - vec
110 |
/host/spi-builder-workspace/Sources/Body.swift:840:20: error: cannot find type 'JFloat' in scope
838 | var pointA = -1
839 | var pointB = -1
840 | var edgeD: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
841 | var normal: Vector2 = .zero
842 | var hitPt: Vector2 = .zero
/host/spi-builder-workspace/Sources/Body.swift:844:24: error: cannot find 'JFloat' in scope
842 | var hitPt: Vector2 = .zero
843 |
844 | var closestD = JFloat.infinity
| `- error: cannot find 'JFloat' in scope
845 |
846 | let c = pointMasses.count
/host/spi-builder-workspace/Sources/Body.swift:900:24: error: cannot find type 'JFloat' in scope
898 | var closestP2 = 0// closestP1
899 | var edgePosition = Vector2.zero
900 | var edgeRatio: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
901 | var closestD = JFloat.infinity
902 |
/host/spi-builder-workspace/Sources/Body.swift:901:24: error: cannot find 'JFloat' in scope
899 | var edgePosition = Vector2.zero
900 | var edgeRatio: JFloat = 0
901 | var closestD = JFloat.infinity
| `- error: cannot find 'JFloat' in scope
902 |
903 | for edge in edges {
/host/spi-builder-workspace/Sources/Body.swift:939:26: error: cannot find 'JFloat' in scope
937 | assert(pointMasses.count > 0)
938 |
939 | var closestSQD = JFloat.greatestFiniteMagnitude
| `- error: cannot find 'JFloat' in scope
940 | var closest: Int!
941 |
/host/spi-builder-workspace/Sources/BodyCollisionInformation.swift:29:23: error: cannot find type 'JFloat' in scope
27 | /// A value from 0 - 1 specifying at which point in the edge
28 | /// bodyBpmA - bodyBpmB is the penetration occurring.
29 | public var edgeD: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
30 | /// Global normal for the collision. Always the penetrated edge's normal.
31 | public var normal = Vector2.zero
/host/spi-builder-workspace/Sources/BodyCollisionInformation.swift:34:29: error: cannot find type 'JFloat' in scope
32 | /// Penetration distance.
33 | /// Is the distance required to move bodyApm in order to solve the collision
34 | public var penetration: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
35 |
36 | /// Inits this collision information with no edge information.
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: error: type 'BodyEdge' does not conform to protocol 'Encodable'
8 |
9 | /// Contains information about the edge of a body
10 | public struct BodyEdge: Codable {
| `- error: type 'BodyEdge' does not conform to protocol 'Encodable'
11 |
12 | /// The index of the edge on the body
:
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- note: cannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- note: cannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'
40 |
41 | public init() {
Swift.Encodable.encode:2:6: note: protocol requires function 'encode(to:)' with type 'Encodable'
1 | protocol Encodable {
2 | func encode(to encoder: any Encoder) throws}
| `- note: protocol requires function 'encode(to:)' with type 'Encodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:100:46: error: cannot find type 'JFloat' in scope
98 | /// Returns the distance between this Vector2 and another Vector2
99 | @inlinable
100 | public func distance(to vec: Vector2) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
101 | let d = self - vec
102 |
[36/36] Compiling JelloSwift BodyEdge.swift
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:269:45: error: cannot find type 'JFloat' in scope
267 |
268 | @inlinable
269 | static public func -(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
270 | return Vector2(x: lhs.x - rhs, y: lhs.y - rhs)
271 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:259:46: error: cannot find type 'JFloat' in scope
257 |
258 | @inlinable
259 | static public func - (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
260 | return Vector3(x: lhs.x - rhs, y: lhs.y - rhs, z: lhs.z - rhs)
261 | }
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:5:31: error: cannot find type 'JFloat' in scope
3 | /// Plain 3-row 3-column Matrix with real components.
4 | public struct Matrix3x3: CustomStringConvertible {
5 | public typealias Scalar = JFloat
| `- error: cannot find type 'JFloat' in scope
6 |
7 | /// Returns a 3x3 [identity matrix].
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:28:19: error: cannot find type 'JFloat' in scope
26 |
27 | /// The JFloat representation of this vector's x axis
28 | public var x: JFloat
| `- error: cannot find type 'JFloat' in scope
29 |
30 | /// The JFloat representation of this vector's y axis
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:31:19: error: cannot find type 'JFloat' in scope
29 |
30 | /// The JFloat representation of this vector's y axis
31 | public var y: JFloat
| `- error: cannot find type 'JFloat' in scope
32 |
33 | /// Returns the angle in radians of this Vector2
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:12:15: error: type 'Vector2' does not conform to protocol 'Decodable'
10 |
11 | /// Represents a 2D vector
12 | public struct Vector2: VectorRepresentable, Equatable, CustomStringConvertible, Codable {
| `- error: type 'Vector2' does not conform to protocol 'Decodable'
13 |
14 | /// A zeroed-value Vector2
:
26 |
27 | /// The JFloat representation of this vector's x axis
28 | public var x: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
29 |
30 | /// The JFloat representation of this vector's y axis
31 | public var y: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
32 |
33 | /// Returns the angle in radians of this Vector2
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:12:15: error: type 'Vector2' does not conform to protocol 'Decodable'
10 |
11 | /// Represents a 2D vector
12 | public struct Vector2: VectorRepresentable, Equatable, CustomStringConvertible, Codable {
| `- error: type 'Vector2' does not conform to protocol 'Decodable'
13 |
14 | /// A zeroed-value Vector2
:
26 |
27 | /// The JFloat representation of this vector's x axis
28 | public var x: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
29 |
30 | /// The JFloat representation of this vector's y axis
31 | public var y: JFloat
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
32 |
33 | /// Returns the angle in radians of this Vector2
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:93:24: error: cannot find type 'JFloat' in scope
91 | /// Inits a vector 2 with X and Y defined as a given float
92 | @inlinable
93 | public init(value: JFloat) {
| `- error: cannot find type 'JFloat' in scope
94 | x = value
95 | y = value
/host/spi-builder-workspace/Sources/Body.swift:50:28: error: cannot find type 'JFloat' in scope
48 | /// 1 never decelerates. Values outside the range [0, 1] inclusive may
49 | /// introduce instability
50 | public var velDamping: JFloat = 0.999
| `- error: cannot find type 'JFloat' in scope
51 |
52 | /// The array of body components for this body object
/host/spi-builder-workspace/Sources/Body.swift:63:47: error: cannot find type 'JFloat' in scope
61 |
62 | /// The derived rotation of the body, in radians
63 | public fileprivate(set) var derivedAngle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
64 |
65 | /// Omega (ω) is the relative angular speed of the body, in radians/s
/host/spi-builder-workspace/Sources/Body.swift:66:47: error: cannot find type 'JFloat' in scope
64 |
65 | /// Omega (ω) is the relative angular speed of the body, in radians/s
66 | public fileprivate(set) var derivedOmega: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
67 |
68 | // Utilize to calculate the omega for the body
/host/spi-builder-workspace/Sources/Body.swift:69:32: error: cannot find type 'JFloat' in scope
67 |
68 | // Utilize to calculate the omega for the body
69 | fileprivate var lastAngle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
70 |
71 | /// Gets a list of vertices that represents the current position of each
/host/spi-builder-workspace/Sources/Body.swift:143:23: error: cannot find type 'JFloat' in scope
141 | world: World? = nil,
142 | shape: ClosedShape,
143 | pointMasses: [JFloat] = [1],
| `- error: cannot find type 'JFloat' in scope
144 | position: Vector2 = Vector2.zero,
145 | angle: JFloat = 0,
/host/spi-builder-workspace/Sources/Body.swift:145:16: error: cannot find type 'JFloat' in scope
143 | pointMasses: [JFloat] = [1],
144 | position: Vector2 = Vector2.zero,
145 | angle: JFloat = 0,
| `- error: cannot find type 'JFloat' in scope
146 | scale: Vector2 = Vector2.unit,
147 | kinematic: Bool = false,
/host/spi-builder-workspace/Sources/Body.swift:305:39: error: cannot find type 'JFloat' in scope
303 | /// - parameter forceUpdate:
304 | /// Whether to force the update of the body, even if it's a static body.
305 | public func updateAABB(_ elapsed: JFloat, forceUpdate: Bool) {
| `- error: cannot find type 'JFloat' in scope
306 | guard !isStatic || forceUpdate else {
307 | return
/host/spi-builder-workspace/Sources/Body.swift:361:36: error: cannot find type 'JFloat' in scope
359 |
360 | /// Sets the mass for all the PointMass objects in this body.
361 | public func setMassAll(_ mass: JFloat) {
| `- error: cannot find type 'JFloat' in scope
362 | for i in 0..<pointMasses.count {
363 | pointMasses[i].mass = mass
/host/spi-builder-workspace/Sources/Body.swift:370:63: error: cannot find type 'JFloat' in scope
368 |
369 | /// Sets the mass for a single PointMass individually.
370 | public func setMassForPointMass(atIndex index: Int, mass: JFloat) {
| `- error: cannot find type 'JFloat' in scope
371 | pointMasses[index].mass = mass
372 |
/host/spi-builder-workspace/Sources/Body.swift:381:43: error: cannot find type 'JFloat' in scope
379 | /// sets up to the count of masses in the array, if larger, it sets the
380 | /// matching masses for all point masses, and ignores the rest of the array.
381 | public func setMass(fromList masses: [JFloat]) {
| `- error: cannot find type 'JFloat' in scope
382 | for (mass, i) in zip(masses, 0..<pointMasses.count) {
383 | pointMasses[i].mass = mass
/host/spi-builder-workspace/Sources/Body.swift:394:57: error: cannot find type 'JFloat' in scope
392 | /// Setting the position and angle resets the current shape to the original
393 | /// base shape of the object.
394 | public func setPositionAngle(_ pos: Vector2, angle: JFloat, scale: Vector2) {
| `- error: cannot find type 'JFloat' in scope
395 | let matrix = Vector2.matrix(scalingBy: scale, rotatingBy: angle, translatingBy: pos)
396 |
/host/spi-builder-workspace/Sources/Body.swift:424:51: error: cannot find type 'JFloat' in scope
422 | /// call this. Instead you can just access the `derivedPosition`, `DerivedAngle`,
423 | /// `derivedVelocity`, and `derivedOmega` properties.
424 | public func derivePositionAndAngle(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
425 | // No need if this is a static body, or kinematically controlled.
426 | if isStatic || isKinematic {
/host/spi-builder-workspace/Sources/Body.swift:522:38: error: cannot find type 'JFloat' in scope
520 | /// Integrates the point masses for this Body.
521 | /// Ignored, if body is static.
522 | public func integrate(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
523 | if isStatic {
524 | return
/host/spi-builder-workspace/Sources/Body.swift:536:43: error: cannot find type 'JFloat' in scope
534 | /// Applies the velocity damping to the point masses.
535 | /// Ignored, if body is static.
536 | public func dampenVelocity(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
537 | if isStatic {
538 | return
/host/spi-builder-workspace/Sources/Body.swift:550:39: error: cannot find type 'JFloat' in scope
548 | /// Applies a rotational clockwise torque of a given force on this body.
549 | /// Ignored, if body is static.
550 | public func applyTorque(of force: JFloat) {
| `- error: cannot find type 'JFloat' in scope
551 | if isStatic {
552 | return
/host/spi-builder-workspace/Sources/Body.swift:569:43: error: cannot find type 'JFloat' in scope
567 | /// The method keeps the average velocity of the point masses the same during
568 | /// the procedure.
569 | public func setAngularVelocity(_ vel: JFloat) {
| `- error: cannot find type 'JFloat' in scope
570 | if isStatic {
571 | return
/host/spi-builder-workspace/Sources/Body.swift:583:43: error: cannot find type 'JFloat' in scope
581 |
582 | /// Accumulates the angular velocity for this body
583 | public func addAngularVelocity(_ vel: JFloat) {
| `- error: cannot find type 'JFloat' in scope
584 | if isStatic {
585 | return
/host/spi-builder-workspace/Sources/Body.swift:743:54: error: cannot find type 'JFloat' in scope
741 | to pt: Vector2,
742 | onEdge edgeNum: Int
743 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
744 | assert(pointMasses.count > 0)
745 |
/host/spi-builder-workspace/Sources/Body.swift:743:72: error: cannot find type 'JFloat' in scope
741 | to pt: Vector2,
742 | onEdge edgeNum: Int
743 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
744 | assert(pointMasses.count > 0)
745 |
/host/spi-builder-workspace/Sources/Body.swift:810:54: error: cannot find type 'JFloat' in scope
808 | to pt: Vector2,
809 | onEdge edgeNum: Int
810 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
811 | let result = closestPointSquared(to: pt, onEdge: edgeNum)
812 |
/host/spi-builder-workspace/Sources/Body.swift:810:72: error: cannot find type 'JFloat' in scope
808 | to pt: Vector2,
809 | onEdge edgeNum: Int
810 | ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
811 | let result = closestPointSquared(to: pt, onEdge: edgeNum)
812 |
/host/spi-builder-workspace/Sources/Body.swift:835:80: error: cannot find type 'JFloat' in scope
833 | public func closestPoint(
834 | to pt: Vector2
835 | ) -> (hitPoint: Vector2, normal: Vector2, pointA: Int, pointB: Int, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
836 | assert(pointMasses.count > 0)
837 |
/host/spi-builder-workspace/Sources/Body.swift:835:98: error: cannot find type 'JFloat' in scope
833 | public func closestPoint(
834 | to pt: Vector2
835 | ) -> (hitPoint: Vector2, normal: Vector2, pointA: Int, pointB: Int, edgeD: JFloat, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
836 | assert(pointMasses.count > 0)
837 |
/host/spi-builder-workspace/Sources/Body.swift:891:45: error: cannot find type 'JFloat' in scope
889 | to pt: Vector2,
890 | withTolerance tolerance: JFloat = JFloat.infinity
891 | ) -> (edgePosition: Vector2, edgeRatio: JFloat, edgePoint1: Int, edgePoint2: Int)? {
| `- error: cannot find type 'JFloat' in scope
892 | if edges.count == 0 || pointMasses.count == 0 {
893 | return nil
/host/spi-builder-workspace/Sources/Body.swift:890:34: error: cannot find type 'JFloat' in scope
888 | public func closestEdge(
889 | to pt: Vector2,
890 | withTolerance tolerance: JFloat = JFloat.infinity
| `- error: cannot find type 'JFloat' in scope
891 | ) -> (edgePosition: Vector2, edgeRatio: JFloat, edgePoint1: Int, edgePoint2: Int)? {
892 | if edges.count == 0 || pointMasses.count == 0 {
/host/spi-builder-workspace/Sources/Body.swift:936:77: error: cannot find type 'JFloat' in scope
934 | /// Find the closest PointMass index in this body, given a global point
935 | /// - precondition: There is at least one point mass in this body
936 | public func closestPointMass(to pos: Vector2) -> (point: Int, distance: JFloat) {
| `- error: cannot find type 'JFloat' in scope
937 | assert(pointMasses.count > 0)
938 |
/host/spi-builder-workspace/Sources/BodyEdge.swift:36:24: error: cannot find type 'JFloat' in scope
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
37 |
38 | /// The edge's length, squared
/host/spi-builder-workspace/Sources/BodyEdge.swift:39:31: error: cannot find type 'JFloat' in scope
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
40 |
41 | public init() {
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: error: type 'BodyEdge' does not conform to protocol 'Decodable'
8 |
9 | /// Contains information about the edge of a body
10 | public struct BodyEdge: Codable {
| `- error: type 'BodyEdge' does not conform to protocol 'Decodable'
11 |
12 | /// The index of the edge on the body
:
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
40 |
41 | public init() {
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: error: type 'BodyEdge' does not conform to protocol 'Decodable'
8 |
9 | /// Contains information about the edge of a body
10 | public struct BodyEdge: Codable {
| `- error: type 'BodyEdge' does not conform to protocol 'Decodable'
11 |
12 | /// The index of the edge on the body
:
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
40 |
41 | public init() {
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:284:45: error: cannot find type 'JFloat' in scope
282 |
283 | @inlinable
284 | static public func %(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
285 | return Vector2(x: lhs.x.truncatingRemainder(dividingBy: rhs),
286 | y: lhs.y.truncatingRemainder(dividingBy: rhs))
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:274:46: error: cannot find type 'JFloat' in scope
272 |
273 | @inlinable
274 | static public func % (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
275 | return Vector3(
276 | x: lhs.x.truncatingRemainder(dividingBy: rhs),
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:264:45: error: cannot find type 'JFloat' in scope
262 | // JFloat interaction
263 | @inlinable
264 | static public func +(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
265 | return Vector2(x: lhs.x + rhs, y: lhs.y + rhs)
266 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:254:46: error: cannot find type 'JFloat' in scope
252 | // JFloat interaction
253 | @inlinable
254 | static public func + (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
255 | return Vector3(x: lhs.x + rhs, y: lhs.y + rhs, z: lhs.z + rhs)
256 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:274:45: error: cannot find type 'JFloat' in scope
272 |
273 | @inlinable
274 | static public func *(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
275 | return Vector2(x: lhs.x * rhs, y: lhs.y * rhs)
276 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:264:46: error: cannot find type 'JFloat' in scope
262 |
263 | @inlinable
264 | static public func * (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
265 | return Vector3(x: lhs.x * rhs, y: lhs.y * rhs, z: lhs.z * rhs)
266 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:349:27: error: cannot find type 'JFloat' in scope
347 | static public func matrix(
348 | scalingBy scale: Vector2 = Vector2.unit,
349 | rotatingBy angle: JFloat = 0,
| `- error: cannot find type 'JFloat' in scope
350 | translatingBy translate: Vector2 = Vector2.zero
351 | ) -> Matrix3x3 {
/host/spi-builder-workspace/Sources/Geometry/ClosedShape.swift:150:25: error: cannot find type 'JFloat' in scope
148 | _ target: inout [Vector2],
149 | worldPos: Vector2,
150 | angleInRadians: JFloat,
| `- error: cannot find type 'JFloat' in scope
151 | localScale: Vector2 = Vector2.unit
152 | ) {
/host/spi-builder-workspace/Sources/PointMass.swift:16:22: error: cannot find type 'JFloat' in scope
14 | /// Values `< 0.2` usually cause inconsistency and instability in the
15 | /// simulation
16 | public var mass: JFloat = 1
| `- error: cannot find type 'JFloat' in scope
17 |
18 | /// The global position of the point, in world coordinates
/host/spi-builder-workspace/Sources/PointMass.swift:10:15: error: type 'PointMass' does not conform to protocol 'Decodable'
8 |
9 | /// Specifies a point mass that composes a body
10 | public struct PointMass: Codable, VectorRepresentable {
| `- error: type 'PointMass' does not conform to protocol 'Decodable'
11 | /// The mass of this point mass.
12 | /// Leave this value always `> 0` to maintain consistency on the simulation,
:
14 | /// Values `< 0.2` usually cause inconsistency and instability in the
15 | /// simulation
16 | public var mass: JFloat = 1
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
17 |
18 | /// The global position of the point, in world coordinates
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/PointMass.swift:10:15: error: type 'PointMass' does not conform to protocol 'Decodable'
8 |
9 | /// Specifies a point mass that composes a body
10 | public struct PointMass: Codable, VectorRepresentable {
| `- error: type 'PointMass' does not conform to protocol 'Decodable'
11 | /// The mass of this point mass.
12 | /// Leave this value always `> 0` to maintain consistency on the simulation,
:
14 | /// Values `< 0.2` usually cause inconsistency and instability in the
15 | /// simulation
16 | public var mass: JFloat = 1
| `- note: cannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'
17 |
18 | /// The global position of the point, in world coordinates
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
| `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/PointMass.swift:35:23: error: cannot find type 'JFloat' in scope
33 | }
34 |
35 | public init(mass: JFloat = 0, position: Vector2 = Vector2.zero) {
| `- error: cannot find type 'JFloat' in scope
36 | self.mass = mass
37 | self.position = position
/host/spi-builder-workspace/Sources/Body.swift:445:20: error: cannot find type 'JFloat' in scope
443 |
444 | // find the average angle of all of the masses.
445 | var angle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
446 |
447 | var originalSign = 1
/host/spi-builder-workspace/Sources/Body.swift:448:28: error: cannot find type 'JFloat' in scope
446 |
447 | var originalSign = 1
448 | var originalAngle: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
449 |
450 | let c = pointMasses.count
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:221:59: error: cannot find type 'JFloat' in scope
219 | /// See `Vector2.dot`
220 | @inlinable
221 | static public func •(lhs: Vector2, rhs: Vector2) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
222 | return lhs.dot(rhs)
223 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:208:60: error: cannot find type 'JFloat' in scope
206 | /// See `Vector3.dot`
207 | @inlinable
208 | static public func • (lhs: Vector3, rhs: Vector3) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
209 | return lhs.dot(rhs)
210 | }
/host/spi-builder-workspace/Sources/Body.swift:467:33: error: reference to member 'pi' cannot be resolved without a contextual type
465 | let thisSign = (thisAngle >= 0.0) ? 1 : -1
466 |
467 | if abs(diff) > .pi && (thisSign != originalSign) {
| `- error: reference to member 'pi' cannot be resolved without a contextual type
468 | if thisSign == -1 {
469 | thisAngle = .pi + (.pi + thisAngle)
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:316:52: error: cannot find type 'JFloat' in scope
314 | // JFloat interaction
315 | @inlinable
316 | static public func +=(lhs: inout Vector2, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
317 | lhs = lhs + rhs
318 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:309:53: error: cannot find type 'JFloat' in scope
307 | // JFloat interaction
308 | @inlinable
309 | static public func += (lhs: inout Vector3, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
310 | lhs = lhs + rhs
311 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:328:52: error: cannot find type 'JFloat' in scope
326 | }
327 | @inlinable
328 | static public func /=(lhs: inout Vector2, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
329 | lhs = lhs / rhs
330 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:321:53: error: cannot find type 'JFloat' in scope
319 | }
320 | @inlinable
321 | static public func /= (lhs: inout Vector3, rhs: JFloat) {
| `- error: cannot find type 'JFloat' in scope
322 | lhs = lhs / rhs
323 | }
/host/spi-builder-workspace/Sources/Body.swift:479:18: error: cannot find 'JFloat' in scope
477 | }
478 |
479 | angle /= JFloat(c)
| `- error: cannot find 'JFloat' in scope
480 |
481 | derivedAngle = angle
/host/spi-builder-workspace/Sources/Body.swift:486:59: error: binary operator '>=' cannot be applied to operands of type 'Matrix3x3' and '_'
484 | var angleChange = (derivedAngle - lastAngle)
485 |
486 | if (angleChange < 0 ? -angleChange : angleChange) >= .pi {
| `- error: binary operator '>=' cannot be applied to operands of type 'Matrix3x3' and '_'
487 | if angleChange < 0 {
488 | angleChange = angleChange + (.pi * 2)
/host/spi-builder-workspace/Sources/Body.swift:486:63: error: reference to member 'pi' cannot be resolved without a contextual type
484 | var angleChange = (derivedAngle - lastAngle)
485 |
486 | if (angleChange < 0 ? -angleChange : angleChange) >= .pi {
| `- error: reference to member 'pi' cannot be resolved without a contextual type
487 | if angleChange < 0 {
488 | angleChange = angleChange + (.pi * 2)
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:279:45: error: cannot find type 'JFloat' in scope
277 |
278 | @inlinable
279 | static public func /(lhs: Vector2, rhs: JFloat) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
280 | return Vector2(x: lhs.x / rhs, y: lhs.y / rhs)
281 | }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:290:31: error: cannot find type 'JFloat' in scope
288 |
289 | @inlinable
290 | static public func /(lhs: JFloat, rhs: Vector2) -> Vector2 {
| `- error: cannot find type 'JFloat' in scope
291 | return Vector2(x: lhs / rhs.x, y: lhs / rhs.y)
292 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:269:46: error: cannot find type 'JFloat' in scope
267 |
268 | @inlinable
269 | static public func / (lhs: Vector3, rhs: JFloat) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
270 | return Vector3(x: lhs.x / rhs, y: lhs.y / rhs, z: lhs.z / rhs)
271 | }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:283:32: error: cannot find type 'JFloat' in scope
281 |
282 | @inlinable
283 | static public func / (lhs: JFloat, rhs: Vector3) -> Vector3 {
| `- error: cannot find type 'JFloat' in scope
284 | return Vector3(x: lhs / rhs.x, y: lhs / rhs.y, z: lhs / rhs.z)
285 | }
/host/spi-builder-workspace/Sources/PointMass.swift:45:47: error: cannot find type 'JFloat' in scope
43 | /// seconds
44 | @inlinable
45 | public mutating func integrate(_ elapsed: JFloat) {
| `- error: cannot find type 'JFloat' in scope
46 | if mass.isFinite {
47 | let elapsedMass = elapsed / mass
/host/spi-builder-workspace/Sources/Body.swift:544:13: error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
542 | let pointMass = pointMasses[i]
543 |
544 | applyVelocity(-(pointMass.velocity - (pointMass.velocity * velDamping)) * (elapsed * 200), toPointMassAt: i)
| `- error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
545 | }
546 | }
/host/spi-builder-workspace/Sources/Geometry/AABB.swift:53:22: error: cannot find type 'JFloat' in scope
51 | /// Gets the middle X position of this AABB
52 | @inlinable
53 | public var midX: JFloat {
| `- error: cannot find type 'JFloat' in scope
54 | return (minimum.x + maximum.x) / 2
55 | }
/host/spi-builder-workspace/Sources/Body.swift:638:56: error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
636 | // this line crosses the test line at some point... does it
637 | // do so within our test range?
638 | let slope = (edgeEnd.x - edgeSt.x) / (edgeEnd.y - edgeSt.y)
| `- error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
639 | let hitX = edgeSt.x + ((pt.y - edgeSt.y) * slope)
640 |
Swift.DurationProtocol:2:17: note: where 'Self' = 'Matrix3x3'
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public protocol DurationProtocol : AdditiveArithmetic, Comparable, Sendable {
| `- note: where 'Self' = 'Matrix3x3'
3 | static func / (lhs: Self, rhs: Int) -> Self
4 | static func /= (lhs: inout Self, rhs: Int)
/host/spi-builder-workspace/Sources/Body.swift:665:56: error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
663 | // this line crosses the test line at some point... does it
664 | // do so within our test range?
665 | let slope = (edgeEnd.x - edgeSt.x) / (edgeEnd.y - edgeSt.y)
| `- error: referencing operator function '/' on 'DurationProtocol' requires that 'Matrix3x3' conform to 'DurationProtocol'
666 | let hitX = edgeSt.x + ((pt.y - edgeSt.y) * slope)
667 |
Swift.DurationProtocol:2:17: note: where 'Self' = 'Matrix3x3'
1 | @available(macOS 13.0, iOS 16.0, watchOS 9.0, tvOS 16.0, *)
2 | public protocol DurationProtocol : AdditiveArithmetic, Comparable, Sendable {
| `- note: where 'Self' = 'Matrix3x3'
3 | static func / (lhs: Self, rhs: Int) -> Self
4 | static func /= (lhs: inout Self, rhs: Int)
/host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift:35:27: error: cannot find type 'JFloat' in scope
33 | lineA: (start: Vector2, end: Vector2),
34 | lineB: (start: Vector2, end: Vector2)
35 | ) -> (hitPt: Vector2, Ua: JFloat, Ub: JFloat)? {
| `- error: cannot find type 'JFloat' in scope
36 | let denom = ((lineB.end.y - lineB.start.y) * (lineA.end.x - lineA.start.x)) - ((lineB.end.x - lineB.start.x) * (lineA.end.y - lineA.start.y))
37 |
/host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift:35:39: error: cannot find type 'JFloat' in scope
33 | lineA: (start: Vector2, end: Vector2),
34 | lineB: (start: Vector2, end: Vector2)
35 | ) -> (hitPt: Vector2, Ua: JFloat, Ub: JFloat)? {
| `- error: cannot find type 'JFloat' in scope
36 | let denom = ((lineB.end.y - lineB.start.y) * (lineA.end.x - lineA.start.x)) - ((lineB.end.x - lineB.start.x) * (lineA.end.y - lineA.start.y))
37 |
/host/spi-builder-workspace/Sources/Body.swift:748:20: error: cannot find type 'JFloat' in scope
746 | var hitPt: Vector2 = .zero
747 | var normal: Vector2 = .zero
748 | var edgeD: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
749 |
750 | var dist: JFloat = 0
/host/spi-builder-workspace/Sources/Body.swift:750:19: error: cannot find type 'JFloat' in scope
748 | var edgeD: JFloat = 0
749 |
750 | var dist: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
751 |
752 | let edge = edges[edgeNum]
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:108:53: error: cannot find type 'JFloat' in scope
106 | /// Returns the distance squared between this Vector2 and another Vector2
107 | @inlinable
108 | public func distanceSquared(to vec: Vector2) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
109 | let d = self - vec
110 |
/host/spi-builder-workspace/Sources/Body.swift:840:20: error: cannot find type 'JFloat' in scope
838 | var pointA = -1
839 | var pointB = -1
840 | var edgeD: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
841 | var normal: Vector2 = .zero
842 | var hitPt: Vector2 = .zero
/host/spi-builder-workspace/Sources/Body.swift:844:24: error: cannot find 'JFloat' in scope
842 | var hitPt: Vector2 = .zero
843 |
844 | var closestD = JFloat.infinity
| `- error: cannot find 'JFloat' in scope
845 |
846 | let c = pointMasses.count
/host/spi-builder-workspace/Sources/Body.swift:900:24: error: cannot find type 'JFloat' in scope
898 | var closestP2 = 0// closestP1
899 | var edgePosition = Vector2.zero
900 | var edgeRatio: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
901 | var closestD = JFloat.infinity
902 |
/host/spi-builder-workspace/Sources/Body.swift:901:24: error: cannot find 'JFloat' in scope
899 | var edgePosition = Vector2.zero
900 | var edgeRatio: JFloat = 0
901 | var closestD = JFloat.infinity
| `- error: cannot find 'JFloat' in scope
902 |
903 | for edge in edges {
/host/spi-builder-workspace/Sources/Body.swift:939:26: error: cannot find 'JFloat' in scope
937 | assert(pointMasses.count > 0)
938 |
939 | var closestSQD = JFloat.greatestFiniteMagnitude
| `- error: cannot find 'JFloat' in scope
940 | var closest: Int!
941 |
/host/spi-builder-workspace/Sources/BodyCollisionInformation.swift:29:23: error: cannot find type 'JFloat' in scope
27 | /// A value from 0 - 1 specifying at which point in the edge
28 | /// bodyBpmA - bodyBpmB is the penetration occurring.
29 | public var edgeD: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
30 | /// Global normal for the collision. Always the penetrated edge's normal.
31 | public var normal = Vector2.zero
/host/spi-builder-workspace/Sources/BodyCollisionInformation.swift:34:29: error: cannot find type 'JFloat' in scope
32 | /// Penetration distance.
33 | /// Is the distance required to move bodyApm in order to solve the collision
34 | public var penetration: JFloat = 0
| `- error: cannot find type 'JFloat' in scope
35 |
36 | /// Inits this collision information with no edge information.
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: error: type 'BodyEdge' does not conform to protocol 'Encodable'
8 |
9 | /// Contains information about the edge of a body
10 | public struct BodyEdge: Codable {
| `- error: type 'BodyEdge' does not conform to protocol 'Encodable'
11 |
12 | /// The index of the edge on the body
:
34 |
35 | /// The edge's length
36 | public var length: JFloat = 0
| `- note: cannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'
37 |
38 | /// The edge's length, squared
39 | public var lengthSquared: JFloat = 0
| `- note: cannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'
40 |
41 | public init() {
Swift.Encodable.encode:2:6: note: protocol requires function 'encode(to:)' with type 'Encodable'
1 | protocol Encodable {
2 | func encode(to encoder: any Encoder) throws}
| `- note: protocol requires function 'encode(to:)' with type 'Encodable'
3 |
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:100:46: error: cannot find type 'JFloat' in scope
98 | /// Returns the distance between this Vector2 and another Vector2
99 | @inlinable
100 | public func distance(to vec: Vector2) -> JFloat {
| `- error: cannot find type 'JFloat' in scope
101 | let d = self - vec
102 |
BUILD FAILURE 6.1 wasm