// Automatically add rigidbody and box collider to object if it doesn't already have
    // and fill the generatedBodies array
    static void AutoGenerateComponents(Transform[] transforms)
    {
        generatedRigidbodies = new List <Rigidbody>();
        generatedColliders   = new List <Collider>();
        simulatedBodies      = new SimulatedBody[transforms.Length];

        int i = 0;

        foreach (Transform child in transforms)
        {
            if (!child.TryGetComponent(out Rigidbody rb))
            {
                rb = child.gameObject.AddComponent <Rigidbody>();
                generatedRigidbodies.Add(rb);
            }
            if (!child.GetComponent <Collider>())
            {
                generatedColliders.Add(child.gameObject.AddComponent <BoxCollider>());
            }

            simulatedBodies[i] = new SimulatedBody(rb, true);
            i++;
        }
    }
 // Is the given simulatedbody one of the scene selected gameobjects
 bool IsSelected(SimulatedBody sb)
 {
     return(m_selectedObjs.Any(selected => selected.transform.GetInstanceID() == sb.ID));
 }