voxelotl-engine/Sources/Voxelotl/Noise/CoherentNoise.swift
2024-09-04 01:38:27 +10:00

22 lines
500 B
Swift

public protocol CoherentNoise {
associatedtype Scalar: FloatingPoint & SIMDScalar
init()
}
public protocol CoherentNoiseRandomInit: CoherentNoise {
init<Random: RandomProvider>(random: inout Random)
}
public protocol CoherentNoise2D: CoherentNoise {
func get(_ point: SIMD2<Scalar>) -> Scalar
}
public protocol CoherentNoise3D: CoherentNoise {
func get(_ point: SIMD3<Scalar>) -> Scalar
}
public protocol CoherentNoise4D: CoherentNoise {
func get(_ point: SIMD4<Scalar>) -> Scalar
}