switch permutation type to ubyte

This commit is contained in:
a dinosaur 2024-09-09 04:11:26 +10:00
parent 493790bd64
commit b6085c8f1c
4 changed files with 8 additions and 8 deletions

View File

@ -7,7 +7,7 @@ public protocol CoherentNoiseRandomInit: CoherentNoise {
} }
public protocol CoherentNoiseTableInit: CoherentNoise { public protocol CoherentNoiseTableInit: CoherentNoise {
init(permutation: [Int16]) init(permutation: [UInt8])
} }
public protocol CoherentNoise2D: CoherentNoise { public protocol CoherentNoise2D: CoherentNoise {

View File

@ -20,7 +20,7 @@ public extension LayeredNoise where Generator: CoherentNoiseRandomInit {
} }
public extension LayeredNoise where Generator: CoherentNoiseTableInit { public extension LayeredNoise where Generator: CoherentNoiseTableInit {
init(permutation table: [Int16], octaves: Int, frequency: Scalar, amplitude: Scalar = 1) { init(permutation table: [UInt8], octaves: Int, frequency: Scalar, amplitude: Scalar = 1) {
self.octaves = octaves self.octaves = octaves
self.frequency = frequency self.frequency = frequency
self.amplitude = amplitude self.amplitude = amplitude

View File

@ -1,15 +1,15 @@
import Foundation import Foundation
public struct ImprovedPerlin<Scalar: BinaryFloatingPoint & SIMDScalar>: CoherentNoise2D, CoherentNoise3D, CoherentNoiseRandomInit, CoherentNoiseTableInit { public struct ImprovedPerlin<Scalar: BinaryFloatingPoint & SIMDScalar>: CoherentNoise2D, CoherentNoise3D, CoherentNoiseRandomInit, CoherentNoiseTableInit {
private let p: [Int16] private let p: [UInt8]
public init(permutation: [Int16]) { public init(permutation: [UInt8]) {
assert(permutation.count == 0x100) assert(permutation.count == 0x100)
self.p = permutation self.p = permutation
} }
public init<Random: RandomProvider>(random: inout Random) { public init<Random: RandomProvider>(random: inout Random) {
self.p = (0..<0x100).map { Int16($0) }.shuffled(using: &random) self.p = (0..<0x100).map { UInt8($0) }.shuffled(using: &random)
} }
public func get(_ point: SIMD2<Scalar>) -> Scalar { public func get(_ point: SIMD2<Scalar>) -> Scalar {

View File

@ -1,16 +1,16 @@
import Foundation import Foundation
public struct SimplexNoise<Scalar: BinaryFloatingPoint & SIMDScalar>: CoherentNoise2D, CoherentNoise3D, CoherentNoise4D, CoherentNoiseRandomInit, CoherentNoiseTableInit { public struct SimplexNoise<Scalar: BinaryFloatingPoint & SIMDScalar>: CoherentNoise2D, CoherentNoise3D, CoherentNoise4D, CoherentNoiseRandomInit, CoherentNoiseTableInit {
private let p: [Int16], pMod12: [Int16] private let p: [UInt8], pMod12: [UInt8]
public init(permutation: [Int16]) { public init(permutation: [UInt8]) {
assert(permutation.count == 0x100) assert(permutation.count == 0x100)
self.p = permutation self.p = permutation
self.pMod12 = self.p.map { $0 % 12 } self.pMod12 = self.p.map { $0 % 12 }
} }
public init<Random: RandomProvider>(random: inout Random) { public init<Random: RandomProvider>(random: inout Random) {
self.p = (0..<0x100).map { Int16($0) }.shuffled(using: &random) self.p = (0..<0x100).map { UInt8($0) }.shuffled(using: &random)
self.pMod12 = self.p.map { $0 % 12 } self.pMod12 = self.p.map { $0 % 12 }
} }