private void UpdateSelection()
{
var selection = Selection.GetTransforms(SelectionMode.Unfiltered);
m_TemporarySelection.Clear();
// Adds rendered transforms that are not part of the m_LockedObjects set
foreach (var tr in m_TransformsToRender)
{
if (!m_LockedObjects.ContainsKey(tr.Transform))
{
m_TemporarySelection.Add(tr.Transform);
}
}
var addedTransforms = selection.Except(m_TemporarySelection);
var removedTransforms = m_TemporarySelection.Except(selection);
foreach (var tr in addedTransforms)
{
var newItem = new RenderedTransform(tr);
if (!m_TransformsToRender.Contains(newItem) && newItem.HasBody)
{
m_TransformsToRender.Add(newItem);
}
}
foreach (var tr in removedTransforms)
{
if (!m_LockedObjects.ContainsKey(tr))
{
m_TransformsToRender.Remove(tr);
}
}
Repaint();
}