Allow resizing the grid cells via [ and ]

This commit is contained in:
Eryn Wells 2018-10-27 08:53:21 -07:00
parent 9cbfed136c
commit 9c0e3dccbd
2 changed files with 22 additions and 2 deletions

View file

@ -97,7 +97,20 @@ class ViewController: NSViewController, RendererDelegate {
}
override func keyDown(with event: NSEvent) {
print("key down: \(event)")
switch event.charactersIgnoringModifiers {
case .some("["):
let size = marchingSquares.sampleGridSize
if size.x > 2 {
marchingSquares.sampleGridSize = Size(size.x / 2)
}
case .some("]"):
let size = marchingSquares.sampleGridSize
if size.x < 32 {
marchingSquares.sampleGridSize = Size(size.x * 2)
}
default:
print("key down: \(event)")
}
}
override var acceptsFirstResponder: Bool {

View file

@ -12,11 +12,18 @@ import simd
class MarchingSquares {
private var field: Field
private var sampleGridSize = Size(16)
var sampleGridSize = Size(16) {
didSet {
fieldDidResize()
}
}
private var semaphore: DispatchSemaphore
/// Compute pipeline for sampling the field.
private var samplingPipeline: MTLComputePipelineState?
/// Compute pipeline for calculating the contours based on a grid of samples.
private var contouringPipeline: MTLComputePipelineState?
private var parametersBuffer: MTLBuffer?