public void MoveTexture(TextureViewModel texture, TextureViewModel place)
        {
            if (texture == place)
            {
                return;
            }

            Textures.Remove(texture);
            _render.textures.Remove(texture.Model);

            if (place != null)
            {
                Textures.Insert(Textures.IndexOf(place), texture);
                _render.textures.Insert(_render.textures.IndexOf(place.Model), texture.Model);
            }
            else
            {
                Textures.Add(texture);
                _render.textures.Add(texture.Model);
            }

            // Update the texture order number.
            foreach (TextureViewModel tex in Textures)
            {
                tex.OrderChanged();
            }
        }
        public void AddTexture()
        {
            Texture          tex = new Texture();
            TextureViewModel vm  = new TextureViewModel(this, tex);

            Textures.Add(vm);
            _render.textures.Add(tex);
        }
        public void RemoveTexture(TextureViewModel texture)
        {
            Textures.Remove(texture);
            _render.textures.Remove(texture.Model);


            // Update the texture order number.
            foreach (TextureViewModel tex in Textures)
            {
                tex.OrderChanged();
            }
        }
 private DragDropEffects GetDropEffects(TextureViewModel mesh)
 {
     //if (mesh == this)
     //    return DragDropEffects.None;
     return(DragDropEffects.Move);
 }
 private void Drop(TextureViewModel child)
 {
     _parent.MoveTexture(child, this);
 }
 private object GetData(TextureViewModel mesh)
 {
     return(this);
 }
 private DragDropEffects GetDragEffects(TextureViewModel mesh)
 {
     return(DragDropEffects.Move);
 }
 private void Drop(TextureViewModel child)
 {
     MoveTexture(child, null);
 }