Build Information
Failed to build JelloSwift, reference master (ce1dac), with Swift 6.4 for Wasm on 21 Sep 2026 04:10:34 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344845-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:wasm-6.4-latest swift build --swift-sdk swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/LuizZak/JelloSwift.git
Reference: master
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/LuizZak/JelloSwift
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at ce1dac7 Updating Changelog
Cloned https://github.com/LuizZak/JelloSwift.git
Revision (git rev-parse @):
ce1dac711d77572141236816d898695361f9e06d
SUCCESS checkout https://github.com/LuizZak/JelloSwift.git at master
========================================
Build
========================================
Selected platform: wasm
Swift version: 6.4
Building package at path: $PWD
https://github.com/LuizZak/JelloSwift.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344845-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:wasm-6.4-latest swift build --swift-sdk swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm 2>&1
wasm-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:4328fdb43c680d205c1d6761b1e3267aa38277eefdda9ddfb17b6a0f1a77857a
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:wasm-6.4-latest
Building for debugging...
[Planning deferred tasks]
error: SwiftCompile normal wasm32 failed with a nonzero exit code. Command line: cd /host
[26 / 35] JelloSwift
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:269:45: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m267 |[0;0m
[0;36m268 |[0;0m @inlinable
[0;36m269 |[0;0m static public func -(lhs: Vector2, rhs: [4;39mJFloat[0;0m) -> Vector2 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m270 |[0;0m return Vector2(x: lhs.x - rhs, y: lhs.y - rhs)
[0;36m271 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:259:46: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m257 |[0;0m
[0;36m258 |[0;0m @inlinable
[0;36m259 |[0;0m static public func - (lhs: Vector3, rhs: [4;39mJFloat[0;0m) -> Vector3 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m260 |[0;0m return Vector3(x: lhs.x - rhs, y: lhs.y - rhs, z: lhs.z - rhs)
[0;36m261 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:5:31: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m3 |[0;0m /// Plain 3-row 3-column Matrix with real components.
[0;36m4 |[0;0m public struct Matrix3x3: CustomStringConvertible {
[0;36m5 |[0;0m public typealias Scalar = [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m6 |[0;0m
[0;36m7 |[0;0m /// Returns a 3x3 [identity matrix].
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:28:19: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m26 |[0;0m
[0;36m27 |[0;0m /// The JFloat representation of this vector's x axis
[0;36m28 |[0;0m public var x: [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m29 |[0;0m
[0;36m30 |[0;0m /// The JFloat representation of this vector's y axis
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:31:19: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m29 |[0;0m
[0;36m30 |[0;0m /// The JFloat representation of this vector's y axis
[0;36m31 |[0;0m public var y: [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m32 |[0;0m
[0;36m33 |[0;0m /// Returns the angle in radians of this Vector2
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:12:15: [1;31merror: [1;39mtype 'Vector2' does not conform to protocol 'Decodable'[0;0m
[0;36m10 |[0;0m
[0;36m11 |[0;0m /// Represents a 2D vector
[0;36m12 |[0;0m public struct Vector2: VectorRepresentable, Equatable, CustomStringConvertible, Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'Vector2' does not conform to protocol 'Decodable'[0;0m
[0;36m13 |[0;0m
[0;36m14 |[0;0m /// A zeroed-value Vector2
[0;36m:[0;0m
[0;36m26 |[0;0m
[0;36m27 |[0;0m /// The JFloat representation of this vector's x axis
[0;36m28 |[0;0m public var x: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m29 |[0;0m
[0;36m30 |[0;0m /// The JFloat representation of this vector's y axis
[0;36m31 |[0;0m public var y: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m32 |[0;0m
[0;36m33 |[0;0m /// Returns the angle in radians of this Vector2
Swift.Decodable.init:2:1: [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m1 |[0;0m protocol Decodable {
[0;36m2 |[0;0m init(from decoder: any Decoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:12:15: [1;31merror: [1;39mtype 'Vector2' does not conform to protocol 'Decodable'[0;0m
[0;36m10 |[0;0m
[0;36m11 |[0;0m /// Represents a 2D vector
[0;36m12 |[0;0m public struct Vector2: VectorRepresentable, Equatable, CustomStringConvertible, Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'Vector2' does not conform to protocol 'Decodable'[0;0m
[0;36m13 |[0;0m
[0;36m14 |[0;0m /// A zeroed-value Vector2
[0;36m:[0;0m
[0;36m26 |[0;0m
[0;36m27 |[0;0m /// The JFloat representation of this vector's x axis
[0;36m28 |[0;0m public var x: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m29 |[0;0m
[0;36m30 |[0;0m /// The JFloat representation of this vector's y axis
[0;36m31 |[0;0m public var y: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m32 |[0;0m
[0;36m33 |[0;0m /// Returns the angle in radians of this Vector2
Swift.Decodable.init:2:1: [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m1 |[0;0m protocol Decodable {
[0;36m2 |[0;0m init(from decoder: any Decoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:93:24: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m91 |[0;0m /// Inits a vector 2 with X and Y defined as a given float
[0;36m92 |[0;0m @inlinable
[0;36m93 |[0;0m public init(value: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m94 |[0;0m x = value
[0;36m95 |[0;0m y = value
/host/spi-builder-workspace/Sources/Body.swift:50:28: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m48 |[0;0m /// 1 never decelerates. Values outside the range [0, 1] inclusive may
[0;36m49 |[0;0m /// introduce instability
[0;36m50 |[0;0m public var velDamping: [4;39mJFloat[0;0m = 0.999
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m51 |[0;0m
[0;36m52 |[0;0m /// The array of body components for this body object
/host/spi-builder-workspace/Sources/Body.swift:63:47: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m61 |[0;0m
[0;36m62 |[0;0m /// The derived rotation of the body, in radians
[0;36m63 |[0;0m public fileprivate(set) var derivedAngle: [4;39mJFloat[0;0m = 0
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m64 |[0;0m
[0;36m65 |[0;0m /// Omega (ω) is the relative angular speed of the body, in radians/s
/host/spi-builder-workspace/Sources/Body.swift:66:47: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m64 |[0;0m
[0;36m65 |[0;0m /// Omega (ω) is the relative angular speed of the body, in radians/s
[0;36m66 |[0;0m public fileprivate(set) var derivedOmega: [4;39mJFloat[0;0m = 0
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m67 |[0;0m
[0;36m68 |[0;0m // Utilize to calculate the omega for the body
/host/spi-builder-workspace/Sources/Body.swift:69:32: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m67 |[0;0m
[0;36m68 |[0;0m // Utilize to calculate the omega for the body
[0;36m69 |[0;0m fileprivate var lastAngle: [4;39mJFloat[0;0m = 0
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m70 |[0;0m
[0;36m71 |[0;0m /// Gets a list of vertices that represents the current position of each
/host/spi-builder-workspace/Sources/Body.swift:143:23: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m141 |[0;0m world: World? = nil,
[0;36m142 |[0;0m shape: ClosedShape,
[0;36m143 |[0;0m pointMasses: [[4;39mJFloat[0;0m] = [1],
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m144 |[0;0m position: Vector2 = Vector2.zero,
[0;36m145 |[0;0m angle: JFloat = 0,
/host/spi-builder-workspace/Sources/Body.swift:145:16: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m143 |[0;0m pointMasses: [JFloat] = [1],
[0;36m144 |[0;0m position: Vector2 = Vector2.zero,
[0;36m145 |[0;0m angle: [4;39mJFloat[0;0m = 0,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m146 |[0;0m scale: Vector2 = Vector2.unit,
[0;36m147 |[0;0m kinematic: Bool = false,
/host/spi-builder-workspace/Sources/Body.swift:305:39: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m303 |[0;0m /// - parameter forceUpdate:
[0;36m304 |[0;0m /// Whether to force the update of the body, even if it's a static body.
[0;36m305 |[0;0m public func updateAABB(_ elapsed: [4;39mJFloat[0;0m, forceUpdate: Bool) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m306 |[0;0m guard !isStatic || forceUpdate else {
[0;36m307 |[0;0m return
/host/spi-builder-workspace/Sources/Body.swift:361:36: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m359 |[0;0m
[0;36m360 |[0;0m /// Sets the mass for all the PointMass objects in this body.
[0;36m361 |[0;0m public func setMassAll(_ mass: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m362 |[0;0m for i in 0..<pointMasses.count {
[0;36m363 |[0;0m pointMasses[i].mass = mass
/host/spi-builder-workspace/Sources/Body.swift:370:63: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m368 |[0;0m
[0;36m369 |[0;0m /// Sets the mass for a single PointMass individually.
[0;36m370 |[0;0m public func setMassForPointMass(atIndex index: Int, mass: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m371 |[0;0m pointMasses[index].mass = mass
[0;36m372 |[0;0m
/host/spi-builder-workspace/Sources/Body.swift:381:43: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m379 |[0;0m /// sets up to the count of masses in the array, if larger, it sets the
[0;36m380 |[0;0m /// matching masses for all point masses, and ignores the rest of the array.
[0;36m381 |[0;0m public func setMass(fromList masses: [[4;39mJFloat[0;0m]) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m382 |[0;0m for (mass, i) in zip(masses, 0..<pointMasses.count) {
[0;36m383 |[0;0m pointMasses[i].mass = mass
/host/spi-builder-workspace/Sources/Body.swift:394:57: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m392 |[0;0m /// Setting the position and angle resets the current shape to the original
[0;36m393 |[0;0m /// base shape of the object.
[0;36m394 |[0;0m public func setPositionAngle(_ pos: Vector2, angle: [4;39mJFloat[0;0m, scale: Vector2) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m395 |[0;0m let matrix = Vector2.matrix(scalingBy: scale, rotatingBy: angle, translatingBy: pos)
[0;36m396 |[0;0m
/host/spi-builder-workspace/Sources/Body.swift:424:51: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m422 |[0;0m /// call this. Instead you can just access the `derivedPosition`, `DerivedAngle`,
[0;36m423 |[0;0m /// `derivedVelocity`, and `derivedOmega` properties.
[0;36m424 |[0;0m public func derivePositionAndAngle(_ elapsed: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m425 |[0;0m // No need if this is a static body, or kinematically controlled.
[0;36m426 |[0;0m if isStatic || isKinematic {
/host/spi-builder-workspace/Sources/Body.swift:522:38: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m520 |[0;0m /// Integrates the point masses for this Body.
[0;36m521 |[0;0m /// Ignored, if body is static.
[0;36m522 |[0;0m public func integrate(_ elapsed: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m523 |[0;0m if isStatic {
[0;36m524 |[0;0m return
/host/spi-builder-workspace/Sources/Body.swift:536:43: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m534 |[0;0m /// Applies the velocity damping to the point masses.
[0;36m535 |[0;0m /// Ignored, if body is static.
[0;36m536 |[0;0m public func dampenVelocity(_ elapsed: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m537 |[0;0m if isStatic {
[0;36m538 |[0;0m return
/host/spi-builder-workspace/Sources/Body.swift:550:39: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m548 |[0;0m /// Applies a rotational clockwise torque of a given force on this body.
[0;36m549 |[0;0m /// Ignored, if body is static.
[0;36m550 |[0;0m public func applyTorque(of force: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m551 |[0;0m if isStatic {
[0;36m552 |[0;0m return
/host/spi-builder-workspace/Sources/Body.swift:569:43: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m567 |[0;0m /// The method keeps the average velocity of the point masses the same during
[0;36m568 |[0;0m /// the procedure.
[0;36m569 |[0;0m public func setAngularVelocity(_ vel: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m570 |[0;0m if isStatic {
[0;36m571 |[0;0m return
/host/spi-builder-workspace/Sources/Body.swift:583:43: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m581 |[0;0m
[0;36m582 |[0;0m /// Accumulates the angular velocity for this body
[0;36m583 |[0;0m public func addAngularVelocity(_ vel: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m584 |[0;0m if isStatic {
[0;36m585 |[0;0m return
/host/spi-builder-workspace/Sources/Body.swift:743:54: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m741 |[0;0m to pt: Vector2,
[0;36m742 |[0;0m onEdge edgeNum: Int
[0;36m743 |[0;0m ) -> (hitPoint: Vector2, normal: Vector2, edgeD: [4;39mJFloat[0;0m, distance: JFloat) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m744 |[0;0m assert(pointMasses.count > 0)
[0;36m745 |[0;0m
/host/spi-builder-workspace/Sources/Body.swift:743:72: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m741 |[0;0m to pt: Vector2,
[0;36m742 |[0;0m onEdge edgeNum: Int
[0;36m743 |[0;0m ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m744 |[0;0m assert(pointMasses.count > 0)
[0;36m745 |[0;0m
/host/spi-builder-workspace/Sources/Body.swift:810:54: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m808 |[0;0m to pt: Vector2,
[0;36m809 |[0;0m onEdge edgeNum: Int
[0;36m810 |[0;0m ) -> (hitPoint: Vector2, normal: Vector2, edgeD: [4;39mJFloat[0;0m, distance: JFloat) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m811 |[0;0m let result = closestPointSquared(to: pt, onEdge: edgeNum)
[0;36m812 |[0;0m
/host/spi-builder-workspace/Sources/Body.swift:810:72: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m808 |[0;0m to pt: Vector2,
[0;36m809 |[0;0m onEdge edgeNum: Int
[0;36m810 |[0;0m ) -> (hitPoint: Vector2, normal: Vector2, edgeD: JFloat, distance: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m811 |[0;0m let result = closestPointSquared(to: pt, onEdge: edgeNum)
[0;36m812 |[0;0m
/host/spi-builder-workspace/Sources/Body.swift:835:80: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m833 |[0;0m public func closestPoint(
[0;36m834 |[0;0m to pt: Vector2
[0;36m835 |[0;0m ) -> (hitPoint: Vector2, normal: Vector2, pointA: Int, pointB: Int, edgeD: [4;39mJFloat[0;0m, distance: JFloat) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m836 |[0;0m assert(pointMasses.count > 0)
[0;36m837 |[0;0m
/host/spi-builder-workspace/Sources/Body.swift:835:98: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m833 |[0;0m public func closestPoint(
[0;36m834 |[0;0m to pt: Vector2
[0;36m835 |[0;0m ) -> (hitPoint: Vector2, normal: Vector2, pointA: Int, pointB: Int, edgeD: JFloat, distance: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m836 |[0;0m assert(pointMasses.count > 0)
[0;36m837 |[0;0m
/host/spi-builder-workspace/Sources/Body.swift:891:45: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m889 |[0;0m to pt: Vector2,
[0;36m890 |[0;0m withTolerance tolerance: JFloat = JFloat.infinity
[0;36m891 |[0;0m ) -> (edgePosition: Vector2, edgeRatio: [4;39mJFloat[0;0m, edgePoint1: Int, edgePoint2: Int)? {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m892 |[0;0m if edges.count == 0 || pointMasses.count == 0 {
[0;36m893 |[0;0m return nil
/host/spi-builder-workspace/Sources/Body.swift:890:34: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m888 |[0;0m public func closestEdge(
[0;36m889 |[0;0m to pt: Vector2,
[0;36m890 |[0;0m withTolerance tolerance: [4;39mJFloat[0;0m = JFloat.infinity
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m891 |[0;0m ) -> (edgePosition: Vector2, edgeRatio: JFloat, edgePoint1: Int, edgePoint2: Int)? {
[0;36m892 |[0;0m if edges.count == 0 || pointMasses.count == 0 {
/host/spi-builder-workspace/Sources/Body.swift:936:77: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m934 |[0;0m /// Find the closest PointMass index in this body, given a global point
[0;36m935 |[0;0m /// - precondition: There is at least one point mass in this body
[0;36m936 |[0;0m public func closestPointMass(to pos: Vector2) -> (point: Int, distance: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m937 |[0;0m assert(pointMasses.count > 0)
[0;36m938 |[0;0m
/host/spi-builder-workspace/Sources/BodyCollisionInformation.swift:29:23: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m27 |[0;0m /// A value from 0 - 1 specifying at which point in the edge
[0;36m28 |[0;0m /// bodyBpmA - bodyBpmB is the penetration occurring.
[0;36m29 |[0;0m public var edgeD: [4;39mJFloat[0;0m = 0
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m30 |[0;0m /// Global normal for the collision. Always the penetrated edge's normal.
[0;36m31 |[0;0m public var normal = Vector2.zero
/host/spi-builder-workspace/Sources/BodyCollisionInformation.swift:34:29: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m32 |[0;0m /// Penetration distance.
[0;36m33 |[0;0m /// Is the distance required to move bodyApm in order to solve the collision
[0;36m34 |[0;0m public var penetration: [4;39mJFloat[0;0m = 0
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m35 |[0;0m
[0;36m36 |[0;0m /// Inits this collision information with no edge information.
/host/spi-builder-workspace/Sources/BodyEdge.swift:36:24: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m34 |[0;0m
[0;36m35 |[0;0m /// The edge's length
[0;36m36 |[0;0m public var length: [4;39mJFloat[0;0m = 0
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m37 |[0;0m
[0;36m38 |[0;0m /// The edge's length, squared
/host/spi-builder-workspace/Sources/BodyEdge.swift:39:31: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m37 |[0;0m
[0;36m38 |[0;0m /// The edge's length, squared
[0;36m39 |[0;0m public var lengthSquared: [4;39mJFloat[0;0m = 0
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m40 |[0;0m
[0;36m41 |[0;0m public init() {
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: [1;31merror: [1;39mtype 'BodyEdge' does not conform to protocol 'Decodable'[0;0m
[0;36m8 |[0;0m
[0;36m9 |[0;0m /// Contains information about the edge of a body
[0;36m10 |[0;0m public struct BodyEdge: Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'BodyEdge' does not conform to protocol 'Decodable'[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// The index of the edge on the body
[0;36m:[0;0m
[0;36m34 |[0;0m
[0;36m35 |[0;0m /// The edge's length
[0;36m36 |[0;0m public var length: JFloat = 0
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m37 |[0;0m
[0;36m38 |[0;0m /// The edge's length, squared
[0;36m39 |[0;0m public var lengthSquared: JFloat = 0
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m40 |[0;0m
[0;36m41 |[0;0m public init() {
Swift.Decodable.init:2:1: [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m1 |[0;0m protocol Decodable {
[0;36m2 |[0;0m init(from decoder: any Decoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/BodyEdge.swift:10:15: [1;31merror: [1;39mtype 'BodyEdge' does not conform to protocol 'Encodable'[0;0m
[0;36m8 |[0;0m
[0;36m9 |[0;0m /// Contains information about the edge of a body
[0;36m10 |[0;0m public struct BodyEdge: Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'BodyEdge' does not conform to protocol 'Encodable'[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// The index of the edge on the body
[0;36m:[0;0m
[0;36m34 |[0;0m
[0;36m35 |[0;0m /// The edge's length
[0;36m36 |[0;0m public var length: JFloat = 0
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m37 |[0;0m
[0;36m38 |[0;0m /// The edge's length, squared
[0;36m39 |[0;0m public var lengthSquared: JFloat = 0
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m40 |[0;0m
[0;36m41 |[0;0m public init() {
Swift.Encodable.encode:2:6: [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m1 |[0;0m protocol Encodable {
[0;36m2 |[0;0m func encode(to encoder: any Encoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/JointLink.swift:20:15: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m18 |[0;0m
[0;36m19 |[0;0m /// Gets the total mass of the subject of this joint link
[0;36m20 |[0;0m var mass: [4;39mJFloat[0;0m { get }
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m21 |[0;0m
[0;36m22 |[0;0m /// Gets a value specifying whether the object referenced by this
/host/spi-builder-workspace/Sources/BodyJoint.swift:40:29: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m38 |[0;0m ///
[0;36m39 |[0;0m /// - Parameter dt: The delta time to update the resolve on
[0;36m40 |[0;0m open func resolve(_ dt: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m41 |[0;0m
[0;36m42 |[0;0m }
/host/spi-builder-workspace/Sources/CollisionObserver.swift:22:110: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m20 |[0;0m /// When this happens, the collision is ignored and dropped from the resolve
[0;36m21 |[0;0m /// list, and this delegate notifier is called.
[0;36m22 |[0;0m func bodyCollision(_ info: BodyCollisionInformation, didExceedPenetrationThreshold penetrationThreshold: [4;39mJFloat[0;0m)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m23 |[0;0m }
[0;36m24 |[0;0m
/host/spi-builder-workspace/Sources/CollisionObserver.swift:31:110: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m29 |[0;0m }
[0;36m30 |[0;0m
[0;36m31 |[0;0m func bodyCollision(_ info: BodyCollisionInformation, didExceedPenetrationThreshold penetrationThreshold: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m32 |[0;0m
[0;36m33 |[0;0m }
/host/spi-builder-workspace/Sources/Components/PressureComponent.swift:20:41: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m18 |[0;0m /// Equal the polygonal area of the body's point masses.
[0;36m19 |[0;0m /// Is clamped to always be be >= 0.5
[0;36m20 |[0;0m fileprivate(set) public var volume: [4;39mJFloat[0;0m = 0
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m21 |[0;0m
[0;36m22 |[0;0m /// The gas pressure coefficient for the pressure component.
/host/spi-builder-workspace/Sources/Components/PressureComponent.swift:24:29: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m22 |[0;0m /// The gas pressure coefficient for the pressure component.
[0;36m23 |[0;0m /// Higher values result in higher expansion and resistance to compression.
[0;36m24 |[0;0m public var gasPressure: [4;39mJFloat[0;0m = 0
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m25 |[0;0m
[0;36m26 |[0;0m public init() {
/host/spi-builder-workspace/Sources/Components/PressureComponent.swift:62:29: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m60 |[0;0m /// Higher values result in higher resistance to compression and higher
[0;36m61 |[0;0m /// expansion.
[0;36m62 |[0;0m public var gasPressure: [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m63 |[0;0m
[0;36m64 |[0;0m public init(gasPressure: JFloat = 0) {
/host/spi-builder-workspace/Sources/Components/PressureComponent.swift:55:15: [1;31merror: [1;39mtype 'PressureComponentCreator' does not conform to protocol 'Decodable'[0;0m
[0;36m53 |[0;0m
[0;36m54 |[0;0m // Creator for the Spring component
[0;36m55 |[0;0m public struct PressureComponentCreator: BodyComponentCreator, Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'PressureComponentCreator' does not conform to protocol 'Decodable'[0;0m
[0;36m56 |[0;0m
[0;36m57 |[0;0m public static var bodyComponentClass: BodyComponent.Type = PressureComponent.self
[0;36m:[0;0m
[0;36m60 |[0;0m /// Higher values result in higher resistance to compression and higher
[0;36m61 |[0;0m /// expansion.
[0;36m62 |[0;0m public var gasPressure: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m63 |[0;0m
[0;36m64 |[0;0m public init(gasPressure: JFloat = 0) {
Swift.Decodable.init:2:1: [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m1 |[0;0m protocol Decodable {
[0;36m2 |[0;0m init(from decoder: any Decoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/Components/PressureComponent.swift:64:30: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m62 |[0;0m public var gasPressure: JFloat
[0;36m63 |[0;0m
[0;36m64 |[0;0m public init(gasPressure: [4;39mJFloat[0;0m = 0) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m65 |[0;0m self.gasPressure = gasPressure
[0;36m66 |[0;0m }
/host/spi-builder-workspace/Sources/Components/PressureComponent.swift:55:15: [1;31merror: [1;39mtype 'PressureComponentCreator' does not conform to protocol 'Encodable'[0;0m
[0;36m53 |[0;0m
[0;36m54 |[0;0m // Creator for the Spring component
[0;36m55 |[0;0m public struct PressureComponentCreator: BodyComponentCreator, Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'PressureComponentCreator' does not conform to protocol 'Encodable'[0;0m
[0;36m56 |[0;0m
[0;36m57 |[0;0m public static var bodyComponentClass: BodyComponent.Type = PressureComponent.self
[0;36m:[0;0m
[0;36m60 |[0;0m /// Higher values result in higher resistance to compression and higher
[0;36m61 |[0;0m /// expansion.
[0;36m62 |[0;0m public var gasPressure: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m63 |[0;0m
[0;36m64 |[0;0m public init(gasPressure: JFloat = 0) {
Swift.Encodable.encode:2:6: [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m1 |[0;0m protocol Encodable {
[0;36m2 |[0;0m func encode(to encoder: any Encoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/Components/ShapeMatchComponent.swift:16:35: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m14 |[0;0m /// The spring constant for the shape matching of the body - ignored if
[0;36m15 |[0;0m /// shape matching is off
[0;36m16 |[0;0m fileprivate var shapeSpringK: [4;39mJFloat[0;0m = 200
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m17 |[0;0m /// The spring damping for the shape matching of the body - ignored if the
[0;36m18 |[0;0m /// shape matching is off
/host/spi-builder-workspace/Sources/Components/ShapeMatchComponent.swift:19:38: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m17 |[0;0m /// The spring damping for the shape matching of the body - ignored if the
[0;36m18 |[0;0m /// shape matching is off
[0;36m19 |[0;0m fileprivate var shapeSpringDamp: [4;39mJFloat[0;0m = 10
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m20 |[0;0m
[0;36m21 |[0;0m public init() {
/host/spi-builder-workspace/Sources/Components/ShapeMatchComponent.swift:30:54: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m28 |[0;0m
[0;36m29 |[0;0m /// Sets the shape-matching spring constants
[0;36m30 |[0;0m public func setShapeMatchingConstants(_ springK: [4;39mJFloat[0;0m, _ damping: JFloat) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m31 |[0;0m shapeSpringK = springK
[0;36m32 |[0;0m shapeSpringDamp = damping
/host/spi-builder-workspace/Sources/Components/ShapeMatchComponent.swift:30:73: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m28 |[0;0m
[0;36m29 |[0;0m /// Sets the shape-matching spring constants
[0;36m30 |[0;0m public func setShapeMatchingConstants(_ springK: JFloat, _ damping: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m31 |[0;0m shapeSpringK = springK
[0;36m32 |[0;0m shapeSpringDamp = damping
/host/spi-builder-workspace/Sources/Components/ShapeMatchComponent.swift:102:109: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m100 |[0;0m }
[0;36m101 |[0;0m
[0;36m102 |[0;0m fileprivate func deriveSubsetPositionAngle(on body: Body, indices: [Int]) -> (position: Vector2, angle: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m103 |[0;0m let meanPos = body.isPined ? PointMass.averagePosition(of: body.pointMasses) : body.derivedPos
[0;36m104 |[0;0m
/host/spi-builder-workspace/Sources/Components/ShapeMatchComponent.swift:176:30: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m174 |[0;0m /// The spring constant for the shape matching of the body - ignored if
[0;36m175 |[0;0m /// shape matching is off
[0;36m176 |[0;0m public var shapeSpringK: [4;39mJFloat[0;0m = 200
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m177 |[0;0m /// The spring damping for the shape matching of the body - ignored if the
[0;36m178 |[0;0m /// shape matching is off
/host/spi-builder-workspace/Sources/Components/ShapeMatchComponent.swift:179:33: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m177 |[0;0m /// The spring damping for the shape matching of the body - ignored if the
[0;36m178 |[0;0m /// shape matching is off
[0;36m179 |[0;0m public var shapeSpringDamp: [4;39mJFloat[0;0m = 10
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m180 |[0;0m
[0;36m181 |[0;0m public init(
/host/spi-builder-workspace/Sources/Components/ShapeMatchComponent.swift:161:15: [1;31merror: [1;39mtype 'ShapeMatchComponentCreator' does not conform to protocol 'Decodable'[0;0m
[0;36m159 |[0;0m
[0;36m160 |[0;0m /// Creator for the Shape Match component
[0;36m161 |[0;0m public struct ShapeMatchComponentCreator: BodyComponentCreator, Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'ShapeMatchComponentCreator' does not conform to protocol 'Decodable'[0;0m
[0;36m162 |[0;0m
[0;36m163 |[0;0m public static var bodyComponentClass: BodyComponent.Type = ShapeMatchComponent.self
[0;36m:[0;0m
[0;36m174 |[0;0m /// The spring constant for the shape matching of the body - ignored if
[0;36m175 |[0;0m /// shape matching is off
[0;36m176 |[0;0m public var shapeSpringK: JFloat = 200
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m177 |[0;0m /// The spring damping for the shape matching of the body - ignored if the
[0;36m178 |[0;0m /// shape matching is off
[0;36m179 |[0;0m public var shapeSpringDamp: JFloat = 10
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m180 |[0;0m
[0;36m181 |[0;0m public init(
Swift.Decodable.init:2:1: [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m1 |[0;0m protocol Decodable {
[0;36m2 |[0;0m init(from decoder: any Decoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/Components/ShapeMatchComponent.swift:184:23: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m182 |[0;0m shapeMatchingOn: Bool = true,
[0;36m183 |[0;0m target: ShapeMatchComponent.Target = .fullShape,
[0;36m184 |[0;0m shapeSpringK: [4;39mJFloat[0;0m = 200,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m185 |[0;0m shapeSpringDamp: JFloat = 10
[0;36m186 |[0;0m ) {
/host/spi-builder-workspace/Sources/Components/ShapeMatchComponent.swift:185:26: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m183 |[0;0m target: ShapeMatchComponent.Target = .fullShape,
[0;36m184 |[0;0m shapeSpringK: JFloat = 200,
[0;36m185 |[0;0m shapeSpringDamp: [4;39mJFloat[0;0m = 10
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m186 |[0;0m ) {
[0;36m187 |[0;0m self.shapeMatchingOn = shapeMatchingOn
/host/spi-builder-workspace/Sources/Components/ShapeMatchComponent.swift:161:15: [1;31merror: [1;39mtype 'ShapeMatchComponentCreator' does not conform to protocol 'Encodable'[0;0m
[0;36m159 |[0;0m
[0;36m160 |[0;0m /// Creator for the Shape Match component
[0;36m161 |[0;0m public struct ShapeMatchComponentCreator: BodyComponentCreator, Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'ShapeMatchComponentCreator' does not conform to protocol 'Encodable'[0;0m
[0;36m162 |[0;0m
[0;36m163 |[0;0m public static var bodyComponentClass: BodyComponent.Type = ShapeMatchComponent.self
[0;36m:[0;0m
[0;36m174 |[0;0m /// The spring constant for the shape matching of the body - ignored if
[0;36m175 |[0;0m /// shape matching is off
[0;36m176 |[0;0m public var shapeSpringK: JFloat = 200
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m177 |[0;0m /// The spring damping for the shape matching of the body - ignored if the
[0;36m178 |[0;0m /// shape matching is off
[0;36m179 |[0;0m public var shapeSpringDamp: JFloat = 10
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m180 |[0;0m
[0;36m181 |[0;0m public init(
Swift.Encodable.encode:2:6: [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m1 |[0;0m protocol Encodable {
[0;36m2 |[0;0m func encode(to encoder: any Encoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:33:34: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m31 |[0;0m
[0;36m32 |[0;0m /// The spring constant for the edges of the spring body
[0;36m33 |[0;0m fileprivate var edgeSpringK: [4;39mJFloat[0;0m = 50
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m34 |[0;0m /// The spring damping for the edges of the spring body
[0;36m35 |[0;0m fileprivate var edgeSpringDamp: JFloat = 2
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:35:37: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m33 |[0;0m fileprivate var edgeSpringK: JFloat = 50
[0;36m34 |[0;0m /// The spring damping for the edges of the spring body
[0;36m35 |[0;0m fileprivate var edgeSpringDamp: [4;39mJFloat[0;0m = 2
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m36 |[0;0m
[0;36m37 |[0;0m /// The spring constant for the shape matching of the body - ignored if
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:39:35: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m37 |[0;0m /// The spring constant for the shape matching of the body - ignored if
[0;36m38 |[0;0m /// shape matching is off
[0;36m39 |[0;0m fileprivate var shapeSpringK: [4;39mJFloat[0;0m = 200
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m40 |[0;0m /// The spring damping for the shape matching of the body - ignored if the
[0;36m41 |[0;0m /// shape matching is off
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:42:38: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m40 |[0;0m /// The spring damping for the shape matching of the body - ignored if the
[0;36m41 |[0;0m /// shape matching is off
[0;36m42 |[0;0m fileprivate var shapeSpringDamp: [4;39mJFloat[0;0m = 10
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m43 |[0;0m
[0;36m44 |[0;0m public init() {
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:58:18: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m56 |[0;0m pointA: Int,
[0;36m57 |[0;0m pointB: Int,
[0;36m58 |[0;0m springK: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m59 |[0;0m damping: JFloat,
[0;36m60 |[0;0m plasticity: SpringPlasticity? = nil
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:59:18: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m57 |[0;0m pointB: Int,
[0;36m58 |[0;0m springK: JFloat,
[0;36m59 |[0;0m damping: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m60 |[0;0m plasticity: SpringPlasticity? = nil
[0;36m61 |[0;0m ) -> InternalSpring {
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:85:18: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m83 |[0;0m pointA: Int,
[0;36m84 |[0;0m pointB: Int,
[0;36m85 |[0;0m springK: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m86 |[0;0m damping: JFloat,
[0;36m87 |[0;0m dist: RestDistance,
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:86:18: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m84 |[0;0m pointB: Int,
[0;36m85 |[0;0m springK: JFloat,
[0;36m86 |[0;0m damping: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m87 |[0;0m dist: RestDistance,
[0;36m88 |[0;0m plasticity: SpringPlasticity? = nil
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:121:54: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m119 |[0;0m
[0;36m120 |[0;0m /// Sets the shape-matching spring constants
[0;36m121 |[0;0m public func setShapeMatchingConstants(_ springK: [4;39mJFloat[0;0m, _ damping: JFloat) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m122 |[0;0m shapeSpringK = springK
[0;36m123 |[0;0m shapeSpringDamp = damping
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:121:73: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m119 |[0;0m
[0;36m120 |[0;0m /// Sets the shape-matching spring constants
[0;36m121 |[0;0m public func setShapeMatchingConstants(_ springK: JFloat, _ damping: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m122 |[0;0m shapeSpringK = springK
[0;36m123 |[0;0m shapeSpringDamp = damping
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:129:22: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m127 |[0;0m /// (edge springs)
[0;36m128 |[0;0m public func setEdgeSpringConstants(
[0;36m129 |[0;0m edgeSpringK: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m130 |[0;0m _ edgeSpringDamp: JFloat
[0;36m131 |[0;0m ) {
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:130:27: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m128 |[0;0m public func setEdgeSpringConstants(
[0;36m129 |[0;0m edgeSpringK: JFloat,
[0;36m130 |[0;0m _ edgeSpringDamp: [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m131 |[0;0m ) {
[0;36m132 |[0;0m // we know that the first n springs in the list are the edge springs.
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:144:20: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m142 |[0;0m public func setSpringConstants(
[0;36m143 |[0;0m forSpringIndex springID: Int,
[0;36m144 |[0;0m _ springK: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m145 |[0;0m _ springDamp: JFloat
[0;36m146 |[0;0m ) {
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:145:23: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m143 |[0;0m forSpringIndex springID: Int,
[0;36m144 |[0;0m _ springK: JFloat,
[0;36m145 |[0;0m _ springDamp: [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m146 |[0;0m ) {
[0;36m147 |[0;0m // index is for all internal springs, AFTER the default edge springs.
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:174:68: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m172 |[0;0m /// This ignores the default edge springs, so the index is always
[0;36m173 |[0;0m /// `+ body.pointMasses.count`
[0;36m174 |[0;0m public func springCoefficient(forSpringIndex springID: Int) -> [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m175 |[0;0m return springs[edgeSpringsCount + springID].coefficient
[0;36m176 |[0;0m }
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:181:64: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m179 |[0;0m /// This ignores the default edge springs, so the index is always
[0;36m180 |[0;0m /// `+ body.pointMasses.count`
[0;36m181 |[0;0m public func springDamping(forSpringIndex springID: Int) -> [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m182 |[0;0m return springs[edgeSpringsCount + springID].damping
[0;36m183 |[0;0m }
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:281:29: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m279 |[0;0m
[0;36m280 |[0;0m /// The spring constant for the edges of the spring body
[0;36m281 |[0;0m public var edgeSpringK: [4;39mJFloat[0;0m = 50
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m282 |[0;0m /// The spring damping for the edges of the spring body
[0;36m283 |[0;0m public var edgeSpringDamp: JFloat = 2
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:283:32: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m281 |[0;0m public var edgeSpringK: JFloat = 50
[0;36m282 |[0;0m /// The spring damping for the edges of the spring body
[0;36m283 |[0;0m public var edgeSpringDamp: [4;39mJFloat[0;0m = 2
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m284 |[0;0m
[0;36m285 |[0;0m /// The spring constant for the shape matching of the body - ignored if
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:287:30: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m285 |[0;0m /// The spring constant for the shape matching of the body - ignored if
[0;36m286 |[0;0m /// shape matching is off
[0;36m287 |[0;0m public var shapeSpringK: [4;39mJFloat[0;0m = 200
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m288 |[0;0m /// The spring damping for the shape matching of the body - ignored if the
[0;36m289 |[0;0m /// shape matching is off
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:290:33: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m288 |[0;0m /// The spring damping for the shape matching of the body - ignored if the
[0;36m289 |[0;0m /// shape matching is off
[0;36m290 |[0;0m public var shapeSpringDamp: [4;39mJFloat[0;0m = 10
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m291 |[0;0m
[0;36m292 |[0;0m /// An array of inner springs for a body
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:271:15: [1;31merror: [1;39mtype 'SpringComponentCreator' does not conform to protocol 'Decodable'[0;0m
[0;36m269 |[0;0m
[0;36m270 |[0;0m /// Creator for the Spring component
[0;36m271 |[0;0m public struct SpringComponentCreator: BodyComponentCreator, Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'SpringComponentCreator' does not conform to protocol 'Decodable'[0;0m
[0;36m272 |[0;0m
[0;36m273 |[0;0m public static var bodyComponentClass: BodyComponent.Type = SpringComponent.self
[0;36m:[0;0m
[0;36m279 |[0;0m
[0;36m280 |[0;0m /// The spring constant for the edges of the spring body
[0;36m281 |[0;0m public var edgeSpringK: JFloat = 50
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m282 |[0;0m /// The spring damping for the edges of the spring body
[0;36m283 |[0;0m public var edgeSpringDamp: JFloat = 2
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m284 |[0;0m
[0;36m285 |[0;0m /// The spring constant for the shape matching of the body - ignored if
[0;36m286 |[0;0m /// shape matching is off
[0;36m287 |[0;0m public var shapeSpringK: JFloat = 200
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m288 |[0;0m /// The spring damping for the shape matching of the body - ignored if the
[0;36m289 |[0;0m /// shape matching is off
[0;36m290 |[0;0m public var shapeSpringDamp: JFloat = 10
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m291 |[0;0m
[0;36m292 |[0;0m /// An array of inner springs for a body
Swift.Decodable.init:2:1: [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m1 |[0;0m protocol Decodable {
[0;36m2 |[0;0m init(from decoder: any Decoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:297:22: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m295 |[0;0m public init(
[0;36m296 |[0;0m shapeMatchingOn: Bool = true,
[0;36m297 |[0;0m edgeSpringK: [4;39mJFloat[0;0m = 50, edgeSpringDamp: JFloat = 2,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m298 |[0;0m shapeSpringK: JFloat = 200, shapeSpringDamp: JFloat = 10,
[0;36m299 |[0;0m innerSprings: [InternalSpring] = []
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:297:51: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m295 |[0;0m public init(
[0;36m296 |[0;0m shapeMatchingOn: Bool = true,
[0;36m297 |[0;0m edgeSpringK: JFloat = 50, edgeSpringDamp: [4;39mJFloat[0;0m = 2,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m298 |[0;0m shapeSpringK: JFloat = 200, shapeSpringDamp: JFloat = 10,
[0;36m299 |[0;0m innerSprings: [InternalSpring] = []
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:298:23: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m296 |[0;0m shapeMatchingOn: Bool = true,
[0;36m297 |[0;0m edgeSpringK: JFloat = 50, edgeSpringDamp: JFloat = 2,
[0;36m298 |[0;0m shapeSpringK: [4;39mJFloat[0;0m = 200, shapeSpringDamp: JFloat = 10,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m299 |[0;0m innerSprings: [InternalSpring] = []
[0;36m300 |[0;0m ) {
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:298:54: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m296 |[0;0m shapeMatchingOn: Bool = true,
[0;36m297 |[0;0m edgeSpringK: JFloat = 50, edgeSpringDamp: JFloat = 2,
[0;36m298 |[0;0m shapeSpringK: JFloat = 200, shapeSpringDamp: [4;39mJFloat[0;0m = 10,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m299 |[0;0m innerSprings: [InternalSpring] = []
[0;36m300 |[0;0m ) {
/host/spi-builder-workspace/Sources/Components/SpringComponent.swift:271:15: [1;31merror: [1;39mtype 'SpringComponentCreator' does not conform to protocol 'Encodable'[0;0m
[0;36m269 |[0;0m
[0;36m270 |[0;0m /// Creator for the Spring component
[0;36m271 |[0;0m public struct SpringComponentCreator: BodyComponentCreator, Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'SpringComponentCreator' does not conform to protocol 'Encodable'[0;0m
[0;36m272 |[0;0m
[0;36m273 |[0;0m public static var bodyComponentClass: BodyComponent.Type = SpringComponent.self
[0;36m:[0;0m
[0;36m279 |[0;0m
[0;36m280 |[0;0m /// The spring constant for the edges of the spring body
[0;36m281 |[0;0m public var edgeSpringK: JFloat = 50
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m282 |[0;0m /// The spring damping for the edges of the spring body
[0;36m283 |[0;0m public var edgeSpringDamp: JFloat = 2
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m284 |[0;0m
[0;36m285 |[0;0m /// The spring constant for the shape matching of the body - ignored if
[0;36m286 |[0;0m /// shape matching is off
[0;36m287 |[0;0m public var shapeSpringK: JFloat = 200
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m288 |[0;0m /// The spring damping for the shape matching of the body - ignored if the
[0;36m289 |[0;0m /// shape matching is off
[0;36m290 |[0;0m public var shapeSpringDamp: JFloat = 10
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m291 |[0;0m
[0;36m292 |[0;0m /// An array of inner springs for a body
Swift.Encodable.encode:2:6: [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m1 |[0;0m protocol Encodable {
[0;36m2 |[0;0m func encode(to encoder: any Encoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/AABB.swift:28:19: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m26 |[0;0m /// Gets the X position of this AABB
[0;36m27 |[0;0m @inlinable
[0;36m28 |[0;0m public var x: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m29 |[0;0m return minimum.x
[0;36m30 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/AABB.swift:33:19: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m31 |[0;0m /// Gets the Y position of this AABB
[0;36m32 |[0;0m @inlinable
[0;36m33 |[0;0m public var y: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m34 |[0;0m return minimum.y
[0;36m35 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/AABB.swift:40:23: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m38 |[0;0m /// This is the same as `maximum.x - minimum.x`
[0;36m39 |[0;0m @inlinable
[0;36m40 |[0;0m public var width: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m41 |[0;0m return maximum.x - minimum.x
[0;36m42 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/AABB.swift:47:24: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m45 |[0;0m /// This is the same as `maximum.y - minimum.y`
[0;36m46 |[0;0m @inlinable
[0;36m47 |[0;0m public var height: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m48 |[0;0m return maximum.y - minimum.y
[0;36m49 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/AABB.swift:53:22: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m51 |[0;0m /// Gets the middle X position of this AABB
[0;36m52 |[0;0m @inlinable
[0;36m53 |[0;0m public var midX: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m54 |[0;0m return (minimum.x + maximum.x) / 2
[0;36m55 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/AABB.swift:58:22: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m56 |[0;0m /// Gets the middle Y position of this AABB
[0;36m57 |[0;0m @inlinable
[0;36m58 |[0;0m public var midY: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m59 |[0;0m return (minimum.y + maximum.y) / 2
[0;36m60 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:279:45: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m277 |[0;0m
[0;36m278 |[0;0m @inlinable
[0;36m279 |[0;0m static public func /(lhs: Vector2, rhs: [4;39mJFloat[0;0m) -> Vector2 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m280 |[0;0m return Vector2(x: lhs.x / rhs, y: lhs.y / rhs)
[0;36m281 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:290:31: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m288 |[0;0m
[0;36m289 |[0;0m @inlinable
[0;36m290 |[0;0m static public func /(lhs: [4;39mJFloat[0;0m, rhs: Vector2) -> Vector2 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m291 |[0;0m return Vector2(x: lhs / rhs.x, y: lhs / rhs.y)
[0;36m292 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:269:46: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m267 |[0;0m
[0;36m268 |[0;0m @inlinable
[0;36m269 |[0;0m static public func / (lhs: Vector3, rhs: [4;39mJFloat[0;0m) -> Vector3 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m270 |[0;0m return Vector3(x: lhs.x / rhs, y: lhs.y / rhs, z: lhs.z / rhs)
[0;36m271 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:283:32: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m281 |[0;0m
[0;36m282 |[0;0m @inlinable
[0;36m283 |[0;0m static public func / (lhs: [4;39mJFloat[0;0m, rhs: Vector3) -> Vector3 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m284 |[0;0m return Vector3(x: lhs / rhs.x, y: lhs / rhs.y, z: lhs / rhs.z)
[0;36m285 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:264:45: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m262 |[0;0m // JFloat interaction
[0;36m263 |[0;0m @inlinable
[0;36m264 |[0;0m static public func +(lhs: Vector2, rhs: [4;39mJFloat[0;0m) -> Vector2 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m265 |[0;0m return Vector2(x: lhs.x + rhs, y: lhs.y + rhs)
[0;36m266 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:254:46: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m252 |[0;0m // JFloat interaction
[0;36m253 |[0;0m @inlinable
[0;36m254 |[0;0m static public func + (lhs: Vector3, rhs: [4;39mJFloat[0;0m) -> Vector3 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m255 |[0;0m return Vector3(x: lhs.x + rhs, y: lhs.y + rhs, z: lhs.z + rhs)
[0;36m256 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/AABB.swift:54:40: [1;31merror: [1;39mno '/' candidates produce the expected contextual result type '_'[0;0m
[0;36m52 |[0;0m @inlinable
[0;36m53 |[0;0m public var midX: JFloat {
[0;36m54 |[0;0m return (minimum.x + maximum.x) / 2
[0;36m|[0;0m `- [1;31merror: [1;39mno '/' candidates produce the expected contextual result type '_'[0;0m
[0;36m55 |[0;0m }
[0;36m56 |[0;0m /// Gets the middle Y position of this AABB
Swift.DurationProtocol./:2:13: [1;39mnote: [1;39m'/' produces '_', not the expected contextual result type '_'[0;0m
[0;36m1 |[0;0m protocol DurationProtocol {
[0;36m2 |[0;0m static func / (lhs: Self, rhs: Int) -> Self}
[0;36m|[0;0m |- [1;39mnote: [1;39m'/' produces '_', not the expected contextual result type '_'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39m'/' produces 'Self', not the expected contextual result type '_'[0;0m
[0;36m3 |[0;0m
Swift.BinaryInteger./:2:13: [1;39mnote: [1;39m'/' produces '_', not the expected contextual result type '_'[0;0m
[0;36m1 |[0;0m protocol BinaryInteger {
[0;36m2 |[0;0m static func / (lhs: Self, rhs: Self) -> Self}
[0;36m|[0;0m |- [1;39mnote: [1;39m'/' produces '_', not the expected contextual result type '_'[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39m'/' produces 'Self', not the expected contextual result type '_'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39m'/' produces 'Int', not the expected contextual result type '_'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/AABB.swift:59:40: [1;31merror: [1;39mno '/' candidates produce the expected contextual result type '_'[0;0m
[0;36m57 |[0;0m @inlinable
[0;36m58 |[0;0m public var midY: JFloat {
[0;36m59 |[0;0m return (minimum.y + maximum.y) / 2
[0;36m|[0;0m `- [1;31merror: [1;39mno '/' candidates produce the expected contextual result type '_'[0;0m
[0;36m60 |[0;0m }
[0;36m61 |[0;0m
Swift.DurationProtocol./:2:13: [1;39mnote: [1;39m'/' produces '_', not the expected contextual result type '_'[0;0m
[0;36m1 |[0;0m protocol DurationProtocol {
[0;36m2 |[0;0m static func / (lhs: Self, rhs: Int) -> Self}
[0;36m|[0;0m |- [1;39mnote: [1;39m'/' produces '_', not the expected contextual result type '_'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39m'/' produces 'Self', not the expected contextual result type '_'[0;0m
[0;36m3 |[0;0m
Swift.BinaryInteger./:2:13: [1;39mnote: [1;39m'/' produces '_', not the expected contextual result type '_'[0;0m
[0;36m1 |[0;0m protocol BinaryInteger {
[0;36m2 |[0;0m static func / (lhs: Self, rhs: Self) -> Self}
[0;36m|[0;0m |- [1;39mnote: [1;39m'/' produces '_', not the expected contextual result type '_'[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39m'/' produces 'Self', not the expected contextual result type '_'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39m'/' produces 'Int', not the expected contextual result type '_'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/ClosedShape.swift:55:39: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m53 |[0;0m /// Adds a vertex to this closed shape
[0;36m54 |[0;0m @inlinable
[0;36m55 |[0;0m public mutating func addVertex(x: [4;39mJFloat[0;0m, y: JFloat) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m56 |[0;0m addVertex(Vector2(x: x, y: y))
[0;36m57 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/ClosedShape.swift:55:50: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m53 |[0;0m /// Adds a vertex to this closed shape
[0;36m54 |[0;0m @inlinable
[0;36m55 |[0;0m public mutating func addVertex(x: JFloat, y: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m56 |[0;0m addVertex(Vector2(x: x, y: y))
[0;36m57 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/ClosedShape.swift:101:36: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m99 |[0;0m @inlinable
[0;36m100 |[0;0m public mutating func transformOwnBy(
[0;36m101 |[0;0m rotatingBy angleInRadians: [4;39mJFloat[0;0m = 0,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m102 |[0;0m scalingBy scale: Vector2 = .unit
[0;36m103 |[0;0m ) {
/host/spi-builder-workspace/Sources/Geometry/ClosedShape.swift:128:36: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m126 |[0;0m public func transformedBy(
[0;36m127 |[0;0m translatingBy worldPos: Vector2 = .zero,
[0;36m128 |[0;0m rotatingBy angleInRadians: [4;39mJFloat[0;0m = 0,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m129 |[0;0m scalingBy localScale: Vector2 = .unit
[0;36m130 |[0;0m ) -> ClosedShape {
/host/spi-builder-workspace/Sources/Geometry/ClosedShape.swift:150:25: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m148 |[0;0m _ target: inout [Vector2],
[0;36m149 |[0;0m worldPos: Vector2,
[0;36m150 |[0;0m angleInRadians: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m151 |[0;0m localScale: Vector2 = Vector2.unit
[0;36m152 |[0;0m ) {
/host/spi-builder-workspace/Sources/Geometry/ClosedShape.swift:200:48: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m198 |[0;0m /// Creates a closed shape that represents a circle of a given radius, with
[0;36m199 |[0;0m /// the specified number of points around its circumference
[0;36m200 |[0;0m public static func circle(ofRadius radius: [4;39mJFloat[0;0m, pointCount: Int) -> ClosedShape {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m201 |[0;0m return .create { shape in
[0;36m202 |[0;0m for i in 0..<pointCount
/host/spi-builder-workspace/Sources/Geometry/ClosedShape.swift:212:46: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m210 |[0;0m /// Creates a closed shape that represents a square, with side of the
[0;36m211 |[0;0m /// specified length
[0;36m212 |[0;0m public static func square(ofSide length: [4;39mJFloat[0;0m) -> ClosedShape {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m213 |[0;0m return rectangle(ofSides: Vector2(value: length))
[0;36m214 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:349:27: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m347 |[0;0m static public func matrix(
[0;36m348 |[0;0m scalingBy scale: Vector2 = Vector2.unit,
[0;36m349 |[0;0m rotatingBy angle: [4;39mJFloat[0;0m = 0,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m350 |[0;0m translatingBy translate: Vector2 = Vector2.zero
[0;36m351 |[0;0m ) -> Matrix3x3 {
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:274:45: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m272 |[0;0m
[0;36m273 |[0;0m @inlinable
[0;36m274 |[0;0m static public func *(lhs: Vector2, rhs: [4;39mJFloat[0;0m) -> Vector2 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m275 |[0;0m return Vector2(x: lhs.x * rhs, y: lhs.y * rhs)
[0;36m276 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:264:46: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m262 |[0;0m
[0;36m263 |[0;0m @inlinable
[0;36m264 |[0;0m static public func * (lhs: Vector3, rhs: [4;39mJFloat[0;0m) -> Vector3 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m265 |[0;0m return Vector3(x: lhs.x * rhs, y: lhs.y * rhs, z: lhs.z * rhs)
[0;36m266 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift:13:70: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m11 |[0;0m @_specialize(where T == Array<Vector2>)
[0;36m12 |[0;0m @_specialize(where T == ContiguousArray<PointMass>)
[0;36m13 |[0;0m public func polygonArea<T: BidirectionalCollection>(of points: T) -> [4;39mJFloat[0;0m where T.Iterator.Element: VectorRepresentable {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m14 |[0;0m guard var v2 = points.last else {
[0;36m15 |[0;0m return 0
/host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift:35:27: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m33 |[0;0m lineA: (start: Vector2, end: Vector2),
[0;36m34 |[0;0m lineB: (start: Vector2, end: Vector2)
[0;36m35 |[0;0m ) -> (hitPt: Vector2, Ua: [4;39mJFloat[0;0m, Ub: JFloat)? {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m36 |[0;0m 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))
[0;36m37 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift:35:39: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m33 |[0;0m lineA: (start: Vector2, end: Vector2),
[0;36m34 |[0;0m lineB: (start: Vector2, end: Vector2)
[0;36m35 |[0;0m ) -> (hitPt: Vector2, Ua: JFloat, Ub: [4;39mJFloat[0;0m)? {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m36 |[0;0m 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))
[0;36m37 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift:62:73: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m60 |[0;0m /// given ratio specified
[0;36m61 |[0;0m @inlinable
[0;36m62 |[0;0m public func calculateVectorRatio(_ vec1: Vector2, vec2: Vector2, ratio: [4;39mJFloat[0;0m) -> Vector2 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m63 |[0;0m return vec1 + (vec2 - vec1) * ratio
[0;36m64 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift:39:22: [1;31merror: [1;39mreference to member 'leastNonzeroMagnitude' cannot be resolved without a contextual type[0;0m
[0;36m37 |[0;0m
[0;36m38 |[0;0m // if denom == 0, lines are parallel - being a bit generous on this one..
[0;36m39 |[0;0m if abs(denom) < .leastNonzeroMagnitude {
[0;36m|[0;0m `- [1;31merror: [1;39mreference to member 'leastNonzeroMagnitude' cannot be resolved without a contextual type[0;0m
[0;36m40 |[0;0m return nil
[0;36m41 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:12:25: [1;31merror: [1;39mcannot convert value of type '((Int, Int, Int), (Int, Int, Int), (Int, Int, Int))' to expected argument type '(Vector3, Vector3, Vector3)'[0;0m
[0;36m10 |[0;0m @inlinable
[0;36m11 |[0;0m public static var identity: Self {
[0;36m12 |[0;0m Self.init(rows: (
[0;36m|[0;0m `- [1;31merror: [1;39mcannot convert value of type '((Int, Int, Int), (Int, Int, Int), (Int, Int, Int))' to expected argument type '(Vector3, Vector3, Vector3)'[0;0m
[0;36m13 |[0;0m (1, 0, 0),
[0;36m14 |[0;0m (0, 1, 0),
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:17:19: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m15 |[0;0m
[0;36m16 |[0;0m /// The JFloat representation of this vector's x axis
[0;36m17 |[0;0m public var x: [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m18 |[0;0m
[0;36m19 |[0;0m /// The JFloat representation of this vector's y axis
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:20:19: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m18 |[0;0m
[0;36m19 |[0;0m /// The JFloat representation of this vector's y axis
[0;36m20 |[0;0m public var y: [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m21 |[0;0m
[0;36m22 |[0;0m /// The JFloat representation of this vector's z axis
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:23:19: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m21 |[0;0m
[0;36m22 |[0;0m /// The JFloat representation of this vector's z axis
[0;36m23 |[0;0m public var z: [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m24 |[0;0m
[0;36m25 |[0;0m /// Returns the squared length of this Vector3
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:216:25: [1;31merror: [1;39mcannot convert value of type '((_, _, _), (_, _, _), (_, _, _))' to expected argument type '(Vector3, Vector3, Vector3)'[0;0m
[0;36m214 |[0;0m public init(rows: (Vector3, Vector3, Vector3)) {
[0;36m215 |[0;0m
[0;36m216 |[0;0m self.init(rows: (
[0;36m|[0;0m `- [1;31merror: [1;39mcannot convert value of type '((_, _, _), (_, _, _), (_, _, _))' to expected argument type '(Vector3, Vector3, Vector3)'[0;0m
[0;36m217 |[0;0m (rows.0.x, rows.0.y, rows.0.z),
[0;36m218 |[0;0m (rows.1.x, rows.1.y, rows.1.z),
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:228:25: [1;31merror: [1;39mcannot convert value of type '((_, _, _), (_, _, _), (_, _, _))' to expected argument type '(Vector3, Vector3, Vector3)'[0;0m
[0;36m226 |[0;0m public init(columns: (Vector3, Vector3, Vector3)) {
[0;36m227 |[0;0m
[0;36m228 |[0;0m self.init(rows: (
[0;36m|[0;0m `- [1;31merror: [1;39mcannot convert value of type '((_, _, _), (_, _, _), (_, _, _))' to expected argument type '(Vector3, Vector3, Vector3)'[0;0m
[0;36m229 |[0;0m (columns.0.x, columns.1.x, columns.2.x),
[0;36m230 |[0;0m (columns.0.y, columns.1.y, columns.2.y),
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:260:14: [1;31merror: [1;39mno exact matches in call to initializer [0;0m
[0;36m212 |[0;0m /// values for each row.
[0;36m213 |[0;0m @inlinable
[0;36m214 |[0;0m public init(rows: (Vector3, Vector3, Vector3)) {
[0;36m|[0;0m `- [1;39mnote: [1;39mincorrect labels for candidate (have: '(diagonal:)', expected: '(rows:)')[0;0m
[0;36m215 |[0;0m
[0;36m216 |[0;0m self.init(rows: (
[0;36m:[0;0m
[0;36m224 |[0;0m /// values for each column.
[0;36m225 |[0;0m @inlinable
[0;36m226 |[0;0m public init(columns: (Vector3, Vector3, Vector3)) {
[0;36m|[0;0m `- [1;39mnote: [1;39mincorrect labels for candidate (have: '(diagonal:)', expected: '(columns:)')[0;0m
[0;36m227 |[0;0m
[0;36m228 |[0;0m self.init(rows: (
[0;36m:[0;0m
[0;36m258 |[0;0m @inlinable
[0;36m259 |[0;0m public init(diagonal: Scalar) {
[0;36m260 |[0;0m self.init(diagonal: (diagonal, diagonal, diagonal))
[0;36m|[0;0m `- [1;31merror: [1;39mno exact matches in call to initializer [0;0m
[0;36m261 |[0;0m }
[0;36m262 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:140:42: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m138 |[0;0m /// Calculates the dot product between this and another provided Vector3
[0;36m139 |[0;0m @inlinable
[0;36m140 |[0;0m public func dot(_ other: Vector3) -> [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m141 |[0;0m return (x * other.x) + (y * other.y) + (z * other.z)
[0;36m142 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:4:15: [1;31merror: [1;39mtype 'Vector3' does not conform to protocol 'Decodable'[0;0m
[0;36m2 |[0;0m
[0;36m3 |[0;0m /// Represents a 2D vector
[0;36m4 |[0;0m public struct Vector3: Equatable, CustomStringConvertible, Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'Vector3' does not conform to protocol 'Decodable'[0;0m
[0;36m5 |[0;0m
[0;36m6 |[0;0m /// A zeroed-value Vector3
[0;36m:[0;0m
[0;36m15 |[0;0m
[0;36m16 |[0;0m /// The JFloat representation of this vector's x axis
[0;36m17 |[0;0m public var x: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m18 |[0;0m
[0;36m19 |[0;0m /// The JFloat representation of this vector's y axis
[0;36m20 |[0;0m public var y: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m21 |[0;0m
[0;36m22 |[0;0m /// The JFloat representation of this vector's z axis
[0;36m23 |[0;0m public var z: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m24 |[0;0m
[0;36m25 |[0;0m /// Returns the squared length of this Vector3
Swift.Decodable.init:2:1: [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m1 |[0;0m protocol Decodable {
[0;36m2 |[0;0m init(from decoder: any Decoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:4:15: [1;31merror: [1;39mtype 'Vector3' does not conform to protocol 'Decodable'[0;0m
[0;36m2 |[0;0m
[0;36m3 |[0;0m /// Represents a 2D vector
[0;36m4 |[0;0m public struct Vector3: Equatable, CustomStringConvertible, Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'Vector3' does not conform to protocol 'Decodable'[0;0m
[0;36m5 |[0;0m
[0;36m6 |[0;0m /// A zeroed-value Vector3
[0;36m:[0;0m
[0;36m15 |[0;0m
[0;36m16 |[0;0m /// The JFloat representation of this vector's x axis
[0;36m17 |[0;0m public var x: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m18 |[0;0m
[0;36m19 |[0;0m /// The JFloat representation of this vector's y axis
[0;36m20 |[0;0m public var y: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m21 |[0;0m
[0;36m22 |[0;0m /// The JFloat representation of this vector's z axis
[0;36m23 |[0;0m public var z: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m24 |[0;0m
[0;36m25 |[0;0m /// Returns the squared length of this Vector3
Swift.Decodable.init:2:1: [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m1 |[0;0m protocol Decodable {
[0;36m2 |[0;0m init(from decoder: any Decoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:83:24: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m81 |[0;0m /// Inits a vector 3 with X, Y, and Z defined as a given float
[0;36m82 |[0;0m @inlinable
[0;36m83 |[0;0m public init(value: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m84 |[0;0m x = value
[0;36m85 |[0;0m y = value
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:92:36: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m90 |[0;0m /// the specified value for the Z component.
[0;36m91 |[0;0m @inlinable
[0;36m92 |[0;0m public init(_ vec: Vector2, z: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m93 |[0;0m (self.x, self.y) = (vec.x, vec.y)
[0;36m94 |[0;0m self.z = z
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:99:27: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m97 |[0;0m /// Inits a vector 3 with X, Y, and Z defined as a given tuple
[0;36m98 |[0;0m @inlinable
[0;36m99 |[0;0m public init(_ value: ([4;39mJFloat[0;0m, JFloat, JFloat)) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m100 |[0;0m (x, y, z) = value
[0;36m101 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:99:35: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m97 |[0;0m /// Inits a vector 3 with X, Y, and Z defined as a given tuple
[0;36m98 |[0;0m @inlinable
[0;36m99 |[0;0m public init(_ value: (JFloat, [4;39mJFloat[0;0m, JFloat)) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m100 |[0;0m (x, y, z) = value
[0;36m101 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:99:43: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m97 |[0;0m /// Inits a vector 3 with X, Y, and Z defined as a given tuple
[0;36m98 |[0;0m @inlinable
[0;36m99 |[0;0m public init(_ value: (JFloat, JFloat, [4;39mJFloat[0;0m)) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m100 |[0;0m (x, y, z) = value
[0;36m101 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:310:27: [1;31merror: [1;39mmissing argument label 'x:' in call[0;0m
[0;36m308 |[0;0m @inlinable
[0;36m309 |[0;0m public func transformPoint(_ vec: Vector2) -> Vector2 {
[0;36m310 |[0;0m let vec3 = Vector3(vec, z: 1)
[0;36m|[0;0m `- [1;31merror: [1;39mmissing argument label 'x:' in call[0;0m
[0;36m311 |[0;0m
[0;36m312 |[0;0m let result = transformPoint(vec3)
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:310:31: [1;31merror: [1;39mmissing argument for parameter 'y' in call[0;0m
[0;36m308 |[0;0m @inlinable
[0;36m309 |[0;0m public func transformPoint(_ vec: Vector2) -> Vector2 {
[0;36m310 |[0;0m let vec3 = Vector3(vec, z: 1)
[0;36m|[0;0m `- [1;31merror: [1;39mmissing argument for parameter 'y' in call[0;0m
[0;36m311 |[0;0m
[0;36m312 |[0;0m let result = transformPoint(vec3)
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:59:12: [1;39mnote: [1;39m'init(x:y:z:)' declared here[0;0m
[0;36m57 |[0;0m /// Inits a vector 3 with three integer components
[0;36m58 |[0;0m @inlinable
[0;36m59 |[0;0m public init(x: Int, y: Int, z: Int) {
[0;36m|[0;0m `- [1;39mnote: [1;39m'init(x:y:z:)' declared here[0;0m
[0;36m60 |[0;0m self.x = JFloat(x)
[0;36m61 |[0;0m self.y = JFloat(y)
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:310:28: [1;31merror: [1;39mcannot convert value of type 'Vector2' to expected argument type 'Int'[0;0m
[0;36m308 |[0;0m @inlinable
[0;36m309 |[0;0m public func transformPoint(_ vec: Vector2) -> Vector2 {
[0;36m310 |[0;0m let vec3 = Vector3(vec, z: 1)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot convert value of type 'Vector2' to expected argument type 'Int'[0;0m
[0;36m311 |[0;0m
[0;36m312 |[0;0m let result = transformPoint(vec3)
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:329:27: [1;31merror: [1;39mmissing argument label 'x:' in call[0;0m
[0;36m327 |[0;0m @inlinable
[0;36m328 |[0;0m public func transformVector(_ vec: Vector2) -> Vector2 {
[0;36m329 |[0;0m let vec3 = Vector3(vec, z: 1)
[0;36m|[0;0m `- [1;31merror: [1;39mmissing argument label 'x:' in call[0;0m
[0;36m330 |[0;0m
[0;36m331 |[0;0m let result = transformPoint(vec3)
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:329:31: [1;31merror: [1;39mmissing argument for parameter 'y' in call[0;0m
[0;36m327 |[0;0m @inlinable
[0;36m328 |[0;0m public func transformVector(_ vec: Vector2) -> Vector2 {
[0;36m329 |[0;0m let vec3 = Vector3(vec, z: 1)
[0;36m|[0;0m `- [1;31merror: [1;39mmissing argument for parameter 'y' in call[0;0m
[0;36m330 |[0;0m
[0;36m331 |[0;0m let result = transformPoint(vec3)
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:59:12: [1;39mnote: [1;39m'init(x:y:z:)' declared here[0;0m
[0;36m57 |[0;0m /// Inits a vector 3 with three integer components
[0;36m58 |[0;0m @inlinable
[0;36m59 |[0;0m public init(x: Int, y: Int, z: Int) {
[0;36m|[0;0m `- [1;39mnote: [1;39m'init(x:y:z:)' declared here[0;0m
[0;36m60 |[0;0m self.x = JFloat(x)
[0;36m61 |[0;0m self.y = JFloat(y)
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:329:28: [1;31merror: [1;39mcannot convert value of type 'Vector2' to expected argument type 'Int'[0;0m
[0;36m327 |[0;0m @inlinable
[0;36m328 |[0;0m public func transformVector(_ vec: Vector2) -> Vector2 {
[0;36m329 |[0;0m let vec3 = Vector3(vec, z: 1)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot convert value of type 'Vector2' to expected argument type 'Int'[0;0m
[0;36m330 |[0;0m
[0;36m331 |[0;0m let result = transformPoint(vec3)
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:387:20: [1;31merror: [1;39mcannot convert value of type '((_, Int, Int), (Int, _, Int), (Int, Int, Int))' to expected argument type '(Vector3, Vector3, Vector3)'[0;0m
[0;36m385 |[0;0m @inlinable
[0;36m386 |[0;0m public static func make2DScale(x: Scalar, y: Scalar) -> Self {
[0;36m387 |[0;0m Self(rows: (
[0;36m|[0;0m `- [1;31merror: [1;39mcannot convert value of type '((_, Int, Int), (Int, _, Int), (Int, Int, Int))' to expected argument type '(Vector3, Vector3, Vector3)'[0;0m
[0;36m388 |[0;0m (x, 0, 0),
[0;36m389 |[0;0m (0, y, 0),
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:408:27: [1;31merror: [1;39mcannot convert value of type '((_, _, Int), (_, _, Int), (Int, Int, Int))' to expected argument type '(Vector3, Vector3, Vector3)'[0;0m
[0;36m406 |[0;0m let s = sin(angleInRadians)
[0;36m407 |[0;0m
[0;36m408 |[0;0m return Self(rows: (
[0;36m|[0;0m `- [1;31merror: [1;39mcannot convert value of type '((_, _, Int), (_, _, Int), (Int, Int, Int))' to expected argument type '(Vector3, Vector3, Vector3)'[0;0m
[0;36m409 |[0;0m (c, -s, 0),
[0;36m410 |[0;0m (s, c, 0),
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:419:20: [1;31merror: [1;39mcannot convert value of type '((Int, Int, _), (Int, Int, _), (Int, Int, Int))' to expected argument type '(Vector3, Vector3, Vector3)'[0;0m
[0;36m417 |[0;0m @inlinable
[0;36m418 |[0;0m public static func make2DTranslation(x: Scalar, y: Scalar) -> Self {
[0;36m419 |[0;0m Self(rows: (
[0;36m|[0;0m `- [1;31merror: [1;39mcannot convert value of type '((Int, Int, _), (Int, Int, _), (Int, Int, Int))' to expected argument type '(Vector3, Vector3, Vector3)'[0;0m
[0;36m420 |[0;0m (1, 0, x),
[0;36m421 |[0;0m (0, 1, y),
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:509:27: [1;31merror: [1;39mcannot convert value of type '((_, _, _), (_, _, _), (_, _, _))' to expected argument type '(Vector3, Vector3, Vector3)'[0;0m
[0;36m507 |[0;0m let r22 = lhs.r2Vec.dot(rhs.c2Vec)
[0;36m508 |[0;0m
[0;36m509 |[0;0m return Self(rows: (
[0;36m|[0;0m `- [1;31merror: [1;39mcannot convert value of type '((_, _, _), (_, _, _), (_, _, _))' to expected argument type '(Vector3, Vector3, Vector3)'[0;0m
[0;36m510 |[0;0m (r00, r01, r02),
[0;36m511 |[0;0m (r10, r11, r12),
/host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift:535:5: [1;31merror: [1;39mthe compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions[0;0m
[0;36m533 |[0;0m @inlinable
[0;36m534 |[0;0m public func == (_ lhs: Matrix3x3.M, _ rhs: Matrix3x3.M) -> Bool {
[0;36m535 |[0;0m [4;39mlhs.0 == rhs.0 && lhs.1 == rhs.1 && lhs.2 == rhs.2[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mthe compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions[0;0m
[0;36m536 |[0;0m }
[0;36m537 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:35:23: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m33 |[0;0m /// Returns the angle in radians of this Vector2
[0;36m34 |[0;0m @inlinable
[0;36m35 |[0;0m public var angle: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m36 |[0;0m return atan2(y, x)
[0;36m37 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:41:24: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m39 |[0;0m /// Returns the squared length of this Vector2
[0;36m40 |[0;0m @inlinable
[0;36m41 |[0;0m public var length: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m42 |[0;0m return x * x + y * y
[0;36m43 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:48:27: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m46 |[0;0m /// Vector2
[0;36m47 |[0;0m @inlinable
[0;36m48 |[0;0m public var magnitude: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m49 |[0;0m return sqrt(length)
[0;36m50 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:100:46: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m98 |[0;0m /// Returns the distance between this Vector2 and another Vector2
[0;36m99 |[0;0m @inlinable
[0;36m100 |[0;0m public func distance(to vec: Vector2) -> [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m101 |[0;0m let d = self - vec
[0;36m102 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:108:53: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m106 |[0;0m /// Returns the distance squared between this Vector2 and another Vector2
[0;36m107 |[0;0m @inlinable
[0;36m108 |[0;0m public func distanceSquared(to vec: Vector2) -> [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m109 |[0;0m let d = self - vec
[0;36m110 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:12:15: [1;31merror: [1;39mtype 'Vector2' does not conform to protocol 'Encodable'[0;0m
[0;36m10 |[0;0m
[0;36m11 |[0;0m /// Represents a 2D vector
[0;36m12 |[0;0m public struct Vector2: VectorRepresentable, Equatable, CustomStringConvertible, Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'Vector2' does not conform to protocol 'Encodable'[0;0m
[0;36m13 |[0;0m
[0;36m14 |[0;0m /// A zeroed-value Vector2
[0;36m:[0;0m
[0;36m26 |[0;0m
[0;36m27 |[0;0m /// The JFloat representation of this vector's x axis
[0;36m28 |[0;0m public var x: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m29 |[0;0m
[0;36m30 |[0;0m /// The JFloat representation of this vector's y axis
[0;36m31 |[0;0m public var y: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m32 |[0;0m
[0;36m33 |[0;0m /// Returns the angle in radians of this Vector2
Swift.Encodable.encode:2:6: [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m1 |[0;0m protocol Encodable {
[0;36m2 |[0;0m func encode(to encoder: any Encoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:154:42: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m152 |[0;0m /// Calculates the dot product between this and another provided Vector2
[0;36m153 |[0;0m @inlinable
[0;36m154 |[0;0m public func dot(_ other: Vector2) -> [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m155 |[0;0m return (x * other.x) + (y * other.y)
[0;36m156 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:163:44: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m161 |[0;0m /// the 'z' coordinate being 0.
[0;36m162 |[0;0m @inlinable
[0;36m163 |[0;0m public func cross(_ other: Vector2) -> [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m164 |[0;0m return (x * other.y) - (other.x * y)
[0;36m165 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:221:59: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m219 |[0;0m /// See `Vector2.dot`
[0;36m220 |[0;0m @inlinable
[0;36m221 |[0;0m static public func •(lhs: Vector2, rhs: Vector2) -> [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m222 |[0;0m return lhs.dot(rhs)
[0;36m223 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:229:58: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m227 |[0;0m /// See `Vector2.cross`
[0;36m228 |[0;0m @inlinable
[0;36m229 |[0;0m static public func =/(lhs: Vector2, rhs: Vector2) -> [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m230 |[0;0m return lhs.cross(rhs)
[0;36m231 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:284:45: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m282 |[0;0m
[0;36m283 |[0;0m @inlinable
[0;36m284 |[0;0m static public func %(lhs: Vector2, rhs: [4;39mJFloat[0;0m) -> Vector2 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m285 |[0;0m return Vector2(x: lhs.x.truncatingRemainder(dividingBy: rhs),
[0;36m286 |[0;0m y: lhs.y.truncatingRemainder(dividingBy: rhs))
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:316:52: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m314 |[0;0m // JFloat interaction
[0;36m315 |[0;0m @inlinable
[0;36m316 |[0;0m static public func +=(lhs: inout Vector2, rhs: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m317 |[0;0m lhs = lhs + rhs
[0;36m318 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:320:52: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m318 |[0;0m }
[0;36m319 |[0;0m @inlinable
[0;36m320 |[0;0m static public func -=(lhs: inout Vector2, rhs: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m321 |[0;0m lhs = lhs - rhs
[0;36m322 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:324:52: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m322 |[0;0m }
[0;36m323 |[0;0m @inlinable
[0;36m324 |[0;0m static public func *=(lhs: inout Vector2, rhs: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m325 |[0;0m lhs = lhs * rhs
[0;36m326 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:328:52: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m326 |[0;0m }
[0;36m327 |[0;0m @inlinable
[0;36m328 |[0;0m static public func /=(lhs: inout Vector2, rhs: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m329 |[0;0m lhs = lhs / rhs
[0;36m330 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:334:43: [1;31merror: [1;39margument passed to call that takes no arguments[0;0m
[0;36m332 |[0;0m
[0;36m333 |[0;0m @usableFromInline
[0;36m334 |[0;0m let _identityMatrix = Matrix3x3(diagonal: 1)
[0;36m|[0;0m `- [1;31merror: [1;39margument passed to call that takes no arguments[0;0m
[0;36m335 |[0;0m
[0;36m336 |[0;0m // MARK: Matrix-transformation
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:405:44: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m403 |[0;0m /// angle in radians
[0;36m404 |[0;0m @inlinable
[0;36m405 |[0;0m public func rotated(by angleInRadians: [4;39mJFloat[0;0m) -> Vector2 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m406 |[0;0m return Vector2.rotate(self, by: angleInRadians)
[0;36m407 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:411:52: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m409 |[0;0m /// Rotates this vector around by a given angle in radians
[0;36m410 |[0;0m @inlinable
[0;36m411 |[0;0m public mutating func rotate(by angleInRadians: [4;39mJFloat[0;0m) -> Vector2 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m412 |[0;0m self = rotated(by: angleInRadians)
[0;36m413 |[0;0m return self
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:418:66: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m416 |[0;0m /// Rotates a given vector by an angle in radians
[0;36m417 |[0;0m @inlinable
[0;36m418 |[0;0m public static func rotate(_ vec: Vector2, by angleInRadians: [4;39mJFloat[0;0m) -> Vector2 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m419 |[0;0m // Check if we have a 0º or 180º rotation - these we can figure out
[0;36m420 |[0;0m // using conditionals to speedup common paths.
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:458:32: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m456 |[0;0m /// - Returns: A vector that lies within the line created by the two vectors.
[0;36m457 |[0;0m @inlinable
[0;36m458 |[0;0m public func ratio(_ ratio: [4;39mJFloat[0;0m, to other: Vector2) -> Vector2 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m459 |[0;0m return self + (other - self) * ratio
[0;36m460 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:73:18: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m71 |[0;0m @inlinable
[0;36m72 |[0;0m public init(x: Int, y: Int) {
[0;36m73 |[0;0m self.x = [4;39mJFloat[0;0m(x)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m74 |[0;0m self.y = JFloat(y)
[0;36m75 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:74:18: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m72 |[0;0m public init(x: Int, y: Int) {
[0;36m73 |[0;0m self.x = JFloat(x)
[0;36m74 |[0;0m self.y = [4;39mJFloat[0;0m(y)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m75 |[0;0m }
[0;36m76 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:80:18: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m78 |[0;0m @inlinable
[0;36m79 |[0;0m public init(x: Float, y: Float) {
[0;36m80 |[0;0m self.x = [4;39mJFloat[0;0m(x)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m81 |[0;0m self.y = JFloat(y)
[0;36m82 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:81:18: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m79 |[0;0m public init(x: Float, y: Float) {
[0;36m80 |[0;0m self.x = JFloat(x)
[0;36m81 |[0;0m self.y = [4;39mJFloat[0;0m(y)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m82 |[0;0m }
[0;36m83 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:87:18: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m85 |[0;0m @inlinable
[0;36m86 |[0;0m public init(x: Double, y: Double) {
[0;36m87 |[0;0m self.x = [4;39mJFloat[0;0m(x)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m88 |[0;0m self.y = JFloat(y)
[0;36m89 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:88:18: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m86 |[0;0m public init(x: Double, y: Double) {
[0;36m87 |[0;0m self.x = JFloat(x)
[0;36m88 |[0;0m self.y = [4;39mJFloat[0;0m(y)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m89 |[0;0m }
[0;36m90 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:317:53: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m315 |[0;0m }
[0;36m316 |[0;0m @inlinable
[0;36m317 |[0;0m static public func *= (lhs: inout Vector3, rhs: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m318 |[0;0m lhs = lhs * rhs
[0;36m319 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:374:24: [1;31merror: [1;39mreference to member 'make2DRotation' cannot be resolved without a contextual type[0;0m
[0;36m372 |[0;0m
[0;36m373 |[0;0m if angle != 0 {
[0;36m374 |[0;0m matrix *= .make2DRotation(angle)
[0;36m|[0;0m `- [1;31merror: [1;39mreference to member 'make2DRotation' cannot be resolved without a contextual type[0;0m
[0;36m375 |[0;0m }
[0;36m376 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:392:33: [1;31merror: [1;39mmissing argument label 'x:' in call[0;0m
[0;36m390 |[0;0m @inlinable
[0;36m391 |[0;0m static public func * (lhs: Vector2, rhs: Matrix3x3) -> Vector2 {
[0;36m392 |[0;0m let homogenous = Vector3(lhs, z: 1)
[0;36m|[0;0m `- [1;31merror: [1;39mmissing argument label 'x:' in call[0;0m
[0;36m393 |[0;0m
[0;36m394 |[0;0m let transformed = rhs.transformPoint(homogenous)
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:392:37: [1;31merror: [1;39mmissing argument for parameter 'y' in call[0;0m
[0;36m390 |[0;0m @inlinable
[0;36m391 |[0;0m static public func * (lhs: Vector2, rhs: Matrix3x3) -> Vector2 {
[0;36m392 |[0;0m let homogenous = Vector3(lhs, z: 1)
[0;36m|[0;0m `- [1;31merror: [1;39mmissing argument for parameter 'y' in call[0;0m
[0;36m393 |[0;0m
[0;36m394 |[0;0m let transformed = rhs.transformPoint(homogenous)
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:59:12: [1;39mnote: [1;39m'init(x:y:z:)' declared here[0;0m
[0;36m57 |[0;0m /// Inits a vector 3 with three integer components
[0;36m58 |[0;0m @inlinable
[0;36m59 |[0;0m public init(x: Int, y: Int, z: Int) {
[0;36m|[0;0m `- [1;39mnote: [1;39m'init(x:y:z:)' declared here[0;0m
[0;36m60 |[0;0m self.x = JFloat(x)
[0;36m61 |[0;0m self.y = JFloat(y)
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:392:34: [1;31merror: [1;39mcannot convert value of type 'Vector2' to expected argument type 'Int'[0;0m
[0;36m390 |[0;0m @inlinable
[0;36m391 |[0;0m static public func * (lhs: Vector2, rhs: Matrix3x3) -> Vector2 {
[0;36m392 |[0;0m let homogenous = Vector3(lhs, z: 1)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot convert value of type 'Vector2' to expected argument type 'Int'[0;0m
[0;36m393 |[0;0m
[0;36m394 |[0;0m let transformed = rhs.transformPoint(homogenous)
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:309:53: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m307 |[0;0m // JFloat interaction
[0;36m308 |[0;0m @inlinable
[0;36m309 |[0;0m static public func += (lhs: inout Vector3, rhs: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m310 |[0;0m lhs = lhs + rhs
[0;36m311 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector2.swift:474:58: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m472 |[0;0m }
[0;36m473 |[0;0m
[0;36m474 |[0;0m return reduce(into: .zero) { $0 += $1.vector } / [4;39mJFloat[0;0m(count)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m475 |[0;0m }
[0;36m476 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:208:60: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m206 |[0;0m /// See `Vector3.dot`
[0;36m207 |[0;0m @inlinable
[0;36m208 |[0;0m static public func • (lhs: Vector3, rhs: Vector3) -> [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m209 |[0;0m return lhs.dot(rhs)
[0;36m210 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:27:24: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m25 |[0;0m /// Returns the squared length of this Vector3
[0;36m26 |[0;0m @inlinable
[0;36m27 |[0;0m public var length: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m28 |[0;0m return x * x + y * y + z * z
[0;36m29 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:34:27: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m32 |[0;0m /// Vector3
[0;36m33 |[0;0m @inlinable
[0;36m34 |[0;0m public var magnitude: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m35 |[0;0m return sqrt(length)
[0;36m36 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:105:46: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m103 |[0;0m /// Returns the distance between this Vector3 and another Vector3
[0;36m104 |[0;0m @inlinable
[0;36m105 |[0;0m public func distance(to vec: Vector3) -> [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m106 |[0;0m let d = self - vec
[0;36m107 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:113:53: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m111 |[0;0m /// Returns the distance squared between this Vector3 and another Vector3
[0;36m112 |[0;0m @inlinable
[0;36m113 |[0;0m public func distanceSquared(to vec: Vector3) -> [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m114 |[0;0m let d = self - vec
[0;36m115 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:4:15: [1;31merror: [1;39mtype 'Vector3' does not conform to protocol 'Encodable'[0;0m
[0;36m2 |[0;0m
[0;36m3 |[0;0m /// Represents a 2D vector
[0;36m4 |[0;0m public struct Vector3: Equatable, CustomStringConvertible, Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'Vector3' does not conform to protocol 'Encodable'[0;0m
[0;36m5 |[0;0m
[0;36m6 |[0;0m /// A zeroed-value Vector3
[0;36m:[0;0m
[0;36m15 |[0;0m
[0;36m16 |[0;0m /// The JFloat representation of this vector's x axis
[0;36m17 |[0;0m public var x: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m18 |[0;0m
[0;36m19 |[0;0m /// The JFloat representation of this vector's y axis
[0;36m20 |[0;0m public var y: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m21 |[0;0m
[0;36m22 |[0;0m /// The JFloat representation of this vector's z axis
[0;36m23 |[0;0m public var z: JFloat
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m24 |[0;0m
[0;36m25 |[0;0m /// Returns the squared length of this Vector3
Swift.Encodable.encode:2:6: [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m1 |[0;0m protocol Encodable {
[0;36m2 |[0;0m func encode(to encoder: any Encoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:274:46: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m272 |[0;0m
[0;36m273 |[0;0m @inlinable
[0;36m274 |[0;0m static public func % (lhs: Vector3, rhs: [4;39mJFloat[0;0m) -> Vector3 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m275 |[0;0m return Vector3(
[0;36m276 |[0;0m x: lhs.x.truncatingRemainder(dividingBy: rhs),
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:313:53: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m311 |[0;0m }
[0;36m312 |[0;0m @inlinable
[0;36m313 |[0;0m static public func -= (lhs: inout Vector3, rhs: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m314 |[0;0m lhs = lhs - rhs
[0;36m315 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:321:53: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m319 |[0;0m }
[0;36m320 |[0;0m @inlinable
[0;36m321 |[0;0m static public func /= (lhs: inout Vector3, rhs: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m322 |[0;0m lhs = lhs / rhs
[0;36m323 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:343:32: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m341 |[0;0m /// - Returns: A vector that lies within the line created by the two vectors.
[0;36m342 |[0;0m @inlinable
[0;36m343 |[0;0m public func ratio(_ ratio: [4;39mJFloat[0;0m, to other: Vector3) -> Vector3 {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m344 |[0;0m return self + (other - self) * ratio
[0;36m345 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:60:18: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m58 |[0;0m @inlinable
[0;36m59 |[0;0m public init(x: Int, y: Int, z: Int) {
[0;36m60 |[0;0m self.x = [4;39mJFloat[0;0m(x)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m61 |[0;0m self.y = JFloat(y)
[0;36m62 |[0;0m self.z = JFloat(z)
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:61:18: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m59 |[0;0m public init(x: Int, y: Int, z: Int) {
[0;36m60 |[0;0m self.x = JFloat(x)
[0;36m61 |[0;0m self.y = [4;39mJFloat[0;0m(y)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m62 |[0;0m self.z = JFloat(z)
[0;36m63 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:62:18: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m60 |[0;0m self.x = JFloat(x)
[0;36m61 |[0;0m self.y = JFloat(y)
[0;36m62 |[0;0m self.z = [4;39mJFloat[0;0m(z)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m63 |[0;0m }
[0;36m64 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:68:18: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m66 |[0;0m @inlinable
[0;36m67 |[0;0m public init(x: Float, y: Float, z: Float) {
[0;36m68 |[0;0m self.x = [4;39mJFloat[0;0m(x)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m69 |[0;0m self.y = JFloat(y)
[0;36m70 |[0;0m self.z = JFloat(z)
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:69:18: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m67 |[0;0m public init(x: Float, y: Float, z: Float) {
[0;36m68 |[0;0m self.x = JFloat(x)
[0;36m69 |[0;0m self.y = [4;39mJFloat[0;0m(y)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m70 |[0;0m self.z = JFloat(z)
[0;36m71 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:70:18: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m68 |[0;0m self.x = JFloat(x)
[0;36m69 |[0;0m self.y = JFloat(y)
[0;36m70 |[0;0m self.z = [4;39mJFloat[0;0m(z)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m71 |[0;0m }
[0;36m72 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:76:18: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m74 |[0;0m @inlinable
[0;36m75 |[0;0m public init(x: Double, y: Double, z: Double) {
[0;36m76 |[0;0m self.x = [4;39mJFloat[0;0m(x)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m77 |[0;0m self.y = JFloat(y)
[0;36m78 |[0;0m self.z = JFloat(z)
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:77:18: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m75 |[0;0m public init(x: Double, y: Double, z: Double) {
[0;36m76 |[0;0m self.x = JFloat(x)
[0;36m77 |[0;0m self.y = [4;39mJFloat[0;0m(y)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m78 |[0;0m self.z = JFloat(z)
[0;36m79 |[0;0m }
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:78:18: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m76 |[0;0m self.x = JFloat(x)
[0;36m77 |[0;0m self.y = JFloat(y)
[0;36m78 |[0;0m self.z = [4;39mJFloat[0;0m(z)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m79 |[0;0m }
[0;36m80 |[0;0m
/host/spi-builder-workspace/Sources/Geometry/Vector3.swift:359:51: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m357 |[0;0m }
[0;36m358 |[0;0m
[0;36m359 |[0;0m return reduce(into: .zero) { $0 += $1 } / [4;39mJFloat[0;0m(count)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m360 |[0;0m }
[0;36m361 |[0;0m }
/host/spi-builder-workspace/Sources/InternalSpring.swift:44:26: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m42 |[0;0m /// Rest distance of the spring, or the distance the spring tries to
[0;36m43 |[0;0m /// maintain
[0;36m44 |[0;0m public var distance: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m45 |[0;0m get {
[0;36m46 |[0;0m return restDistance.maximumDistance
/host/spi-builder-workspace/Sources/InternalSpring.swift:65:29: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m63 |[0;0m
[0;36m64 |[0;0m /// The spring coefficient
[0;36m65 |[0;0m public var coefficient: [4;39mJFloat[0;0m = 0
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m66 |[0;0m
[0;36m67 |[0;0m /// The spring damping
/host/spi-builder-workspace/Sources/InternalSpring.swift:68:25: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m66 |[0;0m
[0;36m67 |[0;0m /// The spring damping
[0;36m68 |[0;0m public var damping: [4;39mJFloat[0;0m = 0
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m69 |[0;0m
[0;36m70 |[0;0m public init(
/host/spi-builder-workspace/Sources/InternalSpring.swift:74:20: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m72 |[0;0m _ pmB: Int,
[0;36m73 |[0;0m _ distance: RestDistance = 0,
[0;36m74 |[0;0m _ springK: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m75 |[0;0m _ springD: JFloat,
[0;36m76 |[0;0m _ plasticity: SpringPlasticity? = nil
/host/spi-builder-workspace/Sources/InternalSpring.swift:75:20: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m73 |[0;0m _ distance: RestDistance = 0,
[0;36m74 |[0;0m _ springK: JFloat,
[0;36m75 |[0;0m _ springD: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m76 |[0;0m _ plasticity: SpringPlasticity? = nil
[0;36m77 |[0;0m ) {
/host/spi-builder-workspace/Sources/InternalSpring.swift:107:53: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m105 |[0;0m /// - Parameters:
[0;36m106 |[0;0m /// - distance: The current distance between the points
[0;36m107 |[0;0m public mutating func updatePlasticity(distance: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m108 |[0;0m guard let plasticity = plasticity else {
[0;36m109 |[0;0m return
/host/spi-builder-workspace/Sources/InternalSpring.swift:137:28: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m135 |[0;0m /// Ratio (of resting distance vs actual length) before plasticity starts
[0;36m136 |[0;0m /// to change the resting length of the spring, deforming it permanently.
[0;36m137 |[0;0m public var yieldRatio: [4;39mJFloat[0;0m = 0.3
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m138 |[0;0m
[0;36m139 |[0;0m /// Plasticity rate for the spring.
/host/spi-builder-workspace/Sources/InternalSpring.swift:153:22: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m151 |[0;0m /// the resulting `R` would be `R = 10 + (0.5 * (15 - 10 - (0.3 * 10)))` ->
[0;36m152 |[0;0m /// `R = 10 + 1` -> `R = 11`.
[0;36m153 |[0;0m public var rate: [4;39mJFloat[0;0m = 0.5
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m154 |[0;0m
[0;36m155 |[0;0m /// A factor limit at which the plasticity stops affecting the rest length
/host/spi-builder-workspace/Sources/InternalSpring.swift:161:23: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m159 |[0;0m /// the initial length), or `R < IL / limit`, the plasticity does not
[0;36m160 |[0;0m /// take effect.
[0;36m161 |[0;0m public var limit: [4;39mJFloat[0;0m = 2
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m162 |[0;0m
[0;36m163 |[0;0m public init(yieldRatio: JFloat = 0.3, rate: JFloat = 0.5, limit: JFloat = 2) {
/host/spi-builder-workspace/Sources/RestDistance.swift:15:16: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m13 |[0;0m
[0;36m14 |[0;0m /// Fixed distance
[0;36m15 |[0;0m case fixed([4;39mJFloat[0;0m)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m16 |[0;0m
[0;36m17 |[0;0m /// Distance is ranged between a minimum and maximum value
/host/spi-builder-workspace/Sources/RestDistance.swift:18:22: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m16 |[0;0m
[0;36m17 |[0;0m /// Distance is ranged between a minimum and maximum value
[0;36m18 |[0;0m case ranged(min: [4;39mJFloat[0;0m, max: JFloat)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m19 |[0;0m
[0;36m20 |[0;0m /// Returns the minimum distance for this rest distance.
/host/spi-builder-workspace/Sources/RestDistance.swift:18:35: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m16 |[0;0m
[0;36m17 |[0;0m /// Distance is ranged between a minimum and maximum value
[0;36m18 |[0;0m case ranged(min: JFloat, max: [4;39mJFloat[0;0m)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m19 |[0;0m
[0;36m20 |[0;0m /// Returns the minimum distance for this rest distance.
/host/spi-builder-workspace/Sources/InternalSpring.swift:11:15: [1;31merror: [1;39mtype 'InternalSpring' does not conform to protocol 'Encodable'[0;0m
[0;36m9 |[0;0m /// Represents an internal spring inside a soft body object, and keeps points
[0;36m10 |[0;0m /// close together
[0;36m11 |[0;0m public struct InternalSpring: Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'InternalSpring' does not conform to protocol 'Encodable'[0;0m
[0;36m12 |[0;0m
[0;36m13 |[0;0m /// First point-mass of the spring.
[0;36m:[0;0m
[0;36m63 |[0;0m
[0;36m64 |[0;0m /// The spring coefficient
[0;36m65 |[0;0m public var coefficient: JFloat = 0
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m66 |[0;0m
[0;36m67 |[0;0m /// The spring damping
[0;36m68 |[0;0m public var damping: JFloat = 0
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m69 |[0;0m
[0;36m70 |[0;0m public init(
Swift.Encodable.encode:2:6: [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m1 |[0;0m protocol Encodable {
[0;36m2 |[0;0m func encode(to encoder: any Encoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/InternalSpring.swift:134:15: [1;31merror: [1;39mtype 'SpringPlasticity' does not conform to protocol 'Decodable'[0;0m
[0;36m132 |[0;0m /// Plasticity permanently affects a spring's rest length by modifying it
[0;36m133 |[0;0m /// when its length is stretched beyond a certain limit.
[0;36m134 |[0;0m public struct SpringPlasticity: Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'SpringPlasticity' does not conform to protocol 'Decodable'[0;0m
[0;36m135 |[0;0m /// Ratio (of resting distance vs actual length) before plasticity starts
[0;36m136 |[0;0m /// to change the resting length of the spring, deforming it permanently.
[0;36m137 |[0;0m public var yieldRatio: JFloat = 0.3
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m138 |[0;0m
[0;36m139 |[0;0m /// Plasticity rate for the spring.
[0;36m:[0;0m
[0;36m151 |[0;0m /// the resulting `R` would be `R = 10 + (0.5 * (15 - 10 - (0.3 * 10)))` ->
[0;36m152 |[0;0m /// `R = 10 + 1` -> `R = 11`.
[0;36m153 |[0;0m public var rate: JFloat = 0.5
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m154 |[0;0m
[0;36m155 |[0;0m /// A factor limit at which the plasticity stops affecting the rest length
[0;36m:[0;0m
[0;36m159 |[0;0m /// the initial length), or `R < IL / limit`, the plasticity does not
[0;36m160 |[0;0m /// take effect.
[0;36m161 |[0;0m public var limit: JFloat = 2
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m162 |[0;0m
[0;36m163 |[0;0m public init(yieldRatio: JFloat = 0.3, rate: JFloat = 0.5, limit: JFloat = 2) {
Swift.Decodable.init:2:1: [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m1 |[0;0m protocol Decodable {
[0;36m2 |[0;0m init(from decoder: any Decoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/InternalSpring.swift:163:29: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m161 |[0;0m public var limit: JFloat = 2
[0;36m162 |[0;0m
[0;36m163 |[0;0m public init(yieldRatio: [4;39mJFloat[0;0m = 0.3, rate: JFloat = 0.5, limit: JFloat = 2) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m164 |[0;0m self.yieldRatio = yieldRatio
[0;36m165 |[0;0m self.rate = rate
/host/spi-builder-workspace/Sources/InternalSpring.swift:163:49: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m161 |[0;0m public var limit: JFloat = 2
[0;36m162 |[0;0m
[0;36m163 |[0;0m public init(yieldRatio: JFloat = 0.3, rate: [4;39mJFloat[0;0m = 0.5, limit: JFloat = 2) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m164 |[0;0m self.yieldRatio = yieldRatio
[0;36m165 |[0;0m self.rate = rate
/host/spi-builder-workspace/Sources/InternalSpring.swift:163:70: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m161 |[0;0m public var limit: JFloat = 2
[0;36m162 |[0;0m
[0;36m163 |[0;0m public init(yieldRatio: JFloat = 0.3, rate: JFloat = 0.5, limit: [4;39mJFloat[0;0m = 2) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m164 |[0;0m self.yieldRatio = yieldRatio
[0;36m165 |[0;0m self.rate = rate
/host/spi-builder-workspace/Sources/InternalSpring.swift:134:15: [1;31merror: [1;39mtype 'SpringPlasticity' does not conform to protocol 'Encodable'[0;0m
[0;36m132 |[0;0m /// Plasticity permanently affects a spring's rest length by modifying it
[0;36m133 |[0;0m /// when its length is stretched beyond a certain limit.
[0;36m134 |[0;0m public struct SpringPlasticity: Codable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'SpringPlasticity' does not conform to protocol 'Encodable'[0;0m
[0;36m135 |[0;0m /// Ratio (of resting distance vs actual length) before plasticity starts
[0;36m136 |[0;0m /// to change the resting length of the spring, deforming it permanently.
[0;36m137 |[0;0m public var yieldRatio: JFloat = 0.3
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m138 |[0;0m
[0;36m139 |[0;0m /// Plasticity rate for the spring.
[0;36m:[0;0m
[0;36m151 |[0;0m /// the resulting `R` would be `R = 10 + (0.5 * (15 - 10 - (0.3 * 10)))` ->
[0;36m152 |[0;0m /// `R = 10 + 1` -> `R = 11`.
[0;36m153 |[0;0m public var rate: JFloat = 0.5
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m154 |[0;0m
[0;36m155 |[0;0m /// A factor limit at which the plasticity stops affecting the rest length
[0;36m:[0;0m
[0;36m159 |[0;0m /// the initial length), or `R < IL / limit`, the plasticity does not
[0;36m160 |[0;0m /// take effect.
[0;36m161 |[0;0m public var limit: JFloat = 2
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m162 |[0;0m
[0;36m163 |[0;0m public init(yieldRatio: JFloat = 0.3, rate: JFloat = 0.5, limit: JFloat = 2) {
Swift.Encodable.encode:2:6: [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m1 |[0;0m protocol Encodable {
[0;36m2 |[0;0m func encode(to encoder: any Encoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/JointLinks/BodyJointLink.swift:32:20: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m30 |[0;0m
[0;36m31 |[0;0m /// Gets the total mass of the subject of this joint link
[0;36m32 |[0;0m open var mass: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m33 |[0;0m return body.pointMasses.reduce(0) { $0 + $1.mass }
[0;36m34 |[0;0m }
/host/spi-builder-workspace/Sources/JointLinks/EdgeJointLink.swift:21:25: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m19 |[0;0m /// Specifying either 0 or 1 makes this edge joint link behave essentially
[0;36m20 |[0;0m /// like a `PointJointLink`
[0;36m21 |[0;0m open var edgeRatio: [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m22 |[0;0m
[0;36m23 |[0;0m /// Gets the body that this joint link is linked to
/host/spi-builder-workspace/Sources/JointLinks/EdgeJointLink.swift:55:20: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m53 |[0;0m
[0;36m54 |[0;0m /// Gets the total mass of the subject of this joint link
[0;36m55 |[0;0m open var mass: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m56 |[0;0m let pm1 = body.pointMasses[_pointMass1]
[0;36m57 |[0;0m let pm2 = body.pointMasses[_pointMass2]
/host/spi-builder-workspace/Sources/JointLinks/EdgeJointLink.swift:72:56: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m70 |[0;0m
[0;36m71 |[0;0m /// Inits a new edge joint link with the specified parameters
[0;36m72 |[0;0m public init(body: Body, edgeIndex: Int, edgeRatio: [4;39mJFloat[0;0m = 0.5) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m73 |[0;0m self.body = body
[0;36m74 |[0;0m _pointMass1 = edgeIndex % body.pointMasses.count
/host/spi-builder-workspace/Sources/JointLinks/PointJointLink.swift:35:20: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m33 |[0;0m
[0;36m34 |[0;0m /// Gets the total mass of the subject of this joint link
[0;36m35 |[0;0m open var mass: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m36 |[0;0m return body.pointMasses[_pointMass].mass
[0;36m37 |[0;0m }
/host/spi-builder-workspace/Sources/JointLinks/ShapeJointLink.swift:59:20: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m57 |[0;0m
[0;36m58 |[0;0m /// Gets the total mass of the subject of this joint link
[0;36m59 |[0;0m open var mass: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m60 |[0;0m var sum: JFloat = 0
[0;36m61 |[0;0m
/host/spi-builder-workspace/Sources/JointLinks/ShapeJointLink.swift:116:33: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m114 |[0;0m /// Returns the average angle of the vertices of this ShapeJointLink, based
[0;36m115 |[0;0m /// on the body's original shape's vertices
[0;36m116 |[0;0m fileprivate func angle() -> [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m117 |[0;0m var angle: JFloat = 0
[0;36m118 |[0;0m
/host/spi-builder-workspace/Sources/JointLinks/WeightedShapeJointLink.swift:63:20: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m61 |[0;0m
[0;36m62 |[0;0m /// Gets the total mass of the subject of this joint link
[0;36m63 |[0;0m open var mass: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m64 |[0;0m var sum: JFloat = 0
[0;36m65 |[0;0m
/host/spi-builder-workspace/Sources/JointLinks/WeightedShapeJointLink.swift:123:33: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m121 |[0;0m /// Returns the average angle of the vertices of this ShapeJointLink, based
[0;36m122 |[0;0m /// on the body's original shape's vertices
[0;36m123 |[0;0m fileprivate func angle() -> [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m124 |[0;0m var angle: JFloat = 0
[0;36m125 |[0;0m
/host/spi-builder-workspace/Sources/JointLinks/WeightedShapeJointLink.swift:171:28: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m169 |[0;0m /// A weighted value applied to the averaging function when considering
[0;36m170 |[0;0m /// this point mass.
[0;36m171 |[0;0m public var weight: [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m172 |[0;0m
[0;36m173 |[0;0m public init(index: Int, weight: JFloat) {
/host/spi-builder-workspace/Sources/JointLinks/WeightedShapeJointLink.swift:173:41: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m171 |[0;0m public var weight: JFloat
[0;36m172 |[0;0m
[0;36m173 |[0;0m public init(index: Int, weight: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m174 |[0;0m self.index = index
[0;36m175 |[0;0m self.weight = weight
/host/spi-builder-workspace/Sources/MaterialPair.swift:17:28: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m15 |[0;0m
[0;36m16 |[0;0m /// The elasticity of the point mass when bouncing off the bodies
[0;36m17 |[0;0m public var elasticity: [4;39mJFloat[0;0m = 0.0
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m18 |[0;0m
[0;36m19 |[0;0m /// The relative friction between the two bodies
/host/spi-builder-workspace/Sources/MaterialPair.swift:20:26: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m18 |[0;0m
[0;36m19 |[0;0m /// The relative friction between the two bodies
[0;36m20 |[0;0m public var friction: [4;39mJFloat[0;0m = 1.0
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m21 |[0;0m
[0;36m22 |[0;0m /// A function to call and utilize as a collision filter when figuring out
/host/spi-builder-workspace/Sources/MaterialPair.swift:24:86: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m22 |[0;0m /// A function to call and utilize as a collision filter when figuring out
[0;36m23 |[0;0m /// whether the two bodies should collide
[0;36m24 |[0;0m public var collisionFilter: (_ info: BodyCollisionInformation, _ normalVelocity: [4;39mJFloat[0;0m) -> (Bool)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m25 |[0;0m
[0;36m26 |[0;0m public init() {
/host/spi-builder-workspace/Sources/MaterialPair.swift:39:21: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m37 |[0;0m public func defaultCollisionFilter(
[0;36m38 |[0;0m _ info: BodyCollisionInformation,
[0;36m39 |[0;0m normalVelocity: [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m40 |[0;0m ) -> Bool {
[0;36m41 |[0;0m return true
/host/spi-builder-workspace/Sources/PhysicsUtils.swift:14:15: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m12 |[0;0m posA: Vector2, velA: Vector2,
[0;36m13 |[0;0m posB: Vector2, velB: Vector2,
[0;36m14 |[0;0m distance: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m15 |[0;0m springK: JFloat,
[0;36m16 |[0;0m springD: JFloat
/host/spi-builder-workspace/Sources/PhysicsUtils.swift:15:14: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m13 |[0;0m posB: Vector2, velB: Vector2,
[0;36m14 |[0;0m distance: JFloat,
[0;36m15 |[0;0m springK: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m16 |[0;0m springD: JFloat
[0;36m17 |[0;0m ) -> Vector2 {
/host/spi-builder-workspace/Sources/PhysicsUtils.swift:16:14: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m14 |[0;0m distance: JFloat,
[0;36m15 |[0;0m springK: JFloat,
[0;36m16 |[0;0m springD: [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m17 |[0;0m ) -> Vector2 {
[0;36m18 |[0;0m
/host/spi-builder-workspace/Sources/PhysicsUtils.swift:47:15: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m45 |[0;0m @inlinable
[0;36m46 |[0;0m public func calculatePlasticity(
[0;36m47 |[0;0m distance: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m48 |[0;0m restDistance: RestDistance,
[0;36m49 |[0;0m initialRestDistance: RestDistance,
/host/spi-builder-workspace/Sources/RestDistance.swift:79:32: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m77 |[0;0m /// If the current value is .fixed, this does an exact equality
[0;36m78 |[0;0m /// operation, if .ranged, it performs `value >= min && value <= max`
[0;36m79 |[0;0m public func inRange(value: [4;39mJFloat[0;0m) -> Bool {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m80 |[0;0m switch(self) {
[0;36m81 |[0;0m case .fixed(let d):
/host/spi-builder-workspace/Sources/RestDistance.swift:50:33: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m48 |[0;0m /// Setting this value updates the `.fixed` value, or in case of `.ranged`
[0;36m49 |[0;0m /// it updates the maximum distance value.
[0;36m50 |[0;0m public var maximumDistance: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m51 |[0;0m get {
[0;36m52 |[0;0m switch(self) {
/host/spi-builder-workspace/Sources/RestDistance.swift:26:33: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m24 |[0;0m /// Setting this value updates the `.fixed` value, or in case of `.ranged`
[0;36m25 |[0;0m /// it updates the minimum distance value.
[0;36m26 |[0;0m public var minimumDistance: [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m27 |[0;0m get {
[0;36m28 |[0;0m switch(self) {
/host/spi-builder-workspace/Sources/PointMass.swift:16:22: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m14 |[0;0m /// Values `< 0.2` usually cause inconsistency and instability in the
[0;36m15 |[0;0m /// simulation
[0;36m16 |[0;0m public var mass: [4;39mJFloat[0;0m = 1
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m17 |[0;0m
[0;36m18 |[0;0m /// The global position of the point, in world coordinates
/host/spi-builder-workspace/Sources/PointMass.swift:10:15: [1;31merror: [1;39mtype 'PointMass' does not conform to protocol 'Decodable'[0;0m
[0;36m8 |[0;0m
[0;36m9 |[0;0m /// Specifies a point mass that composes a body
[0;36m10 |[0;0m public struct PointMass: Codable, VectorRepresentable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'PointMass' does not conform to protocol 'Decodable'[0;0m
[0;36m11 |[0;0m /// The mass of this point mass.
[0;36m12 |[0;0m /// Leave this value always `> 0` to maintain consistency on the simulation,
[0;36m:[0;0m
[0;36m14 |[0;0m /// Values `< 0.2` usually cause inconsistency and instability in the
[0;36m15 |[0;0m /// simulation
[0;36m16 |[0;0m public var mass: JFloat = 1
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Decodable' because 'JFloat' does not conform to 'Decodable'[0;0m
[0;36m17 |[0;0m
[0;36m18 |[0;0m /// The global position of the point, in world coordinates
Swift.Decodable.init:2:1: [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m1 |[0;0m protocol Decodable {
[0;36m2 |[0;0m init(from decoder: any Decoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires initializer 'init(from:)' with type 'Decodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/PointMass.swift:35:23: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m33 |[0;0m }
[0;36m34 |[0;0m
[0;36m35 |[0;0m public init(mass: [4;39mJFloat[0;0m = 0, position: Vector2 = Vector2.zero) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m36 |[0;0m self.mass = mass
[0;36m37 |[0;0m self.position = position
/host/spi-builder-workspace/Sources/PointMass.swift:45:47: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m43 |[0;0m /// seconds
[0;36m44 |[0;0m @inlinable
[0;36m45 |[0;0m public mutating func integrate(_ elapsed: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m46 |[0;0m if mass.isFinite {
[0;36m47 |[0;0m let elapsedMass = elapsed / mass
/host/spi-builder-workspace/Sources/PointMass.swift:10:15: [1;31merror: [1;39mtype 'PointMass' does not conform to protocol 'Encodable'[0;0m
[0;36m8 |[0;0m
[0;36m9 |[0;0m /// Specifies a point mass that composes a body
[0;36m10 |[0;0m public struct PointMass: Codable, VectorRepresentable {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'PointMass' does not conform to protocol 'Encodable'[0;0m
[0;36m11 |[0;0m /// The mass of this point mass.
[0;36m12 |[0;0m /// Leave this value always `> 0` to maintain consistency on the simulation,
[0;36m:[0;0m
[0;36m14 |[0;0m /// Values `< 0.2` usually cause inconsistency and instability in the
[0;36m15 |[0;0m /// simulation
[0;36m16 |[0;0m public var mass: JFloat = 1
[0;36m|[0;0m `- [1;39mnote: [1;39mcannot automatically synthesize 'Encodable' because 'JFloat' does not conform to 'Encodable'[0;0m
[0;36m17 |[0;0m
[0;36m18 |[0;0m /// The global position of the point, in world coordinates
Swift.Encodable.encode:2:6: [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m1 |[0;0m protocol Encodable {
[0;36m2 |[0;0m func encode(to encoder: any Encoder) throws}
[0;36m|[0;0m `- [1;39mnote: [1;39mprotocol requires function 'encode(to:)' with type 'Encodable'[0;0m
[0;36m3 |[0;0m
/host/spi-builder-workspace/Sources/PointMass.swift:75:72: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m73 |[0;0m of pointMasses: T
[0;36m74 |[0;0m ) -> Vector2 where T.Iterator.Element == PointMass {
[0;36m75 |[0;0m return pointMasses.reduce(Vector2.zero) { $0 + $1.velocity } / [4;39mJFloat[0;0m(pointMasses.count)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m76 |[0;0m }
[0;36m77 |[0;0m }
/host/spi-builder-workspace/Sources/RenderingSettings.swift:51:16: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m49 |[0;0m /// Sets the camera position and scale from scalar values
[0;36m50 |[0;0m public func setCamera(
[0;36m51 |[0;0m positionX: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m52 |[0;0m positionY: JFloat,
[0;36m53 |[0;0m scaleX: JFloat,
/host/spi-builder-workspace/Sources/RenderingSettings.swift:52:16: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m50 |[0;0m public func setCamera(
[0;36m51 |[0;0m positionX: JFloat,
[0;36m52 |[0;0m positionY: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m53 |[0;0m scaleX: JFloat,
[0;36m54 |[0;0m scaleY: JFloat
/host/spi-builder-workspace/Sources/RenderingSettings.swift:53:13: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m51 |[0;0m positionX: JFloat,
[0;36m52 |[0;0m positionY: JFloat,
[0;36m53 |[0;0m scaleX: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m54 |[0;0m scaleY: JFloat
[0;36m55 |[0;0m ) {
/host/spi-builder-workspace/Sources/RenderingSettings.swift:54:13: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m52 |[0;0m positionY: JFloat,
[0;36m53 |[0;0m scaleX: JFloat,
[0;36m54 |[0;0m scaleY: [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m55 |[0;0m ) {
[0;36m56 |[0;0m renderingOffset.x = positionX
/host/spi-builder-workspace/Sources/RestDistance.swift:92:41: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m90 |[0;0m /// distance it represents, if .ranged, it performs
[0;36m91 |[0;0m /// `max(minValue, min(maxValue, value))`
[0;36m92 |[0;0m public func clamp(value: JFloat) -> [4;39mJFloat[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m93 |[0;0m switch(self) {
[0;36m94 |[0;0m case .fixed(let d):
/host/spi-builder-workspace/Sources/RestDistance.swift:92:30: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m90 |[0;0m /// distance it represents, if .ranged, it performs
[0;36m91 |[0;0m /// `max(minValue, min(maxValue, value))`
[0;36m92 |[0;0m public func clamp(value: [4;39mJFloat[0;0m) -> JFloat {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m93 |[0;0m switch(self) {
[0;36m94 |[0;0m case .fixed(let d):
/host/spi-builder-workspace/Sources/RestDistance.swift:143:23: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m141 |[0;0m
[0;36m142 |[0;0m /// Helper operator for creating a rest distance
[0;36m143 |[0;0m public func <-> (lhs: [4;39mJFloat[0;0m, rhs: JFloat) -> RestDistance {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m144 |[0;0m return .ranged(min: lhs, max: rhs)
[0;36m145 |[0;0m }
/host/spi-builder-workspace/Sources/RestDistance.swift:143:36: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m141 |[0;0m
[0;36m142 |[0;0m /// Helper operator for creating a rest distance
[0;36m143 |[0;0m public func <-> (lhs: JFloat, rhs: [4;39mJFloat[0;0m) -> RestDistance {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m144 |[0;0m return .ranged(min: lhs, max: rhs)
[0;36m145 |[0;0m }
/host/spi-builder-workspace/Sources/SpringBodyJoint.swift:39:22: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m37 |[0;0m link1: JointLink,
[0;36m38 |[0;0m link2: JointLink,
[0;36m39 |[0;0m coefficient: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m40 |[0;0m damping: JFloat,
[0;36m41 |[0;0m distance: RestDistance? = nil
/host/spi-builder-workspace/Sources/SpringBodyJoint.swift:40:18: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m38 |[0;0m link2: JointLink,
[0;36m39 |[0;0m coefficient: JFloat,
[0;36m40 |[0;0m damping: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m41 |[0;0m distance: RestDistance? = nil
[0;36m42 |[0;0m ) {
/host/spi-builder-workspace/Sources/SpringBodyJoint.swift:13:35: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// The spring coefficient for this spring body joint
[0;36m13 |[0;0m public var springCoefficient: [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m14 |[0;0m
[0;36m15 |[0;0m /// The spring damping for this spring body joint
/host/spi-builder-workspace/Sources/SpringBodyJoint.swift:16:31: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m14 |[0;0m
[0;36m15 |[0;0m /// The spring damping for this spring body joint
[0;36m16 |[0;0m public var springDamping: [4;39mJFloat[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m17 |[0;0m
[0;36m18 |[0;0m /// Optional plasticity information.
/host/spi-builder-workspace/Sources/SpringBodyJoint.swift:59:38: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m57 |[0;0m ///
[0;36m58 |[0;0m /// - Parameter dt: The delta time to update the resolve on
[0;36m59 |[0;0m open override func resolve(_ dt: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m60 |[0;0m if !enabled {
[0;36m61 |[0;0m return
/host/spi-builder-workspace/Sources/World.swift:22:32: [1;31merror: [1;39mcannot convert value of type 'Int' to expected argument type 'Vector2'[0;0m
[0;36m20 |[0;0m fileprivate var worldGridStep = Vector2.zero {
[0;36m21 |[0;0m didSet {
[0;36m22 |[0;0m invWorldGridStep = 1 / worldGridStep
[0;36m|[0;0m `- [1;31merror: [1;39mcannot convert value of type 'Int' to expected argument type 'Vector2'[0;0m
[0;36m23 |[0;0m }
[0;36m24 |[0;0m }
/host/spi-builder-workspace/Sources/World.swift:28:20: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m26 |[0;0m didSet {
[0;36m27 |[0;0m subdivVec = Vector2(
[0;36m28 |[0;0m x: [4;39mJFloat[0;0m(worldGridSubdivision),
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m29 |[0;0m y: JFloat(worldGridSubdivision)
[0;36m30 |[0;0m )
/host/spi-builder-workspace/Sources/World.swift:29:20: [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m27 |[0;0m subdivVec = Vector2(
[0;36m28 |[0;0m x: JFloat(worldGridSubdivision),
[0;36m29 |[0;0m y: [4;39mJFloat[0;0m(worldGridSubdivision)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'JFloat' in scope[0;0m
[0;36m30 |[0;0m )
[0;36m31 |[0;0m }
/host/spi-builder-workspace/Sources/World.swift:45:38: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m43 |[0;0m /// destabilize the simulation.
[0;36m44 |[0;0m /// Usually 0.3 is a good default.
[0;36m45 |[0;0m public var penetrationThreshold: [4;39mJFloat[0;0m = 0.3
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m46 |[0;0m
[0;36m47 |[0;0m /// Matrix of material pairs used during collision resolving
/host/spi-builder-workspace/Sources/World.swift:143:65: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m141 |[0;0m
[0;36m142 |[0;0m /// Sets the collision response variables for a pair of materials.
[0;36m143 |[0;0m public func setMaterialPairData(_ a: Int, b: Int, friction: [4;39mJFloat[0;0m, elasticity: JFloat) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m144 |[0;0m if a >= 0 && a < materialCount && b >= 0 && b < materialCount {
[0;36m145 |[0;0m materialPairs[a][b].friction = friction
/host/spi-builder-workspace/Sources/World.swift:143:85: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m141 |[0;0m
[0;36m142 |[0;0m /// Sets the collision response variables for a pair of materials.
[0;36m143 |[0;0m public func setMaterialPairData(_ a: Int, b: Int, friction: JFloat, elasticity: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m144 |[0;0m if a >= 0 && a < materialCount && b >= 0 && b < materialCount {
[0;36m145 |[0;0m materialPairs[a][b].friction = friction
/host/spi-builder-workspace/Sources/World.swift:154:110: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m152 |[0;0m
[0;36m153 |[0;0m /// Sets a user function to call when 2 bodies of the given materials collide.
[0;36m154 |[0;0m public func setMaterialPairFilterCallback(_ a: Int, b: Int, filter: @escaping (BodyCollisionInformation, [4;39mJFloat[0;0m) -> (Bool)) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m155 |[0;0m if a >= 0 && a < materialCount && b >= 0 && b < materialCount {
[0;36m156 |[0;0m materialPairs[a][b].collisionFilter = filter
/host/spi-builder-workspace/Sources/World.swift:405:35: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m403 |[0;0m /// - Parameter elapsed: The elapsed time to update by, usually in 1/60ths
[0;36m404 |[0;0m /// of a second.
[0;36m405 |[0;0m public func update(_ elapsed: [4;39mJFloat[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m406 |[0;0m update(elapsed, withBodies: bodies, joints: joints)
[0;36m407 |[0;0m }
/host/spi-builder-workspace/Sources/World.swift:411:20: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m409 |[0;0m /// Internal updating method
[0;36m410 |[0;0m fileprivate func update(
[0;36m411 |[0;0m _ elapsed: [4;39mJFloat[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m412 |[0;0m withBodies bodies: ContiguousArray<Body>,
[0;36m413 |[0;0m joints: ContiguousArray<BodyJoint>
/host/spi-builder-workspace/Sources/World.swift:775:31: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m773 |[0;0m ///
[0;36m774 |[0;0m /// - Precondition: `iterations` > 0
[0;36m775 |[0;0m func relaxWorld(timestep: [4;39mJFloat[0;0m, iterations: Int = 100) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m776 |[0;0m relaxing = true
[0;36m777 |[0;0m
/host/spi-builder-workspace/Sources/World.swift:814:51: [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m812 |[0;0m ///
[0;36m813 |[0;0m /// - Precondition: `iterations` > 0
[0;36m814 |[0;0m func relaxBodies(in bodies: [Body], timestep: [4;39mJFloat[0;0m, iterations: Int = 100) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'JFloat' in scope[0;0m
[0;36m815 |[0;0m relaxing = true
[0;36m816 |[0;0m
Failed frontend command:
/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /host/spi-builder-workspace/Sources/Bitmask.swift /host/spi-builder-workspace/Sources/Body.swift /host/spi-builder-workspace/Sources/BodyCollisionInformation.swift /host/spi-builder-workspace/Sources/BodyComponent.swift /host/spi-builder-workspace/Sources/BodyEdge.swift /host/spi-builder-workspace/Sources/BodyJoint.swift /host/spi-builder-workspace/Sources/CollisionObserver.swift /host/spi-builder-workspace/Sources/Components/GravityComponent.swift /host/spi-builder-workspace/Sources/Components/PressureComponent.swift /host/spi-builder-workspace/Sources/Components/ShapeMatchComponent.swift /host/spi-builder-workspace/Sources/Components/SpringComponent.swift /host/spi-builder-workspace/Sources/Geometry/AABB.swift /host/spi-builder-workspace/Sources/Geometry/ClosedShape.swift /host/spi-builder-workspace/Sources/Geometry/GeomUtils.swift /host/spi-builder-workspace/Sources/Geometry/JFloat.swift /host/spi-builder-workspace/Sources/Geometry/Matrix3x3.swift /host/spi-builder-workspace/Sources/Geometry/Vector2.swift /host/spi-builder-workspace/Sources/Geometry/Vector3.swift /host/spi-builder-workspace/Sources/Geometry/VectorRepresentable.swift /host/spi-builder-workspace/Sources/InternalSpring.swift /host/spi-builder-workspace/Sources/JointLink.swift /host/spi-builder-workspace/Sources/JointLinks/BodyJointLink.swift /host/spi-builder-workspace/Sources/JointLinks/EdgeJointLink.swift /host/spi-builder-workspace/Sources/JointLinks/PointJointLink.swift /host/spi-builder-workspace/Sources/JointLinks/ShapeJointLink.swift /host/spi-builder-workspace/Sources/JointLinks/WeightedShapeJointLink.swift /host/spi-builder-workspace/Sources/MaterialPair.swift /host/spi-builder-workspace/Sources/PhysicsUtils.swift /host/spi-builder-workspace/Sources/PointMass.swift /host/spi-builder-workspace/Sources/RenderingSettings.swift /host/spi-builder-workspace/Sources/RestDistance.swift /host/spi-builder-workspace/Sources/SpringBodyJoint.swift /host/spi-builder-workspace/Sources/Utils.swift /host/spi-builder-workspace/Sources/World.swift -target wasm32-unknown-wasip1 -disable-objc-interop -sdk /root/.swiftpm/swift-sdks/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm.artifactbundle/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm/wasm32-unknown-wasip1/WASI.sdk -sysroot /root/.swiftpm/swift-sdks/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm.artifactbundle/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm/wasm32-unknown-wasip1/WASI.sdk -I /host/spi-builder-workspace/.build/out/Products/Debug-webassembly-wasm32 -module-cache-path /host/spi-builder-workspace/.build/out/ModuleCache.noindex -color-diagnostics -Xcc -fcolor-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -swift-version 5 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -external-plugin-path /usr/lib/swift/host/plugins/testing\#/usr/bin/swift-plugin-server -validate-clang-modules-once -clang-build-session-file /host/spi-builder-workspace/.build/out/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /host -resource-dir /root/.swiftpm/swift-sdks/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm.artifactbundle/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static -use-static-resource-dir -enable-anonymous-context-mangled-names -file-compilation-dir /host -Xcc -resource-dir -Xcc /root/.swiftpm/swift-sdks/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm.artifactbundle/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/host/spi-builder-workspace/.build/out/Products/Debug-webassembly-wasm32/include -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/JelloSwift.build/Debug-webassembly-wasm32/JelloSwift-t.build/DerivedSources-normal/wasm32 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/JelloSwift.build/Debug-webassembly-wasm32/JelloSwift-t.build/DerivedSources/wasm32 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/JelloSwift.build/Debug-webassembly-wasm32/JelloSwift-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name JelloSwift -const-gather-protocols-file /host/spi-builder-workspace/.build/out/Intermediates.noindex/JelloSwift.build/Debug-webassembly-wasm32/JelloSwift-t.build/Objects-normal/wasm32/JelloSwift_const_extract_protocols.json -in-process-plugin-server-path /usr/lib/swift/host/libSwiftInProcPluginServer.so -plugin-path /usr/lib/swift/host/plugins -plugin-path /usr/local/lib/swift/host/plugins -emit-module-doc-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/JelloSwift.build/Debug-webassembly-wasm32/JelloSwift-t.build/Objects-normal/wasm32/Modules/JelloSwift.swiftdoc -emit-module-source-info-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/JelloSwift.build/Debug-webassembly-wasm32/JelloSwift-t.build/Objects-normal/wasm32/Modules/JelloSwift.swiftsourceinfo -emit-objc-header-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/JelloSwift.build/Debug-webassembly-wasm32/JelloSwift-t.build/Objects-normal/wasm32/JelloSwift-Swift.h -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/JelloSwift.build/Debug-webassembly-wasm32/JelloSwift-t.build/Objects-normal/wasm32/JelloSwift-primary-emit-module.dia -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/JelloSwift.build/Debug-webassembly-wasm32/JelloSwift-t.build/Objects-normal/wasm32/JelloSwift-primary-emit-module.d -parse-as-library -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/JelloSwift.build/Debug-webassembly-wasm32/JelloSwift-t.build/Objects-normal/wasm32/Modules/JelloSwift.swiftmodule
error: Build failed
BUILD FAILURE 6.4 wasm