// Copyright (c) Wojciech Figat. All rights reserved.
using FlaxEditor.SceneGraph;
using FlaxEditor.Viewport;
using FlaxEngine;
using System.Collections.Generic;
namespace FlaxEditor
{
///
/// Shared interface for scene editing utilities.
///
public interface ISceneEditingContext
{
///
/// Gets the main or last editor viewport used for scene editing within this context.
///
EditorViewport Viewport { get; }
///
/// Gets the list of selected scene graph nodes in the editor context.
///
List Selection { get; }
///
/// Selects the specified node.
///
/// The node.
/// if set to true will use additive mode, otherwise will clear previous selection.
void Select(SceneGraphNode node, bool additive = false);
///
/// Deselects node.
///
/// The node to deselect.
void Deselect(SceneGraphNode node);
///
/// Opends popup for renaming selected objects.
///
void RenameSelection();
///
/// Deletes selected objects.
///
void DeleteSelection();
///
/// Focuses selected objects.
///
void FocusSelection();
///
/// Spawns the specified actor to the game (with undo).
///
/// The actor.
/// The parent actor. Set null as default.
/// The order under the parent to put the spawned actor.
/// True if automatically select the spawned actor, otherwise false.
void Spawn(Actor actor, Actor parent = null, int orderInParent = -1, bool autoSelect = true);
}
}