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); }
public void SetTargets(FilteredSelection filteredSelection) { hideTool = filteredSelection.NodeTargets.Length > 0; brushes = filteredSelection.GetAllContainedBrushes().ToArray(); lastLineMeshGeneration--; if (isEnabled) { Tools.hidden = hideTool; } }