예제 #1
0
        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;
            }
        }
예제 #2
0
        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;
            }
        }
예제 #3
0
        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;
                }
            }
        }