/// <summary>
        /// Enables layer with specified name
        /// </summary>
        /// <returns>False if layer not found.</returns>
        public virtual bool Enable(string name)
        {
            if (name == null || name.Length == 0)
            {
                return(true);
            }

            string lowerName = name.ToLower();
            bool   result    = false;

            m_childrenRWLock.AcquireReaderLock(Timeout.Infinite);
            try
            {
                foreach (RenderableObject ro in m_children)
                {
                    if (ro.Name.ToLower() == lowerName)
                    {
                        ro.IsOn = true;
                        result  = true;
                        break;
                    }

                    RenderableObjectList rol = ro as RenderableObjectList;
                    if (rol == null)
                    {
                        continue;
                    }

                    // Recurse down
                    if (rol.Enable(name))
                    {
                        rol.isOn = true;
                        result   = true;
                        break;
                    }
                }
            }
            finally
            {
                m_childrenRWLock.ReleaseReaderLock();
            }

            return(result);
        }