// Gets a list of all tetrahedra
        // Done deliberately by copy (which is slow) to prevent manipulation of the list
        public List <Tetrahedron> GetTetrahedra()
        {
            var list = new List <Tetrahedron>();

            foreach (var tetrahedron in tetrahedrons)
            {
                var newTetrahedron = new Tetrahedron(tetrahedron.Points[0], tetrahedron.Points[1], tetrahedron.Points[2], tetrahedron.Points[3],
                                                     tetrahedron.Mass, tetrahedron.Color, tetrahedron.Fresnel, tetrahedron.Roughness);
                list.Add(tetrahedron);
            }
            return(list);
        }
        /// <summary>
        /// Add a tetrahedron. Will throw an exception if it overlaps with any existing tetrahedra
        /// </summary>
        /// <param name="tetrahedron"></param>
        public void AddTetrahedron(Tetrahedron tetrahedron)
        {
            foreach (var tet in tetrahedrons)
            {
                //if (tet.Overlap(tetrahedron))
                //{
                //    throw new ArgumentException("Tetrahedra are not allowed to overlap!");
                //}
            }

            tetrahedrons.Add(tetrahedron);
        }
 public bool Overlap(Tetrahedron other)
 {
     return(underlying.BulkOverlap(other.underlying));
 }