Exemplo n.º 1
0
        public static Bounds OnGetFrameBounds(FilteredSelection filteredSelection)
        {
            var brushes = filteredSelection.GetAllContainedBrushes();
            var bounds  = new Bounds();

            if (brushes.Count == 0)
            {
                foreach (var node in filteredSelection.NodeTargets)
                {
                    bounds.Encapsulate(node.transform.position);
                }
            }
            else
            {
                foreach (var brush in brushes)
                {
                    var transform   = brush.GetComponent <Transform>();
                    var controlMesh = brush.ControlMesh;
                    bounds.center = transform.TransformPoint(controlMesh.Vertices[0]);
                    bounds.size   = MathConstants.zeroVector3;
                    for (int i = 1; i < controlMesh.Vertices.Length; i++)
                    {
                        bounds.Encapsulate(transform.TransformPoint(controlMesh.Vertices[i]));
                    }
                }
            }
            // TODO: how to get bounds of random selected objects??
            //foreach (var other in filteredSelection.targetOthers)
            //{
            //	bounds.Encapsulate(...);
            //}
            return(bounds);
        }
Exemplo n.º 2
0
 public void SetTargets(FilteredSelection filteredSelection)
 {
     hideTool = filteredSelection.NodeTargets.Length > 0;
     brushes  = filteredSelection.GetAllContainedBrushes().ToArray();
     lastLineMeshGeneration--;
     if (isEnabled)
     {
         Tools.hidden = hideTool;
     }
 }