Go to: Synopsis. Return value. Flags. Python examples.
draggerContext(
[name]
, [anchorPoint=[float, float, float]], [button=int], [currentStep=int], [cursor=string], [dragCommand=script], [dragPoint=[float, float, float]], [drawString=string], [exists=boolean], [finalize=script], [history=boolean], [holdCommand=script], [image1=string], [image2=string], [image3=string], [initialize=script], [modifier=string], [name=string], [plane=[float, float, float]], [prePressCommand=script], [pressCommand=script], [projection=string], [releaseCommand=script], [snapping=boolean], [space=string], [stepsCount=int], [undoMode=string])
Note: Strings representing object names and arguments must be separated by commas. This is not depicted in the synopsis.
draggerContext is undoable, queryable, and editable.
The draggerContext allows the user to program the behavior of the mouse
or an equivalent dragging device in MEL.
string | The name of the context. |
In query mode, return type is based on queried flag.
anchorPoint, button, currentStep, cursor, dragCommand, dragPoint, drawString, exists, finalize, history, holdCommand, image1, image2, image3, initialize, modifier, name, plane, prePressCommand, pressCommand, projection, releaseCommand, snapping, space, stepsCount, undoMode
Long name (short name) |
Argument types |
Properties |
exists(ex)
|
boolean
|
|
|
Returns true or false depending upon whether the
specified object exists. Other flags are ignored.
|
|
image1(i1)
|
string
|
|
|
image2(i2)
|
string
|
|
|
image3(i3)
|
string
|
|
|
Contexts support up to three icons that represent
the tool associated with the context.
|
|
history(ch)
|
boolean
|
|
|
If this is a tool command, turn the construction history on
for the tool in question.
|
|
name(n)
|
string
|
|
|
If this is a tool command, name the tool appropriately.
|
|
initialize(inz)
|
script
|
|
|
Command called when the tool is entered.
|
|
finalize(fnz)
|
script
|
|
|
Command called when the tool is exited.
|
|
prePressCommand(ppc)
|
script
|
|
|
Command called when mouse dragger is pressed. It is called before
pressCommand, so it can be used for initialization of context.
|
|
pressCommand(pc)
|
script
|
|
|
Command called when mouse dragger is pressed.
|
|
dragCommand(dc)
|
script
|
|
|
Command called when mouse dragger is dragged.
|
|
releaseCommand(rc)
|
script
|
|
|
Command called when mouse dragger is released.
|
|
holdCommand(hc)
|
script
|
|
|
Command called when mouse dragger is held.
|
|
anchorPoint(ap)
|
[float, float, float]
|
|
|
Anchor point (double array) where dragger was initially pressed.
|
|
dragPoint(dp)
|
[float, float, float]
|
|
|
Drag point (double array) current position of dragger during drag.
|
|
projection(pr)
|
string
|
|
|
Sets current projection of drag point. Valid types are:
viewPlane |
project to view plane |
objectViewPlane |
project to object plane (parallel to view plane) |
objectPlane |
project to specified plane defined by object location and normal (default) 0,1,0 |
plane |
project to specified plane defined by origin and normal (default) 0,1,0 |
sketchPlane |
project to sketch plane |
xAxis |
project to closest point on X axis |
yAxis |
project to closest point on Y axis |
zAxis |
project to closest point on Z axis |
boundingSphere |
project to closest point on object sphere bounds |
boundingBox |
project to closest point on object bounding box |
|
|
plane(pl)
|
[float, float, float]
|
|
|
Provide normal of projection plane (see -projection flag for details).
|
|
space(sp)
|
string
|
|
|
Sets current space that coordinates are reported in. Types are:
world |
world space (global) |
object |
object space (local) |
screen |
screen space |
|
|
modifier(mo)
|
string
|
|
|
Returns the current modifier type: ctrl, alt or none.
|
|
button(bu)
|
int
|
|
|
Returns the current mouse button (1,2,3).
|
|
cursor(cur)
|
string
|
|
|
Cursor displayed while context is active. Valid values are:
"default", "hand", "crossHair", "dolly", "track", and "tumble".
|
|
drawString(ds)
|
string
|
|
|
A string to be drawn at the current position of the pointer.
|
|
undoMode(um)
|
string
|
|
|
Undo queue mode for the context actions.
Acceptable values are:
- "all" default behaviour when every action that happens during
dragger context activity is recorded as an individual undo chunk.
- "step" - all the actions that happen between each press and
release are combined into one undo chunk.
- "sequence" - all the actions that happen between very first press
and very last release are combined into single undo chunk. This works
exactly the same as "step" for a single step dragger context.
|
|
stepsCount(sc)
|
int
|
|
|
Number of steps (press-drag-release sequences) for dragger context.
When combined with undoMode flag, several steps might be recorded as
single undo action.
|
|
snapping(snp)
|
boolean
|
|
|
Enable/disable snapping for dragger context.
|
|
currentStep(cs)
|
int
|
|
|
Current step (press-drag-release sequence) for dragger context.
When queried before first press event happened, returns 0.
|
|
Flag can appear in Create mode of command
|
Flag can appear in Edit mode of command
|
Flag can appear in Query mode of command
|
Flag can have multiple arguments, passed either as a tuple or a list.
|
import maya.cmds as cmds
# Procedure called on press
def SampleContextPress():
pressPosition = cmds.draggerContext( 'sampleContext', query=True, anchorPoint=True)
print ("Press: " + str(pressPosition))
# Procedure called on drag
def SampleContextDrag():
dragPosition = cmds.draggerContext( 'sampleContext', query=True, dragPoint=True)
button = cmds.draggerContext( 'sampleContext', query=True, button=True)
modifier = cmds.draggerContext( 'sampleContext', query=True, modifier=True)
print ("Drag: " + str(dragPosition) + " Button is " + str(button) + " Modifier is " + modifier + "\n")
message = str(dragPosition[0]) + ", " + str(dragPosition[1])
cmds.draggerContext( 'sampleContext', edit=True, drawString=message)
# Define draggerContext with press and drag procedures
cmds.draggerContext( 'sampleContext', pressCommand='SampleContextPress()', dragCommand='SampleContextDrag()', cursor='hand' );
# Set the tool to the sample context created
# Results can be observed by dragging mouse around main window
cmds.setToolTo('sampleContext')