// Update is called once per frame void Update() { if (!canvas) { return; } if (pauseInput) { return; } //copy slice calibration if (Input.GetKeyDown(KeyCode.C) && (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift))) { copyCurrentSliceCalibration(); return; } canvasEditMode oldMode = m; int oldSelection = currentSlice; if (Input.GetKeyDown(nextSlice)) { if (canvas._flipZ) { sliceDn(); } else { sliceUp(); } } if (Input.GetKeyDown(prevSlice)) { if (canvas._flipZ) { sliceUp(); } else { sliceDn(); } } else if (Input.GetKeyDown(skewXDn)) { float xPixel = 2f / canvas.sliceWidth; //here it is 2 instead of 1 because x raw positions correspond from -1 to 1, while y raw positions correspond from 0 to 1 if (relativeTo == distortionCompensationType.SPATIAL) { xPixel *= (canvas.sliceWidth / canvas.sliceHeight) * canvas.aspectX.y; } canvas.makeSkewAdjustment(currentSlice, true, interval * xPixel); } else if (Input.GetKeyDown(skewXUp)) { float xPixel = 2f / canvas.sliceWidth; //here it is 2 instead of 1 because x raw positions correspond from -1 to 1, while y raw positions correspond from 0 to 1 if (relativeTo == distortionCompensationType.SPATIAL) { xPixel *= (canvas.sliceWidth / canvas.sliceHeight) * canvas.aspectX.y; } canvas.makeSkewAdjustment(currentSlice, true, -interval * xPixel); } else if (Input.GetKeyDown(skewYUp)) { float yPixel = 1f / ((float)canvas.sliceHeight * canvas.getSliceCount()); canvas.makeSkewAdjustment(currentSlice, false, interval * yPixel); } else if (Input.GetKeyDown(skewYDn)) { float yPixel = 1f / ((float)canvas.sliceHeight * canvas.getSliceCount()); canvas.makeSkewAdjustment(currentSlice, false, -interval * yPixel); } else if (Input.GetKeyDown(bowTopUp)) { float yPixel = 1f / ((float)canvas.sliceHeight * canvas.getSliceCount()); canvas.makeBowAdjustment(currentSlice, castMesh.bowEdge.top, -interval * yPixel); } else if (Input.GetKeyDown(bowTopDn)) { float yPixel = 1f / ((float)canvas.sliceHeight * canvas.getSliceCount()); canvas.makeBowAdjustment(currentSlice, castMesh.bowEdge.top, interval * yPixel); } else if (Input.GetKeyDown(bowBotUp)) { float yPixel = 1f / ((float)canvas.sliceHeight * canvas.getSliceCount()); canvas.makeBowAdjustment(currentSlice, castMesh.bowEdge.bottom, -interval * yPixel); } else if (Input.GetKeyDown(bowBotDn)) { float yPixel = 1f / ((float)canvas.sliceHeight * canvas.getSliceCount()); canvas.makeBowAdjustment(currentSlice, castMesh.bowEdge.bottom, interval * yPixel); } else if (Input.GetKeyDown(bowLLeft)) { float xPixel = 2f / canvas.sliceWidth; //the xpixel makes the movement distance between x/y equivalent (instead of just a local transform) if (relativeTo == distortionCompensationType.SPATIAL) { xPixel *= (canvas.sliceWidth / canvas.sliceHeight) * canvas.aspectX.y; } canvas.makeBowAdjustment(currentSlice, castMesh.bowEdge.left, interval * xPixel); } else if (Input.GetKeyDown(bowLRight)) { float xPixel = 2f / canvas.sliceWidth; //the xpixel makes the movement distance between x/y equivalent (instead of just a local transform) if (relativeTo == distortionCompensationType.SPATIAL) { xPixel *= (canvas.sliceWidth / canvas.sliceHeight) * canvas.aspectX.y; } canvas.makeBowAdjustment(currentSlice, castMesh.bowEdge.left, -interval * xPixel); } else if (Input.GetKeyDown(bowRLeft)) { float xPixel = 2f / canvas.sliceWidth; //the xpixel makes the movement distance between x/y equivalent (instead of just a local transform) if (relativeTo == distortionCompensationType.SPATIAL) { xPixel *= (canvas.sliceWidth / canvas.sliceHeight) * canvas.aspectX.y; } canvas.makeBowAdjustment(currentSlice, castMesh.bowEdge.right, interval * xPixel); } else if (Input.GetKeyDown(bowRRight)) { float xPixel = 2f / canvas.sliceWidth; //the xpixel makes the movement distance between x/y equivalent (instead of just a local transform) if (relativeTo == distortionCompensationType.SPATIAL) { xPixel *= (canvas.sliceWidth / canvas.sliceHeight) * canvas.aspectX.y; } canvas.makeBowAdjustment(currentSlice, castMesh.bowEdge.right, -interval * xPixel); } else if (Input.GetKeyDown(highlightUL)) { m = canvasEditMode.UL; } else if (Input.GetKeyDown(highlightUR)) { m = canvasEditMode.UR; } else if (Input.GetKeyDown(highlightLL)) { m = canvasEditMode.LL; } else if (Input.GetKeyDown(highlightLR)) { m = canvasEditMode.LR; } else if (Input.GetKeyDown(highlightM)) { m = canvasEditMode.M; } else if (Input.GetKeyDown(left)) { float xPixel = 2f / canvas.sliceWidth; //the xpixel makes the movement distance between x/y equivalent (instead of just a local transform) if (relativeTo == distortionCompensationType.SPATIAL) { xPixel *= (canvas.sliceWidth / canvas.sliceHeight) * canvas.aspectX.y; } canvas.makeAdjustment(currentSlice, m, true, -interval * xPixel); } else if (Input.GetKeyDown(right)) { float xPixel = 2f / canvas.sliceWidth; //here it is 2 instead of 1 because x raw positions correspond from -1 to 1, while y raw positions correspond from 0 to 1 if (relativeTo == distortionCompensationType.SPATIAL) { xPixel *= (canvas.sliceWidth / canvas.sliceHeight) * canvas.aspectX.y; } canvas.makeAdjustment(currentSlice, m, true, interval * xPixel); } else if (Input.GetKeyDown(down)) { float yPixel = 1f / ((float)canvas.sliceHeight * canvas.getSliceCount()); canvas.makeAdjustment(currentSlice, m, false, interval * yPixel); } else if (Input.GetKeyDown(up)) { float yPixel = 1f / ((float)canvas.sliceHeight * canvas.getSliceCount()); canvas.makeAdjustment(currentSlice, m, false, -interval * yPixel); } if (currentSlice != oldSelection || m != oldMode) { current = "s" + currentSlice + " " + m.ToString(); canvas.updateMesh(); } //testing if ((Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.Alpha1)) { testState = testingMode.OFF; canvas.updateMesh(); } else if ((Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.Alpha2)) { testState = testingMode.TEST1; canvas.updateMesh(); } else if ((Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.Alpha3)) { testState = testingMode.TEST1_ALL; canvas.updateMesh(); } else if ((Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.Alpha4)) { testState = testingMode.TEST2; canvas.updateMesh(); } else if ((Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.Alpha5)) { testState = testingMode.TEST2_ALL; canvas.updateMesh(); } if (Input.GetKeyDown(KeyCode.Alpha1)) { interval = .1f; Debug.Log("Set sensitivity to: " + interval); } else if (Input.GetKeyDown(KeyCode.Alpha2)) { interval = .5f; Debug.Log("Set sensitivity to: " + interval); } else if (Input.GetKeyDown(KeyCode.Alpha3)) { interval = 1f; Debug.Log("Set sensitivity to: " + interval); } else if (Input.GetKeyDown(KeyCode.Alpha4)) { interval = 2f; Debug.Log("Set sensitivity to: " + interval); } else if (Input.GetKeyDown(KeyCode.Alpha5)) { interval = 4f; Debug.Log("Set sensitivity to: " + interval); } }
public bool makeAdjustment(int slice, canvasEditMode m, bool x, float amount) { if (slice < 0) { return(false); } if (slice >= ULOffsets.Length) { return(false); } //flip it to keep things intuitive if (_flipX) { if (x) { amount = -amount; } if (m == canvasEditMode.UL) { m = canvasEditMode.UR; } else if (m == canvasEditMode.UR) { m = canvasEditMode.UL; } else if (m == canvasEditMode.LL) { m = canvasEditMode.LR; } else if (m == canvasEditMode.LR) { m = canvasEditMode.LL; } } if (_flipY) { if (!x) { amount = -amount; } if (m == canvasEditMode.UL) { m = canvasEditMode.LL; } else if (m == canvasEditMode.UR) { m = canvasEditMode.LR; } else if (m == canvasEditMode.LL) { m = canvasEditMode.UL; } else if (m == canvasEditMode.LR) { m = canvasEditMode.UR; } } if (m == canvasEditMode.UL) { if (x) { ULOffsets[slice].x += amount; } else { ULOffsets[slice].y += amount; } } else if (m == canvasEditMode.UR) { if (x) { UROffsets[slice].x += amount; } else { UROffsets[slice].y += amount; } } else if (m == canvasEditMode.LL) { if (x) { LLOffsets[slice].x += amount; } else { LLOffsets[slice].y += amount; } } else if (m == canvasEditMode.LR) { if (x) { LROffsets[slice].x += amount; } else { LROffsets[slice].y += amount; } } else if (m == canvasEditMode.M) { if (x) { MOffsets[slice].x += amount; } else { MOffsets[slice].y += amount; } } updateMesh(); return(true); }