Public Member Functions | Properties | List of all members
StateGroup Interface Reference

Configure state groups in a state manager. More...

Public Member Functions

StateTransition CloneTransition (StateTransition sourceTransition)
 Duplicates a transition. More...
 
StateTransition CreateTransition (State startState, State endState)
 Creates a transition between two states. More...
 
void DeleteTransition (StateTransition transition)
 Deletes a transition. More...
 
void MoveTransition (StateTransition transition, int indicesToMove)
 Moves a transition relative to its current position. More...
 

Properties

bool IgnoreStateValidityCheck [get, set]
 
bool IsDisabledOnExport [get, set]
 
IEnumerable< StateStates [get]
 Gets the states in a state group. More...
 
IEnumerable< StateTransitionStateTransitions [get]
 Gets the state transitions in a state group. More...
 

Detailed Description

Configure state groups in a state manager.

State groups contain states, define controller properties, and transitions between states in a state group. A typical transition defines a period and interpolation paths between property values of two states. You can define transitions using a general guideline for all properties, using interpolations for each property as specified, or using animation items.

See also
State, StateBase, StateObject, StateTransition, ProjectItem, Project.StateManagerLibrary

Examples

To create, duplicate, move, and get transitions in a state group:

public void Execute(PluginCommandParameter parameter)
{
// Get the State Managers library which stores state managers used in a Kanzi Studio project.
var stateManagerLibrary = studio.Project.StateManagerLibrary;
// Create a state manager named MyStateManager in the State Managers library.
var myStateManager = studio.Project.CreateProjectItem<StateManager>(
stateManagerLibrary.GenerateUniqueChildName("MyStateManager"), stateManagerLibrary);
// Create a state group named MyStateGroup in the MyStateManager state manager.
var myStateGroup = studio.Project.CreateProjectItem<StateGroup>(
myStateManager.GenerateUniqueChildName("MyStateGroup"),
myStateManager);
// Create five states in the MyStateGroup state group
var myStates = new List<State>();
for (int i = 0; i <= 4; i++)
{
myStates.Add(studio.Project.CreateProjectItem<State>(
myStateGroup.GenerateUniqueChildName("MyState" + i),
myStateGroup));
}
// Create transitions between states. Kanzi adds new transitions to the end.
var myTransition1 = myStateGroup.CreateTransition(myStates[0], myStates[1]);
var myTransition2 = myStateGroup.CreateTransition(myStates[1], myStates[2]);
var myTransition3 = myStateGroup.CreateTransition(myStates[2], myStates[3]);
// Duplicate transition myTransition3;
var myTransition4 = myStateGroup.CloneTransition(myTransition3);
// Move the transition myTransition4 to the first position. The position value is relative to the current position.
myStateGroup.MoveTransition(myTransition3, -3);
// Get all transitions in the MyStateGroup state group and print the start state, end state, and duration for each transition.
foreach (var transition in myStateGroup.StateTransitions)
{
studio.Log(transition.StartState + " -> " + transition.EndState + ", Duration: " + transition.Duration + "ms");
}
}

Member Function Documentation

StateTransition CloneTransition ( StateTransition  sourceTransition)

Duplicates a transition.

Kanzi adds a duplicated transition as the last transition in a state group. You can move transitions in a state group using MoveTransition.

Parameters
sourceTransitionThe name of the transition you want to duplicate.
See also
MoveTransition
StateTransition CreateTransition ( State  startState,
State  endState 
)

Creates a transition between two states.

Kanzi adds a new transition as the last transition in a state group. You can move transitions in a state group using MoveTransition.

Parameters
startStateThe state from which the transition starts.
endStateThe state where the transition ends.
See also
MoveTransition
void DeleteTransition ( StateTransition  transition)

Deletes a transition.

Parameters
transitionThe name of the transition you want to delete.
void MoveTransition ( StateTransition  transition,
int  indicesToMove 
)

Moves a transition relative to its current position.

Parameters
transitionThe transition you want to move.
indicesToMoveThe position relative to the current position of the transition. Positive values move the transition down, negative values move the transition up.

Property Documentation

IEnumerable<State> States
get

Gets the states in a state group.

The states.

Examples

To get all states in a state group:

public void Execute(PluginCommandParameter parameter)
{
// Get the State Managers library which stores state managers used in a Kanzi Studio project.
var stateManagerLibrary = studio.Project.StateManagerLibrary;
// Create a state manager named MyStateManager in the State Managers library.
var myStateManager = studio.Project.CreateProjectItem<StateManager>(
stateManagerLibrary.GenerateUniqueChildName("MyStateManager"), stateManagerLibrary);
// Create a state group named MyStateGroup in the MyStateManager state manager.
var myStateGroup = studio.Project.CreateProjectItem<StateGroup>(
myStateManager.GenerateUniqueChildName("MyStateGroup"),
myStateManager);
// Create five states in the MyStateGroup state group
var myStates = new List<State>();
for (int i = 0; i <= 4; i++)
{
myStates.Add(studio.Project.CreateProjectItem<State>(
myStateGroup.GenerateUniqueChildName("MyState" + i),
myStateGroup));
}
// Get all states in the state group MyStateGroup.
var statesInStateGroup = myStateManager.GetChild("MyStateGroup").Children;
// Print the names of the states in the MyStateGroup state group to the Kanzi Studio Log window.
foreach (var state in statesInStateGroup)
{
studio.Log(state.Name);
}
}
IEnumerable<StateTransition> StateTransitions
get

Gets the state transitions in a state group.

The state transitions.