gumbo.interact.select
Interface SelectManager

All Superinterfaces:
PickMapper
All Known Implementing Classes:
AbstractSelectManager, AspectManager

public interface SelectManager
extends PickMapper

A pick mapper that manages multiple selection groups (command and/or aspect) for picking and feedback overlap order. Picking order is managed through a chain of selection mappers, and feedback order is managed through associated selection adapters with ordered select flags. Both are ordered such that the front most selection group appears in front and is picked first.

Version:
$Revision: 1.4 $
Author:
Jon Barrilleaux (jonb@jmbaai.com) of JMB and Associates Inc.

Method Summary
 SelectMapper findSelectMapper(java.lang.Object role)
          Returns the select mapper corresponding to a given select flag role object, which clients can use to modify a selection group's membership.
 BooleanField.EventIn getActiveIn()
          While false, inputs are ignored.
 ObjectField.EventIn getAddGroupIn()
          Adds a new empty selection group as the front group, with the input as the select flag role object (see newSelectFlag()).
 InteractorField.EventIn getAddIn()
          Adds a member to the front selection group and syncs its state.
 NotifyNode.EventIn getClearIn()
          Removes all members from the front selection group.
 int getGroupCount()
          Gets the number of selection groups in this manager.
 NotifyNode.EventIn getRemoveGroupIn()
          Clears and removes the front selection group.
 InteractorField.EventIn getRemoveIn()
          Removes a member from the front selection group and desyncs its state.
 SelectFlag getSelectFlag(int pickIndex)
          Gets the select flag at the specified index in the picking chain.
 NotifyNode.EventIn getToBackIn()
          Moves the front group to the back.
 InteractorField.EventIn getToFrontIn()
          Moves the specified selection group to the front.
 
Methods inherited from interface gumbo.interact.PickMapper
getPickIn, getPickOut
 

Method Detail

findSelectMapper

public SelectMapper findSelectMapper(java.lang.Object role)
Returns the select mapper corresponding to a given select flag role object, which clients can use to modify a selection group's membership.

Parameters:
role - The role object. Never null.
Returns:
The select mapper. Null if none.

getSelectFlag

public SelectFlag getSelectFlag(int pickIndex)
Gets the select flag at the specified index in the picking chain.

Parameters:
pickIndex - Picking index. Zero is the front flag (highest Z-order), and getGroupCount()-1 is the back flag (lowest Z-order).
Returns:
The select flag. Never null.

getGroupCount

public int getGroupCount()
Gets the number of selection groups in this manager.

Returns:
The group count. Zero if none.

getActiveIn

public BooleanField.EventIn getActiveIn()
While false, inputs are ignored. Defaults to true.


getAddGroupIn

public ObjectField.EventIn getAddGroupIn()
Adds a new empty selection group as the front group, with the input as the select flag role object (see newSelectFlag()). If a group with the object already exists it will be brought to the front. If the object is null a new group will be added and the group will be used as the role object.


getRemoveGroupIn

public NotifyNode.EventIn getRemoveGroupIn()
Clears and removes the front selection group. Ignored if there are no selection groups.


getToFrontIn

public InteractorField.EventIn getToFrontIn()
Moves the specified selection group to the front. Ignored if the interactor is not a managed selection group or if the group is already in front. Typically connected to the pick out of the picking chain, which results in the picked group automatically moving to the front.


getToBackIn

public NotifyNode.EventIn getToBackIn()
Moves the front group to the back. Ignored if none or one selection groups.


getAddIn

public InteractorField.EventIn getAddIn()
Adds a member to the front selection group and syncs its state. Ignored if null, duplicate, or NO_PICK_TARGET. Throws an exception if there is no front group, or the member is the group.


getRemoveIn

public InteractorField.EventIn getRemoveIn()
Removes a member from the front selection group and desyncs its state. Ignored if null or missing. Throws an exception if there is no front group.


getClearIn

public NotifyNode.EventIn getClearIn()
Removes all members from the front selection group. Does nothing if there are no groups.