From 59ce3ca6884ed0057684b4d100b0e91fa9bb52ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Stompo=CC=81r?= Date: Sat, 3 Jan 2026 16:34:36 +0100 Subject: [PATCH 1/4] Add ZPack --- .gitmodules | 3 +++ Dependencies/ZPack | 1 + 2 files changed, 4 insertions(+) create mode 160000 Dependencies/ZPack diff --git a/.gitmodules b/.gitmodules index 2e46a329..fe902f55 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "Dependencies/DependencyGraph"] path = Dependencies/DependencyGraph url = git@github.com:P0rc3lain/DependencyGraph.git +[submodule "Dependencies/ZPack"] + path = Dependencies/ZPack + url = git@github.com:P0rc3lain/ZPack.git diff --git a/Dependencies/ZPack b/Dependencies/ZPack new file mode 160000 index 00000000..ada6c243 --- /dev/null +++ b/Dependencies/ZPack @@ -0,0 +1 @@ +Subproject commit ada6c243074c0baef42410c85acdd5d2ed42f115 From 65fea8d5c0d41f4765c69fc4e7fed8de6f575032 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Stompo=CC=81r?= Date: Sat, 3 Jan 2026 16:35:42 +0100 Subject: [PATCH 2/4] Remove redundant code --- Engine.xcodeproj/project.pbxproj | 29 +++--- .../Extensions/Swift/Float+Extension.swift | 12 --- .../simd/simd_float3+Extension.swift | 32 ------- .../simd/simd_float3x3+Extension.swift | 29 ------ .../simd/simd_float4+Extension.swift | 9 -- .../simd/simd_float4x4+Extension.swift | 93 +------------------ .../simd/simd_quatf+Extension.swift | 11 --- .../Node/Kinds/SceneNode/PNISceneNode.swift | 1 + Engine/Core/UI/PNIScreenInteractor.swift | 1 + 9 files changed, 14 insertions(+), 203 deletions(-) delete mode 100644 Engine/Core/Extensions/Swift/Float+Extension.swift delete mode 100644 Engine/Core/Extensions/simd/simd_float3+Extension.swift delete mode 100644 Engine/Core/Extensions/simd/simd_float3x3+Extension.swift delete mode 100644 Engine/Core/Extensions/simd/simd_quatf+Extension.swift diff --git a/Engine.xcodeproj/project.pbxproj b/Engine.xcodeproj/project.pbxproj index f4912364..3f7254f9 100644 --- a/Engine.xcodeproj/project.pbxproj +++ b/Engine.xcodeproj/project.pbxproj @@ -51,7 +51,6 @@ 561666FC2719E2CD000063B1 /* Int+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 561666842719E2CC000063B1 /* Int+Extension.swift */; }; 561666FD2719E2CD000063B1 /* MTLTextureDescriptor+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 561666852719E2CC000063B1 /* MTLTextureDescriptor+Extension.swift */; }; 561666FE2719E2CD000063B1 /* MDLMaterial+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 561666862719E2CC000063B1 /* MDLMaterial+Extension.swift */; }; - 561666FF2719E2CD000063B1 /* simd_float3+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 561666872719E2CC000063B1 /* simd_float3+Extension.swift */; }; 561667012719E2CD000063B1 /* MDLObject+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 561666892719E2CC000063B1 /* MDLObject+Extension.swift */; }; 561667022719E2CD000063B1 /* MDLCamera+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5616668A2719E2CC000063B1 /* MDLCamera+Extension.swift */; }; 561667042719E2CD000063B1 /* MDLTexture+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5616668C2719E2CC000063B1 /* MDLTexture+Extension.swift */; }; @@ -62,7 +61,6 @@ 5616670D2719E2CD000063B1 /* MDLMeshBuffer+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 561666952719E2CC000063B1 /* MDLMeshBuffer+Extension.swift */; }; 5616670F2719E2CD000063B1 /* Data+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 561666972719E2CC000063B1 /* Data+Extension.swift */; }; 561667112719E2CD000063B1 /* CGSize+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 561666992719E2CC000063B1 /* CGSize+Extension.swift */; }; - 561667122719E2CD000063B1 /* Float+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5616669A2719E2CC000063B1 /* Float+Extension.swift */; }; 561667142719E2CD000063B1 /* MDLAsset+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5616669C2719E2CC000063B1 /* MDLAsset+Extension.swift */; }; 561667182719E2CD000063B1 /* PNISkeleton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 561666A12719E2CC000063B1 /* PNISkeleton.swift */; }; 5616671C2719E2CD000063B1 /* MTLStencilDescriptor+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 561666A62719E2CC000063B1 /* MTLStencilDescriptor+Extension.swift */; }; @@ -111,7 +109,6 @@ 5620C8252754F65B0098D6FA /* PNOmniLightNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5620C8242754F65B0098D6FA /* PNOmniLightNode.swift */; }; 5620C8272754F7DF0098D6FA /* PNIOmniLightNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5620C8262754F7DF0098D6FA /* PNIOmniLightNode.swift */; }; 5620C8292754F8CD0098D6FA /* PNISpotLightNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5620C8282754F8CD0098D6FA /* PNISpotLightNode.swift */; }; - 5620C82B275517E80098D6FA /* simd_float3x3+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5620C82A275517E80098D6FA /* simd_float3x3+Extension.swift */; }; 5620C832275528030098D6FA /* PNDirectionalShadowJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5620C831275528030098D6FA /* PNDirectionalShadowJob.swift */; }; 5620C83627552AF30098D6FA /* DirectionalShadow.metal in Sources */ = {isa = PBXBuildFile; fileRef = 5620C83527552AF30098D6FA /* DirectionalShadow.metal */; }; 562371C52E2ABA8E00B4BAC6 /* Performance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 562371C42E2ABA8A00B4BAC6 /* Performance.swift */; }; @@ -236,6 +233,7 @@ 5677AD2B28C1505000BF822C /* simd_float3x3+Extension+Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5677AD2228C1505000BF822C /* simd_float3x3+Extension+Tests.swift */; }; 5677AD3128C151CA00BF822C /* XCTest+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5677AD3028C151CA00BF822C /* XCTest+Extension.swift */; }; 567F5C3D28A7AC3000AD0A6C /* NSImage+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 567F5C3C28A7AC3000AD0A6C /* NSImage+Extension.swift */; platformFilters = (macos, ); }; + 567FD5E52F09694700D8A11D /* ZPack in Frameworks */ = {isa = PBXBuildFile; productRef = 567FD5E42F09694700D8A11D /* ZPack */; }; 56865D8C2EF955B50024896F /* MDLAxisAlignedBoundingBox+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56865D8B2EF955B20024896F /* MDLAxisAlignedBoundingBox+Extension.swift */; }; 5686BD9A273C1CD300329FA0 /* PNIStaticBuffer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5686BD99273C1CD300329FA0 /* PNIStaticBuffer.swift */; }; 5686BD9D273D78B700329FA0 /* Animation.metal in Sources */ = {isa = PBXBuildFile; fileRef = 5686BD9C273D78B700329FA0 /* Animation.metal */; }; @@ -305,7 +303,6 @@ 56C4CD512737FFDD000A994E /* PNSpotJob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56C4CD502737FFDD000A994E /* PNSpotJob.swift */; }; 56C4CD53273800E4000A994E /* Spot.metal in Sources */ = {isa = PBXBuildFile; fileRef = 56C4CD52273800E4000A994E /* Spot.metal */; }; 56D12AD027231DAD00550530 /* RawRepresentable+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56D12ACF27231DAD00550530 /* RawRepresentable+Extension.swift */; }; - 56D50858274542EA0097DEB2 /* simd_quatf+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56D50857274542EA0097DEB2 /* simd_quatf+Extension.swift */; }; 56D7ED3F274C36F200A6C25D /* PNBoundInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56D7ED3E274C36F200A6C25D /* PNBoundInteractor.swift */; }; 56D7ED41274C372800A6C25D /* PNIBoundInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56D7ED40274C372800A6C25D /* PNIBoundInteractor.swift */; }; 56D7ED43274C381400A6C25D /* PNBoundingBoxInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56D7ED42274C381400A6C25D /* PNBoundingBoxInteractor.swift */; }; @@ -402,7 +399,6 @@ 561666842719E2CC000063B1 /* Int+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Int+Extension.swift"; sourceTree = ""; }; 561666852719E2CC000063B1 /* MTLTextureDescriptor+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "MTLTextureDescriptor+Extension.swift"; sourceTree = ""; }; 561666862719E2CC000063B1 /* MDLMaterial+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "MDLMaterial+Extension.swift"; sourceTree = ""; }; - 561666872719E2CC000063B1 /* simd_float3+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "simd_float3+Extension.swift"; sourceTree = ""; }; 561666892719E2CC000063B1 /* MDLObject+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "MDLObject+Extension.swift"; sourceTree = ""; }; 5616668A2719E2CC000063B1 /* MDLCamera+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "MDLCamera+Extension.swift"; sourceTree = ""; }; 5616668C2719E2CC000063B1 /* MDLTexture+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "MDLTexture+Extension.swift"; sourceTree = ""; }; @@ -413,7 +409,6 @@ 561666952719E2CC000063B1 /* MDLMeshBuffer+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "MDLMeshBuffer+Extension.swift"; sourceTree = ""; }; 561666972719E2CC000063B1 /* Data+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Data+Extension.swift"; sourceTree = ""; }; 561666992719E2CC000063B1 /* CGSize+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CGSize+Extension.swift"; sourceTree = ""; }; - 5616669A2719E2CC000063B1 /* Float+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Float+Extension.swift"; sourceTree = ""; }; 5616669C2719E2CC000063B1 /* MDLAsset+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "MDLAsset+Extension.swift"; sourceTree = ""; }; 561666A12719E2CC000063B1 /* PNISkeleton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PNISkeleton.swift; sourceTree = ""; }; 561666A62719E2CC000063B1 /* MTLStencilDescriptor+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "MTLStencilDescriptor+Extension.swift"; sourceTree = ""; }; @@ -464,7 +459,6 @@ 5620C8242754F65B0098D6FA /* PNOmniLightNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PNOmniLightNode.swift; sourceTree = ""; }; 5620C8262754F7DF0098D6FA /* PNIOmniLightNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PNIOmniLightNode.swift; sourceTree = ""; }; 5620C8282754F8CD0098D6FA /* PNISpotLightNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PNISpotLightNode.swift; sourceTree = ""; }; - 5620C82A275517E80098D6FA /* simd_float3x3+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "simd_float3x3+Extension.swift"; sourceTree = ""; }; 5620C831275528030098D6FA /* PNDirectionalShadowJob.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PNDirectionalShadowJob.swift; sourceTree = ""; }; 5620C83527552AF30098D6FA /* DirectionalShadow.metal */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.metal; path = DirectionalShadow.metal; sourceTree = ""; }; 562371C42E2ABA8A00B4BAC6 /* Performance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Performance.swift; sourceTree = ""; }; @@ -687,7 +681,6 @@ 56C4CD52273800E4000A994E /* Spot.metal */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.metal; path = Spot.metal; sourceTree = ""; }; 56CDAC082900B08D0088B5DB /* index.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = index.html; sourceTree = ""; }; 56D12ACF27231DAD00550530 /* RawRepresentable+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "RawRepresentable+Extension.swift"; sourceTree = ""; }; - 56D50857274542EA0097DEB2 /* simd_quatf+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "simd_quatf+Extension.swift"; sourceTree = ""; }; 56D7ED3E274C36F200A6C25D /* PNBoundInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PNBoundInteractor.swift; sourceTree = ""; }; 56D7ED40274C372800A6C25D /* PNIBoundInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PNIBoundInteractor.swift; sourceTree = ""; }; 56D7ED42274C381400A6C25D /* PNBoundingBoxInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PNBoundingBoxInteractor.swift; sourceTree = ""; }; @@ -739,6 +732,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 567FD5E52F09694700D8A11D /* ZPack in Frameworks */, 56AD3B852E8837F000C7FC69 /* PNDependencyGraph in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -2051,7 +2045,6 @@ children = ( 56D12ACF27231DAD00550530 /* RawRepresentable+Extension.swift */, 561666842719E2CC000063B1 /* Int+Extension.swift */, - 5616669A2719E2CC000063B1 /* Float+Extension.swift */, 56407B7A27204EEB00440CAC /* Array+Extension.swift */, 563BFC86272878180003EDB7 /* UnsafeMutableRawPointer+Extension.swift */, 56E011C328413EB0007859F2 /* Int32+Extension.swift */, @@ -2084,10 +2077,7 @@ isa = PBXGroup; children = ( 561666822719E2CC000063B1 /* simd_float4+Extension.swift */, - 561666872719E2CC000063B1 /* simd_float3+Extension.swift */, 5616668D2719E2CC000063B1 /* simd_float4x4+Extension.swift */, - 56D50857274542EA0097DEB2 /* simd_quatf+Extension.swift */, - 5620C82A275517E80098D6FA /* simd_float3x3+Extension.swift */, ); path = simd; sourceTree = ""; @@ -2329,6 +2319,7 @@ mainGroup = 56013962255457D100FC1C45; packageReferences = ( 56AD3B732E87D42900C7FC69 /* XCLocalSwiftPackageReference "Dependencies/DependencyGraph" */, + 567FD5E32F09694700D8A11D /* XCLocalSwiftPackageReference "Dependencies/ZPack" */, ); productRefGroup = 5601396D255457D100FC1C45 /* Products */; projectDirPath = ""; @@ -2546,7 +2537,6 @@ 05A51DA52DA288E900D7FA95 /* MotionBlur.metal in Sources */, 5620C81B2754F52C0098D6FA /* PNISpotLight.swift in Sources */, 561667112719E2CD000063B1 /* CGSize+Extension.swift in Sources */, - 5620C82B275517E80098D6FA /* simd_float3x3+Extension.swift in Sources */, 56FA634828AD272400D857A6 /* CurrentValueSubject+Alias.swift in Sources */, 560C18D0273A832A00459AEF /* MTLFunctionConstantValues+Extension.swift in Sources */, 567F5C3D28A7AC3000AD0A6C /* NSImage+Extension.swift in Sources */, @@ -2585,7 +2575,6 @@ 560C18D5273AC30800459AEF /* OmniShadow.metal in Sources */, 56532DF928C7ADD1005476F2 /* PNIColorTemperature.swift in Sources */, 56E011BD28413218007859F2 /* PNTextureLoader.swift in Sources */, - 56D50858274542EA0097DEB2 /* simd_quatf+Extension.swift in Sources */, 5616674C2719E2CD000063B1 /* EnvironmentMapper.metal in Sources */, 5616670F2719E2CD000063B1 /* Data+Extension.swift in Sources */, 560A0BC527542557005AE29D /* PNAnimatedRiggedMeshNode.swift in Sources */, @@ -2631,7 +2620,6 @@ 566795BC274DC7FB005993D7 /* PNISceneTranslator.swift in Sources */, 566020E227343280000F4CA7 /* SSAO.metal in Sources */, 561667232719E2CD000063B1 /* MTLPixelFormat+Extension.swift in Sources */, - 561666FF2719E2CD000063B1 /* simd_float3+Extension.swift in Sources */, 562C73A92849510900E51606 /* PNParticleGenerator.swift in Sources */, 560A0BBB2754223B005AE29D /* PNAnimatedCameraNode.swift in Sources */, 56B6AFB428A269BC00266421 /* PNSceneValidator.swift in Sources */, @@ -2639,7 +2627,6 @@ 56C47BB1275177B70075C61B /* PNAnyBufferedValue.swift in Sources */, 5670EC252736E1EF00375194 /* PNCombineStage.swift in Sources */, 561666F82719E2CD000063B1 /* MTLVertexDescriptor+Extension.swift in Sources */, - 561667122719E2CD000063B1 /* Float+Extension.swift in Sources */, 566795DC274FC5C9005993D7 /* Bool+Alias.swift in Sources */, 5670EC162736A2AE00375194 /* PNGPUSupply.swift in Sources */, 560A0BC227542460005AE29D /* PNIAnimatedMeshNode.swift in Sources */, @@ -2841,7 +2828,6 @@ isa = XCBuildConfiguration; buildSettings = { BUILD_LIBRARY_FOR_DISTRIBUTION = YES; - CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; @@ -2880,7 +2866,6 @@ isa = XCBuildConfiguration; buildSettings = { BUILD_LIBRARY_FOR_DISTRIBUTION = YES; - CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; @@ -2993,6 +2978,10 @@ /* End XCConfigurationList section */ /* Begin XCLocalSwiftPackageReference section */ + 567FD5E32F09694700D8A11D /* XCLocalSwiftPackageReference "Dependencies/ZPack" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Dependencies/ZPack; + }; 56AD3B732E87D42900C7FC69 /* XCLocalSwiftPackageReference "Dependencies/DependencyGraph" */ = { isa = XCLocalSwiftPackageReference; relativePath = Dependencies/DependencyGraph; @@ -3000,6 +2989,10 @@ /* End XCLocalSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ + 567FD5E42F09694700D8A11D /* ZPack */ = { + isa = XCSwiftPackageProductDependency; + productName = ZPack; + }; 56AD3B812E8837EB00C7FC69 /* PNDependencyGraph */ = { isa = XCSwiftPackageProductDependency; package = 56AD3B732E87D42900C7FC69 /* XCLocalSwiftPackageReference "Dependencies/DependencyGraph" */; diff --git a/Engine/Core/Extensions/Swift/Float+Extension.swift b/Engine/Core/Extensions/Swift/Float+Extension.swift deleted file mode 100644 index ff9fa28b..00000000 --- a/Engine/Core/Extensions/Swift/Float+Extension.swift +++ /dev/null @@ -1,12 +0,0 @@ -// -// Copyright © 2021 Mateusz Stompór. All rights reserved. -// - -extension Float { - public var radians: Float { - self / 180 * .pi - } - public var half: Float16 { - Float16(self) - } -} diff --git a/Engine/Core/Extensions/simd/simd_float3+Extension.swift b/Engine/Core/Extensions/simd/simd_float3+Extension.swift deleted file mode 100644 index 5dbeefb1..00000000 --- a/Engine/Core/Extensions/simd/simd_float3+Extension.swift +++ /dev/null @@ -1,32 +0,0 @@ -// -// Copyright © 2021 Mateusz Stompór. All rights reserved. -// - -import simd - -extension simd_float3 { - public var norm: Float { - length(self) - } - public static func random(componentRange: Range = 0 ..< 1) -> simd_float3 { - simd_float3(.random(in: componentRange), - .random(in: componentRange), - .random(in: componentRange)) - } - public var normalized: simd_float3 { - self / norm - } - public mutating func normalize() { - self /= norm - } - public func randomPerpendicular(length: Float = 1) -> simd_float3 { - let randomVector = simd_float3.random() - var perpendicular = cross(self, randomVector) - perpendicular.normalize() - perpendicular *= length - return perpendicular - } - public init(_ x: Int, _ y: Int, _ z: Int) { - self.init(Float(x), Float(y), Float(z)) - } -} diff --git a/Engine/Core/Extensions/simd/simd_float3x3+Extension.swift b/Engine/Core/Extensions/simd/simd_float3x3+Extension.swift deleted file mode 100644 index f1bcc218..00000000 --- a/Engine/Core/Extensions/simd/simd_float3x3+Extension.swift +++ /dev/null @@ -1,29 +0,0 @@ -// -// Copyright © 2021 Mateusz Stompór. All rights reserved. -// - -import simd - -extension simd_float3x3 { - public static var identity: simd_float3x3 { - matrix_identity_float3x3 - } - public static func from(directionVector binormal: simd_float3) -> simd_float3x3 { - assertEqual(length(binormal), 1) - var normal = simd_float3.random() - normal.normalize() - normal = (normal - dot(binormal, normal) * binormal) - normal.normalize() - var tangent = cross(normal, binormal) - tangent.normalize() - assert(dot(normal, binormal) == 0) - assert(dot(tangent, binormal) == 0) - return simd_float3x3(tangent, normal, -binormal) - } - public var expanded: simd_float4x4 { - simd_float4x4(simd_float4(columns.0, 0), - simd_float4(columns.1, 0), - simd_float4(columns.2, 0), - simd_float4(.zero, 1)) - } -} diff --git a/Engine/Core/Extensions/simd/simd_float4+Extension.swift b/Engine/Core/Extensions/simd/simd_float4+Extension.swift index f8097945..b56ccc89 100644 --- a/Engine/Core/Extensions/simd/simd_float4+Extension.swift +++ b/Engine/Core/Extensions/simd/simd_float4+Extension.swift @@ -5,15 +5,6 @@ import simd extension simd_float4 { - public var norm: Float { - length(self) - } - public var xyz: simd_float3 { - simd_float3(x, y, z) - } - var zyxw: simd_float4 { - simd_float4(z, y, x, w) - } public static var defaultNormalsColor: simd_float4 { simd_float4(1, 0.5, 0.5, 1) } diff --git a/Engine/Core/Extensions/simd/simd_float4x4+Extension.swift b/Engine/Core/Extensions/simd/simd_float4x4+Extension.swift index d360e6b4..3fb0d63e 100644 --- a/Engine/Core/Extensions/simd/simd_float4x4+Extension.swift +++ b/Engine/Core/Extensions/simd/simd_float4x4+Extension.swift @@ -3,88 +3,14 @@ // import simd +import ZPack extension simd_float4x4 { - public static var identity: simd_float4x4 { - matrix_identity_float4x4 - } - public var translation: simd_float3 { - get { - columns.3.xyz - } set { - columns.3 = simd_float4(newValue, columns.3.w) - } - } - public var rotation: simd_quatf { - simd_quatf(self) - } - public var scale: simd_float3 { - simd_float3(simd_length(columns.0.xyz), - simd_length(columns.1.xyz), - simd_length(columns.2.xyz)) - } public var decomposed: PNPosition { PNPosition(translation: translation, rotation: rotation, scale: scale) } - public init(_ matrix: simd_double4x4) { - let columns = matrix.columns - self.init(columns: (simd_float4(columns.0), - simd_float4(columns.1), - simd_float4(columns.2), - simd_float4(columns.3))) - } - public init(repeatingRow row: simd_float4) { - self.init(rows: [row, row, row, row]) - } - public init(repeatingColumn column: simd_float4) { - self.init(columns: (column, column, column, column)) - } - public static func orientation(quaternion: simd_quatf) -> simd_float4x4 { - simd_float4x4(quaternion) - } - public static func translation(vector: simd_float3) -> simd_float4x4 { - simd_float4x4(columns: (simd_float4(1, 0, 0, 0), - simd_float4(0, 1, 0, 0), - simd_float4(0, 0, 1, 0), - simd_float4(vector, 1))) - } - public static func scale(_ factors: simd_float3) -> simd_float4x4 { - simd_float4x4(diagonal: simd_float4(factors, 1)) - } - public static func scale(factor: Float) -> simd_float4x4 { - simd_float4x4(diagonal: simd_float4([factor, factor, factor], 1)) - } - public static func perspectiveProjectionRightHand(fovyRadians: simd_float1, - aspect: simd_float1, - nearZ: simd_float1, - farZ: simd_float1) -> simd_float4x4 { - let yScale = 1 / tan(fovyRadians * 0.5) - let xScale = yScale / aspect - let zScale = farZ / (nearZ - farZ) - return simd_float4x4(rows: [simd_float4(yScale, 0, 0, 0), - simd_float4(0, xScale, 0, 0), - simd_float4(0, 0, zScale, nearZ * zScale), - simd_float4(0, 0, -1, 0 )]) - } - static func orthographicProjection(left: Float, - right: Float, - top: Float, - bottom: Float, - near: Float, - far: Float) -> simd_float4x4 { - let sLength = 1.0 / (right - left) - let aLength = right + left - let sHeight = 1.0 / (top - bottom) - let aHeight = top + bottom - let sDepth = 1.0 / (far - near) - let p = simd_float4(2 * sLength, 0, 0, 0) - let q = simd_float4(0, 2 * sHeight, 0, 0) - let r = simd_float4(0, 0, -sDepth, 0) - let s = simd_float4(-aLength * sLength, -aHeight * sHeight, -near * sDepth, 1) - return float4x4(p, q, r, s) - } static func orthographicProjection(bound: PNBound) -> simd_float4x4 { orthographicProjection(left: bound.min.x, right: bound.max.x, @@ -93,21 +19,4 @@ extension simd_float4x4 { near: bound.min.z, far: bound.max.z) } - public static func from(directionVector: simd_float3) -> simd_float4x4 { - simd_float3x3.from(directionVector: directionVector).expanded - } - public static func composeTRS(translation: simd_float3, - rotation: simd_quatf, - scale: simd_float3) -> simd_float4x4 { - .translation(vector: translation) * rotation.rotationMatrix * .scale(scale) - } - public static func composeRTS(translation: simd_float3, - rotation: simd_quatf, - scale: simd_float3) -> simd_float4x4 { - rotation.rotationMatrix * .translation(vector: translation) * .scale(scale) - } - public static func compose(translation: simd_float3, - scale: simd_float3) -> simd_float4x4 { - .translation(vector: translation) * .scale(scale) - } } diff --git a/Engine/Core/Extensions/simd/simd_quatf+Extension.swift b/Engine/Core/Extensions/simd/simd_quatf+Extension.swift deleted file mode 100644 index b66592d5..00000000 --- a/Engine/Core/Extensions/simd/simd_quatf+Extension.swift +++ /dev/null @@ -1,11 +0,0 @@ -// -// Copyright © 2021 Mateusz Stompór. All rights reserved. -// - -import simd - -extension simd_quatf { - public var rotationMatrix: simd_float4x4 { - simd_float4x4(self) - } -} diff --git a/Engine/Core/Organization/Node/Kinds/SceneNode/PNISceneNode.swift b/Engine/Core/Organization/Node/Kinds/SceneNode/PNISceneNode.swift index 80210182..f0cc9f12 100644 --- a/Engine/Core/Organization/Node/Kinds/SceneNode/PNISceneNode.swift +++ b/Engine/Core/Organization/Node/Kinds/SceneNode/PNISceneNode.swift @@ -5,6 +5,7 @@ import Combine import PNShared import simd +import ZPack public final class PNISceneNode: PNSceneNode { public let name: String diff --git a/Engine/Core/UI/PNIScreenInteractor.swift b/Engine/Core/UI/PNIScreenInteractor.swift index 3542ee3a..9066a906 100644 --- a/Engine/Core/UI/PNIScreenInteractor.swift +++ b/Engine/Core/UI/PNIScreenInteractor.swift @@ -3,6 +3,7 @@ // import simd +import ZPack class PNIScreenInteractor: PNScreenInteractor { private let boundInteractor = PNIBoundInteractor() From 7c65e0ec98ce796b144b95b3bd6b056eea4612e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Stompo=CC=81r?= Date: Sun, 4 Jan 2026 00:11:44 +0100 Subject: [PATCH 3/4] Update ZPack --- Dependencies/ZPack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dependencies/ZPack b/Dependencies/ZPack index ada6c243..1e582791 160000 --- a/Dependencies/ZPack +++ b/Dependencies/ZPack @@ -1 +1 @@ -Subproject commit ada6c243074c0baef42410c85acdd5d2ed42f115 +Subproject commit 1e582791a6382fe3b05787b1892b9fd895dc5e1d From ceff41790cb49f908fdd3eab59dbda1ea382c52e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Stompo=CC=81r?= Date: Sun, 4 Jan 2026 00:16:56 +0100 Subject: [PATCH 4/4] Update submodule --- Dependencies/ZPack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dependencies/ZPack b/Dependencies/ZPack index 1e582791..abb19da2 160000 --- a/Dependencies/ZPack +++ b/Dependencies/ZPack @@ -1 +1 @@ -Subproject commit 1e582791a6382fe3b05787b1892b9fd895dc5e1d +Subproject commit abb19da204d44592edfae1315c66ddf532e94c14