public void SetHoriLine_CutOperation_FromPlatePos(Vector2 platePosXZ, CutOperations cutOp) { var localX = platePosXZ.x; var localZ = platePosXZ.y; var horiLineIdx = (int)Mathf.Floor((localZ) / QBLOCK_SIZE_XZ - 0.5f); int horiSegIdx = (int)(localX / QBLOCK_SIZE_XZ); if (horiLineIdx >= 0 && horiLineIdx < horiCutLines_.GetLength(0) && horiSegIdx >= 0 && horiSegIdx < horiCutLines_.GetLength(1)) { horiCutLines_[horiLineIdx, horiSegIdx] = cutOp; } }
public void SetVertLine_CutOperation_FromPlatePos(Vector2 platePosXZ, CutOperations cutOp) { var localX = platePosXZ.x; var localZ = platePosXZ.y; var vertLineIdx = (int)Mathf.Floor((localX) / QBLOCK_SIZE_XZ - 0.5f); int vertSegIdx = (int)(localZ / QBLOCK_SIZE_XZ); if (vertLineIdx >= 0 && vertLineIdx < vertCutLines_.GetLength(0) && vertSegIdx >= 0 && vertSegIdx < vertCutLines_.GetLength(1)) { vertCutLines_[vertLineIdx, vertSegIdx] = cutOp; } }
public void SetCutOperationFromPlatePos(Vector2 platePosXZ, CutOperations cutOp) { var localX = platePosXZ.x; var localZ = platePosXZ.y; Debug.Log(string.Format("{0},{1}", localX, localZ)); var horiLineIdx = (int)Mathf.Floor((localZ) / QBLOCK_SIZE_XZ - 0.5f); var vertLineIdx = (int)Mathf.Floor((localX) / QBLOCK_SIZE_XZ - 0.5f); var horiLineClip = (localZ - ((horiLineIdx + 1) * QBLOCK_SIZE_XZ)) / QBLOCK_SIZE_XZ; var vertLineClip = (localX - ((vertLineIdx + 1) * QBLOCK_SIZE_XZ)) / QBLOCK_SIZE_XZ; Debug.Log(string.Format("{0}, {1} clip {2}, {3}", horiLineIdx, vertLineIdx, horiLineClip, vertLineClip)); if (Mathf.Abs(horiLineClip) < Mathf.Abs(vertLineClip)) { int horiSegIdx = (int)(localX / QBLOCK_SIZE_XZ); if(horiLineIdx>= 0 && horiLineIdx < horiCutLines_.GetLength(0)&& horiSegIdx >= 0 && horiSegIdx < horiCutLines_.GetLength(1)) { horiCutLines_[horiLineIdx, horiSegIdx] = cutOp; } } else { int vertSegIdx = (int)(localZ / QBLOCK_SIZE_XZ); if (vertLineIdx >= 0 && vertLineIdx < vertCutLines_.GetLength(0) && vertSegIdx >= 0 && vertSegIdx < vertCutLines_.GetLength(1)) { vertCutLines_[vertLineIdx, vertSegIdx] = cutOp; } } }