Exemplo n.º 1
0
 private void InitAllCornerInfo()
 {
     _topLeftCorner     = new CornerInfo(CornerPos.TopLeft, _tempCornerRadius.TopLeft, _tempCircleThickness, this.ActualWidth, this.ActualHeight);
     _topRightCorner    = new CornerInfo(CornerPos.TopRight, _tempCornerRadius.TopRight, _tempCircleThickness, this.ActualWidth, this.ActualHeight);
     _bottomLeftCorner  = new CornerInfo(CornerPos.BottomLeft, _tempCornerRadius.BottomLeft, _tempCircleThickness, this.ActualWidth, this.ActualHeight);
     _bottomRightCorner = new CornerInfo(CornerPos.BottomRight, _tempCornerRadius.BottomRight, _tempCircleThickness, this.ActualWidth, this.ActualHeight);
 }
Exemplo n.º 2
0
 public static Vector3 GetCornersMidpoint(CornerInfo corners)
 {
     return(new Vector3(
                corners.topLeft.x + (Mathf.Abs(corners.bottomRight.x - corners.topLeft.x) / 2.0f),
                corners.bottomRight.y + (Mathf.Abs(corners.topLeft.y - corners.bottomRight.y) / 2.0f),
                0.0f));
 }
Exemplo n.º 3
0
    public static Vector2 GetSizeFromCorners(CornerInfo cornerInfo)
    {
        float leftMostX   = cornerInfo.topLeft.x;
        float rightMostX  = cornerInfo.bottomRight.x;
        float topMostY    = cornerInfo.topLeft.y;
        float bottomMostY = cornerInfo.bottomRight.y;

        return(new Vector2(
                   Mathf.Abs(rightMostX - leftMostX),
                   Mathf.Abs(topMostY - bottomMostY)));
    }
        List <CornerInfo> PrepareCornerInfos(string undoLabel)
        {
            List <Transform> objs = selection.GetSelection();

            error = ADError.None;

            // load edge info & store the orginal obj position for undo
            List <CornerInfo> cornerInfos = new List <CornerInfo>();

            foreach (Transform obj in objs)
            {
                // make sure the Canvas is setup correctly
                CanvasRenderer canvasRenderer = obj.GetComponent <CanvasRenderer>();

                if (canvasRenderer != null && state.context.type != ContextType.Canvas)
                {
                    error = ADError.CanvasContext;
                    return(null);
                }

                // make sure NGUI is setup correctly
                R2DC_NGUI.NGUIState nguiState = ngui.ValidateState(obj.gameObject);

                if (nguiState == R2DC_NGUI.NGUIState.InvalidContext)
                {
                    error = ADError.NGUIContext;
                    return(null);
                }
                else if (nguiState == R2DC_NGUI.NGUIState.ReflectionError)
                {
                    error = ADError.NGUIReflection;
                    return(null);
                }

                CornerInfo cornerInfo = new CornerInfo();
                cornerInfo.transform = obj;
                Vector3[] corners = bounds.GetWorldCorners(obj, state.preferColliders);

                if (corners == null)
                {
                    return(null);
                }

                cornerInfo.corners = corners;
                cornerInfos.Add(cornerInfo);

                Undo.RecordObject(obj.transform, undoLabel);
            }

            return(cornerInfos);
        }
Exemplo n.º 5
0
    public static CornerInfo GetAnchorsWorldspaceCorners(Vector3[] rectCorners, Vector2 anchorMin, Vector2 anchorMax)
    {
        CornerInfo cornerInfo = GetCornerInfo(rectCorners);
        Vector2    rectSize   = GetSizeFromCorners(cornerInfo);
        var        ci         = new CornerInfo();

        float leftMostX   = cornerInfo.bottomLeft.x;
        float bottomMostY = cornerInfo.bottomLeft.y;

        ci.topLeft = new Vector2(
            leftMostX + (anchorMin.x * rectSize.x),
            bottomMostY + (anchorMax.y * rectSize.y));
        ci.bottomLeft = new Vector2(
            leftMostX + (anchorMin.x * rectSize.x),
            bottomMostY + (anchorMin.y * rectSize.y));
        ci.topRight = new Vector2(
            leftMostX + (anchorMax.x * rectSize.x),
            bottomMostY + (anchorMax.y * rectSize.y));
        ci.bottomRight = new Vector2(
            leftMostX + (anchorMax.x * rectSize.x),
            bottomMostY + (anchorMin.y * rectSize.y));

        return(ci);
    }
Exemplo n.º 6
0
    public static CornerInfo GetCornerInfo(Vector3[] corners)
    {
        var ci = new CornerInfo();

        float leftMostX   = float.MaxValue;
        float rightMostX  = float.MinValue;
        float topMostY    = float.MinValue;
        float bottomMostY = float.MaxValue;

        foreach (Vector3 corner in corners)
        {
            if (corner.x < leftMostX)
            {
                leftMostX = corner.x;
            }
            if (corner.x > rightMostX)
            {
                rightMostX = corner.x;
            }
            if (corner.y < bottomMostY)
            {
                bottomMostY = corner.y;
            }
            if (corner.y > topMostY)
            {
                topMostY = corner.y;
            }
        }

        ci.topLeft     = new Vector2(leftMostX, topMostY);
        ci.topRight    = new Vector2(rightMostX, topMostY);
        ci.bottomLeft  = new Vector2(leftMostX, bottomMostY);
        ci.bottomRight = new Vector2(rightMostX, bottomMostY);

        return(ci);
    }
Exemplo n.º 7
0
		List<CornerInfo> PrepareCornerInfos( string undoLabel ) {
			List<Transform> objs = selection.GetSelection();
			error = ADError.None;

			// load edge info & store the orginal obj position for undo  
			List<CornerInfo> cornerInfos = new List<CornerInfo>();
			foreach( Transform obj in objs ) {
				// make sure the Canvas is setup correctly
				CanvasRenderer canvasRenderer = obj.GetComponent<CanvasRenderer>();
				if( canvasRenderer != null && state.context.type != ContextType.Canvas ) {
					error = ADError.CanvasContext;
					return null;
				}

				// make sure NGUI is setup correctly
				R2DC_NGUI.NGUIState nguiState = ngui.ValidateState( obj.gameObject );
				if( nguiState == R2DC_NGUI.NGUIState.InvalidContext ) {
					error = ADError.NGUIContext;
					return null;
				}
				else if( nguiState == R2DC_NGUI.NGUIState.ReflectionError ) {
					error = ADError.NGUIReflection;
					return null;
				}

				CornerInfo cornerInfo = new CornerInfo();
				cornerInfo.transform = obj;
				Vector3[] corners = bounds.GetWorldCorners( obj, state.preferColliders );
				if( corners == null ) {
					return null;
				}
				cornerInfo.corners = corners;
				cornerInfos.Add( cornerInfo );

				Undo.RecordObject( obj.transform, undoLabel );
			}

			return cornerInfos;
		}