On this page
- AsoboSubtemplates\Interactions_Subtemplates.xml
- Templates
- ASOBO_GT_Interaction_LeftSingle_Leave_Code_Subtemplate1
- ASOBO_GT_Interaction_LeftSingle_Leave_Code_Subtemplate2
- ASOBO_GT_Interaction_LeftSingle_ParamSetup
- ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_1
- ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_2
- ASOBO_GT_Interaction_LeftSingle_CodeSetup_Recursive
- ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_1
- ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_2
- ASOBO_GT_Interaction_WheelAndContinuousLeft_Vertical
- ASOBO_GT_Interaction_WheelAndContinuousLeft_Horizontal
- ASOBO_GT_Interaction_WheelAndContinuousLeft_Base
- ASOBO_GT_Interaction_DraggingYAxis_SimGates_Base
- Templates
Interactions_Subtemplates.xml
Asobo\(Generic\)Subtemplates\Interactions_Subtemplates.xml
Source XML
<ModelBehaviors> <Macro Name=“IsUsingRelativePos”>(M:InputType) 1 ==</Macro> <Macro Name=“DragLockResetTimer”>0.05 0.10 @IsUsingRelativePos ?</Macro> <Template Name = “ASOBO_GT_Interaction_LeftSingle_Leave_Code_Subtemplate1”> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_Leave_Code_Subtemplate2”> <Condition Check=“WHEEL_DOWN_CODE”> <MOUSEFLAGS>#MOUSEFLAGS#+WheelDown</MOUSEFLAGS> <MOUSE_WHEEL_INPUTS> els{ (M:Event) ‘WheelDown’ scmi 0 == if{ #WHEEL_DOWN_CODE# } #MOUSE_WHEEL_INPUTS# }</MOUSE_WHEEL_INPUTS> </Condition> </UseTemplate> </Template> <Template Name = “ASOBO_GT_Interaction_LeftSingle_Leave_Code_Subtemplate2”> <DefaultTemplateParameters> </DefaultTemplateParameters> <UseTemplate Name=“ASOBO_GT_MouseRect”> <CALLBACKCODE> (M:Event) ‘Lock’ scmi 0 == if{ #LEFT_SINGLE_CODE# } els{ (M:Event) ‘Unlock’ scmi 0 == if{ #LEFT_LEAVE_CODE# } #MOUSE_WHEEL_INPUTS# } </CALLBACKCODE> </UseTemplate> </Template> <!– DO NOT CALL THIS TEMPLATE - Use GT_Interaction_LeftSingle_MultiStates instead –> <Template Name = “ASOBO_GT_Interaction_LeftSingle_ParamSetup”> <DefaultTemplateParameters> <ON_STATE_CHANGED_EXTERNAL_CODE/> <Condition Check=“MOMENTARY_SWITCH”> <STATE0_TIMER>0</STATE0_TIMER> <Condition NotEmpty=“STATEMAX_TIMER”> <!– This allows STATEMAX_TIMER to be equivalent to STATE_MAX_TIMER, which is more logical considering STATE0_TIMER doesn’t have a space between STATE and 0 –> <True> <STATE_MAX_TIMER>#STATEMAX_TIMER#</STATE_MAX_TIMER> </True> <False> <STATE_MAX_TIMER>0</STATE_MAX_TIMER> </False> </Condition> </Condition> <MOMENTARY_REPEAT_DELAY>0.5</MOMENTARY_REPEAT_DELAY> </DefaultTemplateParameters> <OverrideTemplateParameters> <START_STATE Process=“Int”>#NUM_STATES# 1 -</START_STATE> <Condition Check=“MOMENTARY_SWITCH”> <True> <MOMENTARY_UP_0> #STATE0_TIMER# 0 > if{ (E:SIMULATION TIME, seconds) #STATE0_TIMER# + (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) (E:SIMULATION TIME, seconds) #MOMENTARY_REPEAT_DELAY# + (>O:XMLVAR_Repeat_StartTime) } els{ 0 (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) } 0 1 l1 ? (>#SWITCH_POSITION_TYPE_ISDOWN#:#SWITCH_POSITION_VAR_ISDOWN#) </MOMENTARY_UP_0> <CODE_RELEASE>0 (>#SWITCH_POSITION_TYPE_ISDOWN#:#SWITCH_POSITION_VAR_ISDOWN#)</CODE_RELEASE> </True> <False> <MOMENTARY_UP_0></MOMENTARY_UP_0> </False> </Condition> <Condition Valid=“DISABLE_ON_STATE_CHANGED_EXTERNAL_CODE_IN_MR”> <ON_STATE_CHANGED_EXTERNAL_CODE/> </Condition> </OverrideTemplateParameters> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_1”> <CURRENT_ID>#START_STATE#</CURRENT_ID> <POS_MAX>#START_STATE#</POS_MAX> </UseTemplate> </Template> <Template Name = “ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_1”> <DefaultTemplateParameters> <CODE_POS_#CURRENT_ID#_VERIF>1</CODE_POS_#CURRENT_ID#_VERIF> <ANIMTIP_#CURRENT_ID#_ON_PERCENT Process=“Float”>#CURRENT_ID# #POS_MAX# /</ANIMTIP_#CURRENT_ID#_ON_PERCENT> </DefaultTemplateParameters> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_2”> <CURRENT_ENUM_VAL_POS Process=“Param”>ENUM_VAL_POS_#CURRENT_ID#</CURRENT_ENUM_VAL_POS> </UseTemplate> </Template> <Template Name = “ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_2”> <DefaultTemplateParameters> <Condition NotEmpty=“CURRENT_ENUM_VAL_POS”> <True> <CODE_POS_#CURRENT_ID#> (A:#ENUM_SIMVAR#, Enum) #CURRENT_ENUM_VAL_POS# != if{ #CURRENT_ENUM_VAL_POS# (>K:#ENUM_KEY#) } </CODE_POS_#CURRENT_ID#> </True> <False> <CODE_POS_#CURRENT_ID#/> </False> </Condition> </DefaultTemplateParameters> <OverrideTemplateParameters> <CURRENT_ID Process=“Int”>#CURRENT_ID# 1 -</CURRENT_ID> </OverrideTemplateParameters> <Condition> <Test> <GreaterOrEqual> <Number>#CURRENT_ID#</Number> <Number>0</Number> </GreaterOrEqual> </Test> <True> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_1”> </UseTemplate> </True> <False> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_CodeSetup_Recursive”> <CURRENT_ID>#START_STATE#</CURRENT_ID> <NEXT_ID Process=“Int”>#START_STATE# 1 -</NEXT_ID> <CODE_POS_MAX Process=“Param”>CODE_POS_#START_STATE#</CODE_POS_MAX> <CODE_POS_MAX_VERIF Process=“Param”>CODE_POS_#START_STATE#_VERIF</CODE_POS_MAX_VERIF> <ELSE_BRACKET_OPENING>els{</ELSE_BRACKET_OPENING> <ELSE_BRACKET_CLOSING>}</ELSE_BRACKET_CLOSING> </UseTemplate> </False> </Condition> </Template> <Template Name = “ASOBO_GT_Interaction_LeftSingle_CodeSetup_Recursive”> <DefaultTemplateParameters> <Condition Check=“MOMENTARY_SWITCH”> <True> <Condition Check=“MOMENTARY_SWITCH_DOWN_SET”> <True> <MOMENTARY_UP_#CURRENT_ID#></MOMENTARY_UP_#CURRENT_ID#> </True> <False> <MOMENTARY_SWITCH_DOWN_SET/> <MOMENTARY_UP_#CURRENT_ID#> #STATE_MAX_TIMER# 0 > if{ (E:SIMULATION TIME, seconds) #STATE_MAX_TIMER# + (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) (E:SIMULATION TIME, seconds) #MOMENTARY_REPEAT_DELAY# + (>O:XMLVAR_Repeat_StartTime) } els{ 0 (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) } 0 1 l1 ? (>#SWITCH_POSITION_TYPE_ISDOWN#:#SWITCH_POSITION_VAR_ISDOWN#) </MOMENTARY_UP_#CURRENT_ID#> <MOMENTARY_SWITCH_DOWN_INDEX>#CURRENT_ID#</MOMENTARY_SWITCH_DOWN_INDEX> <REST_STATE>#NEXT_ID#</REST_STATE> <CODE_POS_RETURN Process=“Param”>CODE_POS_#NEXT_ID#</CODE_POS_RETURN> </False> </Condition> </True> <False> <MOMENTARY_UP_#CURRENT_ID#></MOMENTARY_UP_#CURRENT_ID#> </False> </Condition> <THRESHOLD_MOUSE>0.03</THRESHOLD_MOUSE> <THRESHOLD_INPUT>0.05</THRESHOLD_INPUT> </DefaultTemplateParameters> <OverrideTemplateParameters> <CURRENT_POS_VERIF Process=“Param”>CODE_POS_#CURRENT_ID#_VERIF</CURRENT_POS_VERIF> <NEXT_POS_VERIF Process=“Param”>CODE_POS_#NEXT_ID#_VERIF</NEXT_POS_VERIF> <CURRENT_CODE_POS Process=“Param”>CODE_POS_#CURRENT_ID#</CURRENT_CODE_POS> <NEXT_CODE_POS Process=“Param”>CODE_POS_#NEXT_ID#</NEXT_CODE_POS> <CURRENT_MOMENTARY_UP Process=“Param”>MOMENTARY_UP_#CURRENT_ID#</CURRENT_MOMENTARY_UP> <NEXT_MOMENTARY_UP Process=“Param”>MOMENTARY_UP_#NEXT_ID#</NEXT_MOMENTARY_UP> <CURRENT_CODE_REPEAT Process=“Param”>CODE_REPEAT_#CURRENT_ID#</CURRENT_CODE_REPEAT> <!– <NEXT_CODE_REPEAT Process=“Param”>CODE_REPEAT_#NEXT_ID#</NEXT_CODE_REPEAT> –> </OverrideTemplateParameters> <Condition> <Test> <GreaterOrEqual> <Number>#NEXT_ID#</Number> <Number>0</Number> </GreaterOrEqual> </Test> <True> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_CodeSetup_Recursive”> <CODE_UP> #CODE_UP# (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CURRENT_ID# == if{ #NEXT_POS_VERIF# if{ #NEXT_ID# (>#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #NEXT_CODE_POS# #ON_STATE_CHANGED_EXTERNAL_CODE# #NEXT_MOMENTARY_UP# } } #ELSE_BRACKET_OPENING# </CODE_UP> <CODE_UP_CLOSING> #ELSE_BRACKET_CLOSING# #CODE_UP_CLOSING# </CODE_UP_CLOSING> <CODE_DOWN> #ELSE_BRACKET_OPENING# (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #NEXT_ID# == if{ #CURRENT_POS_VERIF# if{ #CURRENT_ID# (>#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CURRENT_CODE_POS# #ON_STATE_CHANGED_EXTERNAL_CODE# #CURRENT_MOMENTARY_UP# } } #CODE_DOWN# #ELSE_BRACKET_CLOSING# </CODE_DOWN> <Condition Check=“NEXT_ID” Match=“1”> <True> <ELSE_BRACKET_OPENING></ELSE_BRACKET_OPENING> <ELSE_BRACKET_CLOSING></ELSE_BRACKET_CLOSING> </True> </Condition> <Condition Valid=“CURRENT_CODE_REPEAT”> <CODE_REPEAT> (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CURRENT_ID# == if{ #CURRENT_CODE_REPEAT# } els{ #CODE_REPEAT# } </CODE_REPEAT> </Condition> <CURRENT_ID>#NEXT_ID#</CURRENT_ID> <NEXT_ID Process=“Int”>#NEXT_ID# 1 -</NEXT_ID> </UseTemplate> </True> <False> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_1”> <Condition Valid=“CURRENT_CODE_REPEAT”> <CODE_REPEAT> (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CURRENT_ID# == if{ #CURRENT_CODE_REPEAT# } els{ #CODE_REPEAT# } </CODE_REPEAT> </Condition> </UseTemplate> </False> </Condition> </Template> <!– DO NOT CALL THIS TEMPLATE - Use GT_Interaction_LeftSingle_MultiStates instead –> <Template Name = “ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_1”> <Parameters Type=“Default”> <Condition Check=“SWITCH_DIRECTION” Match=“Vertical”> <UPARROW>UpArrow</UPARROW> <DOWNARROW>DownArrow</DOWNARROW> <DRAG_AXIS>Y</DRAG_AXIS> </Condition> <Condition Check=“SWITCH_DIRECTION” Match=“Horizontal”> <Condition Check=“ARROW_TYPE” Match=“Curved”> <True> <LEFTARROW>TurnLeft</LEFTARROW> <RIGHTARROW>TurnRight</RIGHTARROW> </True> <False> <LEFTARROW>LeftArrow</LEFTARROW> <RIGHTARROW>RightArrow</RIGHTARROW> </False> </Condition> <DRAG_AXIS>X</DRAG_AXIS> </Condition> <LEFT_DOWN_CODE/> <LEFT_UP_CODE/> <ANIMCURSOR_MIN>0</ANIMCURSOR_MIN> <Condition Check=“ANIM_LENGTH”> <True> <ANIMCURSOR_MAX>#ANIM_LENGTH#</ANIMCURSOR_MAX> </True> <False> <ANIMCURSOR_MAX>100</ANIMCURSOR_MAX> </False> </Condition> <USE_PAD_DRAG_IM_LOCK>True</USE_PAD_DRAG_IM_LOCK> </Parameters> <Parameters Type=“Override”> <THRESHOLD_MOUSE>0.001</THRESHOLD_MOUSE> </Parameters> <Parameters Type=“Override”> <THRESHOLD>#THRESHOLD_INPUT# #THRESHOLD_MOUSE# (M:InputType) 1 == ?</THRESHOLD> </Parameters> <Parameters Type=“Default”> <LOCKABLE_EVENT_PRIMARY>LeftSingle</LOCKABLE_EVENT_PRIMARY> <LOCKABLE_EVENT_SECONDARY>RightSingle</LOCKABLE_EVENT_SECONDARY> <NO_LOCK_EVENT_PRIMARY>RightSingle</NO_LOCK_EVENT_PRIMARY> <NO_LOCK_EVENT_SECONDARY>MiddleSingle</NO_LOCK_EVENT_SECONDARY> <LOCKABLE_HANDLE_CODE_UP/> <NO_LOCK_HANDLE_CODE_UP/> <LOCKABLE_HANDLE_CODE_DN/> <NO_LOCK_HANDLE_CODE_DN/> <ADDITIONAL_MOUSEFLAGS/> <CENTER_HANDLING_CODE_START/> <CENTER_HANDLING_CODE_END/> <Condition> <Test> <Or> <Arg NotEmpty=“ON_PRIMARY_EVENT”/> <Arg NotEmpty=“ON_SECONDARY_EVENT”/> </Or> </Test> <True> <CENTER_CURSOR>Hand</CENTER_CURSOR> <CENTER_RADIUS>0.004</CENTER_RADIUS> <DEFINE_CENTER_INTERACTION>True</DEFINE_CENTER_INTERACTION> </True> </Condition> </Parameters> <Parameters Type=“Override”> <Condition NotEmpty=“ON_PRIMARY_EVENT”> <LOCKABLE_HANDLE_CODE_UP>(M:Event) ‘#LOCKABLE_EVENT_PRIMARY#’ scmi 0 == if{ #ON_PRIMARY_EVENT# quit }</LOCKABLE_HANDLE_CODE_UP> <NO_LOCK_HANDLE_CODE_UP>(M:Event) ‘#NO_LOCK_EVENT_PRIMARY#’ scmi 0 == if{ #ON_PRIMARY_EVENT# quit }</NO_LOCK_HANDLE_CODE_UP> <ADDITIONAL_MOUSEFLAGS>+#LOCKABLE_EVENT_PRIMARY#+#NO_LOCK_EVENT_PRIMARY#</ADDITIONAL_MOUSEFLAGS> <CENTER_HANDLING_CODE_END> } els{ #ON_PRIMARY_EVENT# quit } </CENTER_HANDLING_CODE_END> </Condition> <Condition NotEmpty=“ON_SECONDARY_EVENT”> <LOCKABLE_HANDLE_CODE_DN>(M:Event) ‘#LOCKABLE_EVENT_SECONDARY#’ scmi 0 == if{ #ON_SECONDARY_EVENT# quit }</LOCKABLE_HANDLE_CODE_DN> <NO_LOCK_HANDLE_CODE_DN>(M:Event) ‘#NO_LOCK_EVENT_SECONDARY#’ scmi 0 == if{ #ON_SECONDARY_EVENT# quit }</NO_LOCK_HANDLE_CODE_DN> <ADDITIONAL_MOUSEFLAGS>+#LOCKABLE_EVENT_SECONDARY#+#NO_LOCK_EVENT_SECONDARY#</ADDITIONAL_MOUSEFLAGS> <CENTER_HANDLING_CODE_END> } els{ #ON_SECONDARY_EVENT# quit } </CENTER_HANDLING_CODE_END> </Condition> <Condition Valid=“DEFINE_CENTER_INTERACTION”> <True> <CENTER_HANDLING_CODE_START> (M:Relative#DRAG_AXIS#) abs #CENTER_RADIUS# > if{ </CENTER_HANDLING_CODE_START> </True> </Condition> </Parameters> <Parameters Type=“Default”> <LOCKABLE_INPUTS_HANDLING> #LOCKABLE_HANDLE_CODE_UP# #LOCKABLE_HANDLE_CODE_DN# </LOCKABLE_INPUTS_HANDLING> <NO_LOCK_INPUTS_HANDLING> #NO_LOCK_HANDLE_CODE_UP# #NO_LOCK_HANDLE_CODE_DN# </NO_LOCK_INPUTS_HANDLING> </Parameters> <Parameters Type=“Default”> <IM_DRAG_ADDITIONAL_EVENT_HANDLING> (M:InputType) 1 == if{ #LOCKABLE_INPUTS_HANDLING# } els{ #NO_LOCK_INPUTS_HANDLING# } </IM_DRAG_ADDITIONAL_EVENT_HANDLING> </Parameters> <Parameters Type=“Override”> <Condition Valid=“USE_PAD_DRAG_IM_LOCK”> <True> <CHECK_AND_RESET_DRAG_LOCK> (O:_ResetDragTime) (E:SIMULATION TIME, second) < if{ 0 (>O:_IsLimited) } (E:SIMULATION TIME, second) @DragLockResetTimer + (>O:_ResetDragTime) </CHECK_AND_RESET_DRAG_LOCK> <CHECK_IS_DRAG_LOCKED>(O:_IsLimited)</CHECK_IS_DRAG_LOCKED> <SET_DRAG_LOCK>1 (>O:_IsLimited)</SET_DRAG_LOCK> <UNSET_DRAG_LOCK>0 (>O:_IsLimited)</UNSET_DRAG_LOCK> </True> <False> <CHECK_AND_RESET_DRAG_LOCK/> <CHECK_IS_DRAG_LOCKED>0</CHECK_IS_DRAG_LOCKED> <SET_DRAG_LOCK/> <UNSET_DRAG_LOCK/> </False> </Condition> <Condition Valid=“INVERT_WHEEL_INTERACTION”> <True> <Switch Param=“SWITCH_DIRECTION”> <Case Value=“Vertical”> <FLAG_POS_WHEEL_UP>2</FLAG_POS_WHEEL_UP> <FLAG_POS_WHEEL_DN>1</FLAG_POS_WHEEL_DN> </Case> <Case Value=“Horizontal”> <FLAG_POS_WHEEL_UP>1</FLAG_POS_WHEEL_UP> <FLAG_POS_WHEEL_DN>2</FLAG_POS_WHEEL_DN> </Case> </Switch> </True> <False> <Switch Param=“SWITCH_DIRECTION”> <Case Value=“Vertical”> <FLAG_POS_WHEEL_UP>1</FLAG_POS_WHEEL_UP> <FLAG_POS_WHEEL_DN>2</FLAG_POS_WHEEL_DN> </Case> <Case Value=“Horizontal”> <FLAG_POS_WHEEL_UP>2</FLAG_POS_WHEEL_UP> <FLAG_POS_WHEEL_DN>1</FLAG_POS_WHEEL_DN> </Case> </Switch> </False> </Condition> <Condition Valid=“INVERT_DRAG_POSITIVE_CONDITION”> <True> <DRAG_IS_POSITIVE_CONDITION><=</DRAG_IS_POSITIVE_CONDITION> </True> <False> <DRAG_IS_POSITIVE_CONDITION>></DRAG_IS_POSITIVE_CONDITION> </False> </Condition> </Parameters> <Parameters Type=“Override”> <Condition Valid=“USE_TRAJECTORY_DRAG_MODE”> <True> <DRAG_CODE_VERTICAL> (M:DragPercent) #NUM_STATES# * flr sp0 l0 (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) < if{ g1 } els{ l0 (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) > if{ g2 } } </DRAG_CODE_VERTICAL> <DRAG_CODE_HORIZONTAL> (M:DragPercent) #NUM_STATES# * flr sp0 l0 (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) < if{ g1 } els{ l0 (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) > if{ g2 } } </DRAG_CODE_HORIZONTAL> </True> <False> <DRAG_CODE_VERTICAL> #CHECK_AND_RESET_DRAG_LOCK# #CHECK_IS_DRAG_LOCKED# if{ (M:RelativeY) (>O:OldMouseY) } els{ (O:OldMouseY) (M:RelativeY) - abs #THRESHOLD# > if{ #SET_DRAG_LOCK# (O:OldMouseY) sp0 (M:RelativeY) (>O:OldMouseY) (M:RelativeY) l0 #DRAG_IS_POSITIVE_CONDITION# if{ g1 } els{ g2 } } } </DRAG_CODE_VERTICAL> <DRAG_CODE_HORIZONTAL> #CHECK_AND_RESET_DRAG_LOCK# #CHECK_IS_DRAG_LOCKED# if{ (M:RelativeX) (>O:OldMouseX) } els{ (O:OldMouseX) (M:RelativeX) - abs #THRESHOLD# > if{ #SET_DRAG_LOCK# (O:OldMouseX) sp0 (M:RelativeX) (>O:OldMouseX) (M:RelativeX) l0 #DRAG_IS_POSITIVE_CONDITION# if{ g2 } els{ g1 } } } </DRAG_CODE_HORIZONTAL> </False> </Condition> </Parameters> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_2”> <Condition Check=“IS_LOOPING”> <True> <ANIMCURSOR_MIN>-1</ANIMCURSOR_MIN> <ANIMCURSOR_MAX>-1</ANIMCURSOR_MAX> <CODE_UP> #CODE_UP# els{ (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) 0 == if{ #CODE_POS_MAX_VERIF# if{ #POS_MAX# (>#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CODE_POS_MAX# #ON_STATE_CHANGED_EXTERNAL_CODE# } } } </CODE_UP> <CODE_DOWN> (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #POS_MAX# == if{ #CODE_POS_0_VERIF# if{ 0 (>#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CODE_POS_0# #ON_STATE_CHANGED_EXTERNAL_CODE# } } els{ #CODE_DOWN# } </CODE_DOWN> </True> </Condition> <Switch Param=“SWITCH_DIRECTION”> <Case Value=“Vertical”> <INPUT_CODE_IM_DEFAULT> (M:Event) ‘WheelUp’ scmi 0 == if{ 1 (>O:GoToRelease) g1 } els{ (M:Event) ‘WheelDown’ scmi 0 == if{ 1 (>O:GoToRelease) g2 } els{ (M:Event) ‘LeftSingle’ scmi 0 == if{ #CENTER_HANDLING_CODE_START# #LEFT_DOWN_CODE# #CENTER_HANDLING_CODE_END# (M:RelativeY) 0 > if{ g1 } els{ g2 } } els{ (M:Event) ‘LeftRelease’ scmi 0 == if{ #LEFT_UP_CODE# g3 } } } } quit </INPUT_CODE_IM_DEFAULT> <INPUT_CODE_IM_DRAG> (M:Event) ‘Lock’ scmi 0 == if{ (M:RelativeY) (>O:OldMouseY) #LEFT_DOWN_CODE# #UNSET_DRAG_LOCK# } els{ (M:Event) ‘WheelUp’ scmi 0 == if{ 1 sp1 g#FLAG_POS_WHEEL_UP# } els{ (M:Event) ‘WheelDown’ scmi 0 == if{ 1 sp1 g#FLAG_POS_WHEEL_DN# } els{ (M:Event) ‘LeftDrag’ scmi 0 == if{ #DRAG_CODE_VERTICAL# } els{ (M:Event) ‘Unlock’ scmi 0 == if{ #LEFT_UP_CODE# g3 } } } } } quit </INPUT_CODE_IM_DRAG> </Case> <Case Value=“Horizontal”> <INPUT_CODE_IM_DEFAULT> (M:Event) ‘WheelUp’ scmi 0 == if{ 1 (>O:GoToRelease) g2 } els{ (M:Event) ‘WheelDown’ scmi 0 == if{ 1 (>O:GoToRelease) g1 } els{ (M:Event) ‘LeftSingle’ scmi 0 == if{ #CENTER_HANDLING_CODE_START# #LEFT_DOWN_CODE# #CENTER_HANDLING_CODE_END# (M:RelativeX) 0 > if{ g2 } els{ g1 } } els{ (M:Event) ‘LeftRelease’ scmi 0 == if{ #LEFT_UP_CODE# g3 } } } } quit </INPUT_CODE_IM_DEFAULT> <INPUT_CODE_IM_DRAG> (M:Event) ‘Lock’ scmi 0 == if{ (M:RelativeX) (>O:OldMouseX) #LEFT_DOWN_CODE# #UNSET_DRAG_LOCK# } els{ (M:Event) ‘WheelUp’ scmi 0 == if{ 1 sp1 g#FLAG_POS_WHEEL_UP# } els{ (M:Event) ‘WheelDown’ scmi 0 == if{ 1 sp1 g#FLAG_POS_WHEEL_DN# } els{ (M:Event) ‘LeftDrag’ scmi 0 == if{ #DRAG_CODE_HORIZONTAL# } els{ (M:Event) ‘Unlock’ scmi 0 == if{ #LEFT_UP_CODE# g3 } } } } } quit </INPUT_CODE_IM_DRAG> </Case> </Switch> </UseTemplate> </Template> <!– DO NOT CALL THIS TEMPLATE - Use GT_Interaction_LeftSingle_MultiStates instead –> <Template Name = “ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_2”> <DefaultTemplateParameters> <HELPID/> <TOOLTIPID/> <SWITCH_POSITION_TYPE>O</SWITCH_POSITION_TYPE> <SWITCH_POSITION_VAR>SwitchState</SWITCH_POSITION_VAR> <CODE_POS_0/> <CODE_POS_1/> <!– This code is run when the lever should move to the corresponding position Overriding this allows you to specify if some special condition should block the lever from going to that position i.e. : Crash Lever in TBM930 By default, this does not block anything. –> <CODE_POS_0_VERIF>1</CODE_POS_0_VERIF> <CODE_POS_1_VERIF>1</CODE_POS_1_VERIF> <!– These vars should not be modified outside of generic templates –> <CODE_UP/> <CODE_UP_CLOSING/> <CODE_DOWN/> <CODE_DOWN_CLOSING/> <CODE_RELEASE/> <LEFTARROW/> <RIGHTARROW/> <UPARROW/> <DOWNARROW/> <INPUT_CODE> </INPUT_CODE> <CODE_REPEAT></CODE_REPEAT> <PERCENT_PER_SECONDS>2000</PERCENT_PER_SECONDS> </DefaultTemplateParameters> <OverrideTemplateParameters> <Condition Check=“MOMENTARY_SWITCH”> <CODE_POS_REST_STATE Process=“Param”>CODE_POS_#REST_STATE#</CODE_POS_REST_STATE> </Condition> </OverrideTemplateParameters> <Condition Check=“REPEAT_FREQUENCY”> <Update Frequency="#REPEAT_FREQUENCY#"> #CODE_REPEAT# </Update> </Condition> <Condition Check=“MOMENTARY_SWITCH”> <Update Frequency = “5”> (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) 0 == (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #MOMENTARY_SWITCH_DOWN_INDEX# == or if{ (* On Pad disable IsDown when stick is at center *) (M:InputType) 1 == (M:X) abs #THRESHOLD_INPUT# < (M:Y) abs #THRESHOLD_INPUT# < and and if{ 0 (>#SWITCH_POSITION_TYPE_ISDOWN#:#SWITCH_POSITION_VAR_ISDOWN#) } (#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) 0 > if{ (#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) (E:SIMULATION TIME, seconds) < (#SWITCH_POSITION_TYPE_ISDOWN#:#SWITCH_POSITION_VAR_ISDOWN#) ! and if{ (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) 0 == if{ 1 (>#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CODE_POS_1# } els{ #REST_STATE# (>#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CODE_POS_REST_STATE# } 0 (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) } } els{ (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) 0 == if{ #STATE0_TIMER# 0 > if{ (E:SIMULATION TIME, seconds) #STATE0_TIMER# + (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) } } els{ (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #MOMENTARY_SWITCH_DOWN_INDEX# == if{ #STATE_MAX_TIMER# 0 > if{ (E:SIMULATION TIME, seconds) #STATE_MAX_TIMER# + (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) } } els{ 0 (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) } } } } } </Update> <Condition Check=“MOMENTARY_REPEAT_FREQUENCY”> <True> <Update Frequency="#MOMENTARY_REPEAT_FREQUENCY#" InteractionModel=“All”> (O:XMLVAR_Repeat_StartTime) (E:SIMULATION TIME, seconds) < if{ (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) 0 == if{ #CODE_POS_0# } els{ (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #POS_MAX# == if{ #CODE_POS_MAX# } } } </Update> </True> </Condition> </Condition> <UseTemplate Name=“ASOBO_GT_MouseRect”> <MouseFlags>LeftAll+WheelUp+WheelDown+Lock+Unlock#ADDITIONAL_MOUSEFLAGS#</MouseFlags> <ANIMATION_CODE_SETTER>(#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) 100 *</ANIMATION_CODE_SETTER> <CALLBACKCODE_DEFAULT_IM> (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) (>O:PreviousPos) #INPUT_CODE_IM_DEFAULT# :1 #CODE_UP# #CODE_UP_CLOSING# (O:GoToRelease) if{ g3 } quit :2 #CODE_DOWN# #CODE_DOWN_CLOSING# (O:GoToRelease) if{ g3 } quit :3 0 (>O:GoToRelease) #CODE_RELEASE# quit </CALLBACKCODE_DEFAULT_IM> <CALLBACKCODE_DRAG_IM> (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) (>O:PreviousPos) #IM_DRAG_ADDITIONAL_EVENT_HANDLING# #INPUT_CODE_IM_DRAG# :1 (#DRAG_ANIMATION_TARGET_VARIABLE_TYPE#:#DRAG_ANIMATION_TARGET_VARIABLE_NAME#) (#DRAG_ANIMATION_VARIABLE_TYPE#:#DRAG_ANIMATION_VARIABLE_NAME#) == if{ #CODE_UP# #CODE_UP_CLOSING# } quit :2 (#DRAG_ANIMATION_TARGET_VARIABLE_TYPE#:#DRAG_ANIMATION_TARGET_VARIABLE_NAME#) (#DRAG_ANIMATION_VARIABLE_TYPE#:#DRAG_ANIMATION_VARIABLE_NAME#) == if{ #CODE_DOWN# } quit :3 #CODE_RELEASE# quit </CALLBACKCODE_DRAG_IM> </UseTemplate> </Template> <Template Name = “ASOBO_GT_Interaction_WheelAndContinuousLeft_Vertical”> <DefaultTemplateParameters> <Condition> <Test> <And> <Arg NotEmpty=“CLOCKWISE_CODE_DEFAULT_IM”/> <Arg NotEmpty=“CLOCKWISE_CODE_DRAG_IM”/> </And> </Test> <False> <Condition NotEmpty=“CLOCKWISE_CODE”> <True> <CLOCKWISE_CODE_DEFAULT_IM>#CLOCKWISE_CODE#</CLOCKWISE_CODE_DEFAULT_IM> <CLOCKWISE_CODE_DRAG_IM>#CLOCKWISE_CODE#</CLOCKWISE_CODE_DRAG_IM> </True> <False> <CLOCKWISE_CODE_DEFAULT_IM/> <CLOCKWISE_CODE_DRAG_IM/> </False> </Condition> </False> </Condition> <Condition> <Test> <And> <Arg NotEmpty=“ANTICLOCKWISE_CODE_DEFAULT_IM”/> <Arg NotEmpty=“ANTICLOCKWISE_CODE_DRAG_IM”/> </And> </Test> <False> <Condition NotEmpty=“ANTICLOCKWISE_CODE”> <True> <ANTICLOCKWISE_CODE_DEFAULT_IM>#ANTICLOCKWISE_CODE#</ANTICLOCKWISE_CODE_DEFAULT_IM> <ANTICLOCKWISE_CODE_DRAG_IM>#ANTICLOCKWISE_CODE#</ANTICLOCKWISE_CODE_DRAG_IM> </True> <False> <ANTICLOCKWISE_CODE_DEFAULT_IM/> <ANTICLOCKWISE_CODE_DRAG_IM/> </False> </Condition> </False> </Condition> </DefaultTemplateParameters> <UseTemplate Name=“ASOBO_GT_Interaction_WheelAndContinuousLeft_Base”> <UPARROW>UpArrow</UPARROW> <DOWNARROW>DownArrow</DOWNARROW> <AXIS>Y</AXIS> <!– Inverting Clockwise & anticlockwise for vertical only –> <CLOCKWISE_CODE_DEFAULT_IM>#ANTICLOCKWISE_CODE_DEFAULT_IM#</CLOCKWISE_CODE_DEFAULT_IM> <ANTICLOCKWISE_CODE_DEFAULT_IM>#CLOCKWISE_CODE_DEFAULT_IM#</ANTICLOCKWISE_CODE_DEFAULT_IM> <CLOCKWISE_CODE_DRAG_IM>#ANTICLOCKWISE_CODE_DRAG_IM#</CLOCKWISE_CODE_DRAG_IM> <ANTICLOCKWISE_CODE_DRAG_IM>#CLOCKWISE_CODE_DRAG_IM#</ANTICLOCKWISE_CODE_DRAG_IM> </UseTemplate> </Template> <Template Name = “ASOBO_GT_Interaction_WheelAndContinuousLeft_Horizontal”> <UseTemplate Name=“ASOBO_GT_Interaction_WheelAndContinuousLeft_Base”> <LEFTARROW>TurnLeft</LEFTARROW> <RIGHTARROW>TurnRight</RIGHTARROW> <AXIS>X</AXIS> </UseTemplate> </Template> <Template Name = “ASOBO_GT_Interaction_WheelAndContinuousLeft_Base”> <Parameters Type=“Default”> <HELPID/> <TOOLTIPID/> <UPARROW/> <DOWNARROW/> <LEFTARROW/> <RIGHTARROW/> <CALLBACKCODE/> <UPDATE_FREQUENCY>10</UPDATE_FREQUENCY> <UPDATE_DELAY>0.4</UPDATE_DELAY> <DRAG_SCALAR>0.0001</DRAG_SCALAR> <THRESHOLD_INPUT>0.00025</THRESHOLD_INPUT> <THRESHOLD_MOUSE>0.001</THRESHOLD_MOUSE> <THRESHOLD_VR>0.008</THRESHOLD_VR> <Condition> <Test> <And> <Arg NotEmpty=“CLOCKWISE_CODE_DEFAULT_IM”/> <Arg NotEmpty=“CLOCKWISE_CODE_DRAG_IM”/> </And> </Test> <False> <Condition NotEmpty=“CLOCKWISE_CODE”> <True> <CLOCKWISE_CODE_DEFAULT_IM>#CLOCKWISE_CODE#</CLOCKWISE_CODE_DEFAULT_IM> <CLOCKWISE_CODE_DRAG_IM>#CLOCKWISE_CODE#</CLOCKWISE_CODE_DRAG_IM> </True> <False> <CLOCKWISE_CODE_DEFAULT_IM/> <CLOCKWISE_CODE_DRAG_IM/> </False> </Condition> </False> </Condition> <Condition> <Test> <And> <Arg NotEmpty=“ANTICLOCKWISE_CODE_DEFAULT_IM”/> <Arg NotEmpty=“ANTICLOCKWISE_CODE_DRAG_IM”/> </And> </Test> <False> <Condition NotEmpty=“ANTICLOCKWISE_CODE”> <True> <ANTICLOCKWISE_CODE_DEFAULT_IM>#ANTICLOCKWISE_CODE#</ANTICLOCKWISE_CODE_DEFAULT_IM> <ANTICLOCKWISE_CODE_DRAG_IM>#ANTICLOCKWISE_CODE#</ANTICLOCKWISE_CODE_DRAG_IM> </True> <False> <ANTICLOCKWISE_CODE_DEFAULT_IM/> <ANTICLOCKWISE_CODE_DRAG_IM/> </False> </Condition> </False> </Condition> <UPARROW_DRAG_IM/> <DOWNARROW_DRAG_IM/> <LEFTARROW_DRAG_IM/> <RIGHTARROW_DRAG_IM/> <CURSOR_CENTER_DRAG_IM/> <CURSOR_DRAG_IM>Grab</CURSOR_DRAG_IM> </Parameters> <Parameters Type=“Override”> <THRESHOLD>#THRESHOLD_VR# #THRESHOLD_INPUT# #THRESHOLD_MOUSE# @Case_InputType</THRESHOLD> <Condition Valid=“INVERT_CLOCKWISE_ANTICLOCKWISE”> <Condition> <Test> <And> <Arg NotEmpty=“CLOCKWISE_CODE_DEFAULT_IM”/> <Arg NotEmpty=“ANTICLOCKWISE_CODE_DEFAULT_IM”/> </And> </Test> <True> <CLOCKWISE_CODE_DEFAULT_IM>#ANTICLOCKWISE_CODE_DEFAULT_IM#</CLOCKWISE_CODE_DEFAULT_IM> <ANTICLOCKWISE_CODE_DEFAULT_IM>#CLOCKWISE_CODE_DEFAULT_IM#</ANTICLOCKWISE_CODE_DEFAULT_IM> </True> </Condition> <Condition> <Test> <And> <Arg NotEmpty=“CLOCKWISE_CODE_DRAG_IM”/> <Arg NotEmpty=“ANTICLOCKWISE_CODE_DRAG_IM”/> </And> </Test> <True> <CLOCKWISE_CODE_DRAG_IM>#ANTICLOCKWISE_CODE_DRAG_IM#</CLOCKWISE_CODE_DRAG_IM> <ANTICLOCKWISE_CODE_DRAG_IM>#CLOCKWISE_CODE_DRAG_IM#</ANTICLOCKWISE_CODE_DRAG_IM> </True> </Condition> </Condition> </Parameters> <!– Call code if left click is held, depending on the X axis side –> <Condition> <Test> <And> <Arg NotEmpty=“CLOCKWISE_CODE_DEFAULT_IM”/> <Arg NotEmpty=“ANTICLOCKWISE_CODE_DEFAULT_IM”/> </And> </Test> <True> <Update Frequency = “#UPDATE_FREQUENCY#” InteractionModel=“Default”> (O:XMLVAR_FirstUpdateTime) (E:SIMULATION TIME, seconds) < if{ (O:_MouseDownRelativePos#AXIS#) 0 > if{ #CLOCKWISE_CODE_DEFAULT_IM# } els{ (O:_MouseDownRelativePos#AXIS#) 0 < if{ #ANTICLOCKWISE_CODE_DEFAULT_IM# } } } </Update> </True> </Condition> <UseTemplate Name=“ASOBO_GT_MouseRect”> <MouseFlags>LeftAll+WheelUp+WheelDown+Lock+Unlock</MouseFlags> <CALLBACKCODE_DEFAULT_IM> (M:Event) ‘WheelUp’ scmi 0 == if{ #CLOCKWISE_CODE_DEFAULT_IM# } els{ (M:Event) ‘WheelDown’ scmi 0 == if{ #ANTICLOCKWISE_CODE_DEFAULT_IM# } els{ (M:Event) ‘LeftSingle’ scmi 0 == if{ (M:Relative#AXIS#) (>O:_MouseDownRelativePos#AXIS#) (E:SIMULATION TIME, seconds) #UPDATE_DELAY# + (>O:XMLVAR_FirstUpdateTime) (O:_MouseDownRelativePos#AXIS#) 0 > if{ #CLOCKWISE_CODE_DEFAULT_IM# } els{ (O:_MouseDownRelativePos#AXIS#) 0 < if{ #ANTICLOCKWISE_CODE_DEFAULT_IM# } } } els{ (M:Event) ‘LeftRelease’ scmi 0 == if{ 0 (>O:_MouseDownRelativePos#AXIS#) } } } } </CALLBACKCODE_DEFAULT_IM> <CALLBACKCODE_DRAG_IM> (M:Event) ‘WheelUp’ scmi 0 == if{ #CLOCKWISE_CODE_DRAG_IM# } els{ (M:Event) ‘WheelDown’ scmi 0 == if{ #ANTICLOCKWISE_CODE_DRAG_IM# } els{ (M:Event) ‘Lock’ scmi 0 == if{ (M:Relative#AXIS#) (>O:_Last#AXIS#) } els{ (M:Event) ‘Unlock’ scmi 0 == if{ 0 (>O:_Last#AXIS#) } els{ (M:Event) ‘LeftDrag’ scmi 0 == if{ (M:Relative#AXIS#) (O:_Last#AXIS#) - sp0 #THRESHOLD# (>O:_InputThreshold) l0 abs (O:_InputThreshold) > if{ l0 (O:_InputThreshold) / abs flr sp1 l0 (O:_InputThreshold) % abs sp2 :1 (* for loop *) l1 0 <= if{ g2 } l1 – sp1 l0 0 > if{ #CLOCKWISE_CODE_DRAG_IM# } els{ #ANTICLOCKWISE_CODE_DRAG_IM# } g1 :2 l0 0 > if{ (M:Relative#AXIS#) l2 - (>O:_Last#AXIS#) } els{ (M:Relative#AXIS#) l2 + (>O:_Last#AXIS#) } } } } } } } quit </CALLBACKCODE_DRAG_IM> </UseTemplate> </Template> <Template Name=“ASOBO_GT_Interaction_DraggingYAxis_SimGates_Base”> <DefaultTemplateParameters> <LIMITATIONS_OVERRIDE/> <INCREMENT>0.1</INCREMENT> <Condition Check=“IGNORE_GATES”> <LIMITATIONS_OVERRIDE> #STEPS_NUMBER# (>O:MaxDraggingPosition) 0 (>O:MinDraggingPosition) </LIMITATIONS_OVERRIDE> </Condition> </DefaultTemplateParameters> <UseTemplate Name=“ASOBO_GT_MouseRect”> <MOUSEFLAGS>LeftAll+WheelUp+WheelDown</MOUSEFLAGS> <CALLBACKCODE> (A:#SIMVAR#, #SIMVAR_UNITS#) #SIMVAR_CONVERSION# sp0 (M:Event) ‘LeftSingle’ scmp 0 == if{ (M:RelativeY) (>O:PrevY, Number) l0 near l0 - abs #GATE_TOLERANCE# < sp1 #GATE_DIRECTION# -1 != if{ l1 if{ l0 near 1 + #STEPS_NUMBER# min (>O:MaxDraggingPosition) } els{ l0 ceil #STEPS_NUMBER# min (>O:MaxDraggingPosition) } } els{ #STEPS_NUMBER# (>O:MaxDraggingPosition) } #GATE_DIRECTION# 1 != if{ l1 if{ l0 near 1 - 0 max (>O:MinDraggingPosition) } els{ l0 flr 0 max (>O:MinDraggingPosition) } } els{ 0 (>O:MinDraggingPosition) } } els{ (M:Event) ‘LeftDrag’ scmp 0 == if{ (O:PrevY) (M:RelativeY) - sp2 l2 #DRAG_SPEED# * sp3 #GATE_DIRECTION# -1 != if{ l0 #GATE_TOLERANCE# + flr 1 + (O:MaxDraggingPosition) min (>O:MaxDraggingPosition) } #GATE_DIRECTION# 1 != if{ l0 #GATE_TOLERANCE# - ceil 1 - (O:MinDraggingPosition) max (>O:MinDraggingPosition) } #LIMITATIONS_OVERRIDE# l0 l3 + (O:MaxDraggingPosition) min (O:MinDraggingPosition) max #EVENTID_CONVERSION# (>K:#EVENTID_SET#) (M:RelativeY) (>O:PrevY) } els{ (M:Event) ‘WheelUp’ scmp 0 == if{ l0 #INCREMENT# - #EVENTID_CONVERSION# (>K:#EVENTID_SET#) } els{ (M:Event) ‘WheelDown’ scmp 0 == if{ l0 #INCREMENT# + #EVENTID_CONVERSION# (>K:#EVENTID_SET#) } } } } </CALLBACKCODE> </UseTemplate> </Template> </ModelBehaviors>
Templates
Template list
- ASOBO_GT_Interaction_LeftSingle_Leave_Code_Subtemplate1
- ASOBO_GT_Interaction_LeftSingle_Leave_Code_Subtemplate2
- ASOBO_GT_Interaction_LeftSingle_ParamSetup
- ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_1
- ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_2
- ASOBO_GT_Interaction_LeftSingle_CodeSetup_Recursive
- ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_1
- ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_2
- ASOBO_GT_Interaction_WheelAndContinuousLeft_Vertical
- ASOBO_GT_Interaction_WheelAndContinuousLeft_Horizontal
- ASOBO_GT_Interaction_WheelAndContinuousLeft_Base
- ASOBO_GT_Interaction_DraggingYAxis_SimGates_Base
ASOBO_GT_Interaction_LeftSingle_Leave_Code_Subtemplate1
Definition from XML
<Template Name=“ASOBO_GT_Interaction_LeftSingle_Leave_Code_Subtemplate1”> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_Leave_Code_Subtemplate2”> <Condition Check=“WHEEL_DOWN_CODE”> <MOUSEFLAGS>#MOUSEFLAGS#+WheelDown</MOUSEFLAGS> <MOUSE_WHEEL_INPUTS> els{ (M:Event) 'WheelDown' scmi 0 == if{ #WHEEL_DOWN_CODE# } #MOUSE_WHEEL_INPUTS# }</MOUSE_WHEEL_INPUTS> </Condition> </UseTemplate> </Template>
Templates used:
ASOBO_GT_Interaction_LeftSingle_Leave_Code_Subtemplate2 Condition: Check(WHEEL_DOWN_CODE)
Case: True
Parameters set:
- MOUSEFLAGS (using MOUSEFLAGS)
- MOUSE_WHEEL_INPUTS (using WHEEL_DOWN_CODE, MOUSE_WHEEL_INPUTS)
ASOBO_GT_Interaction_LeftSingle_Leave_Code_Subtemplate2
Definition from XML
<Template Name=“ASOBO_GT_Interaction_LeftSingle_Leave_Code_Subtemplate2”> <DefaultTemplateParameters/> <UseTemplate Name=“ASOBO_GT_MouseRect”> <CALLBACKCODE> (M:Event) 'Lock' scmi 0 == if{ #LEFT_SINGLE_CODE# } els{ (M:Event) 'Unlock' scmi 0 == if{ #LEFT_LEAVE_CODE# } #MOUSE_WHEEL_INPUTS# } </CALLBACKCODE> </UseTemplate> </Template>
Parameters initialization:
- Default
Templates used:
ASOBO_GT_MouseRect Parameters set:
- CALLBACKCODE (using LEFT_SINGLE_CODE, LEFT_LEAVE_CODE, MOUSE_WHEEL_INPUTS)
ASOBO_GT_Interaction_LeftSingle_ParamSetup
Definition from XML
<Template Name=“ASOBO_GT_Interaction_LeftSingle_ParamSetup”> <DefaultTemplateParameters> <ON_STATE_CHANGED_EXTERNAL_CODE/> <Condition Check=“MOMENTARY_SWITCH”> <STATE0_TIMER>0</STATE0_TIMER> <Condition NotEmpty=“STATEMAX_TIMER”> <True> <STATE_MAX_TIMER>#STATEMAX_TIMER#</STATE_MAX_TIMER> </True> <False> <STATE_MAX_TIMER>0</STATE_MAX_TIMER> </False> </Condition> </Condition> <MOMENTARY_REPEAT_DELAY>0.5</MOMENTARY_REPEAT_DELAY> </DefaultTemplateParameters> <OverrideTemplateParameters> <START_STATE Process=“Int”>#NUM_STATES# 1 -</START_STATE> <Condition Check=“MOMENTARY_SWITCH”> <True> <MOMENTARY_UP_0> #STATE0_TIMER# 0 > if{ (E:SIMULATION TIME, seconds) #STATE0_TIMER# + (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) (E:SIMULATION TIME, seconds) #MOMENTARY_REPEAT_DELAY# + (>O:XMLVAR_Repeat_StartTime) } els{ 0 (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) } 0 1 l1 ? (>#SWITCH_POSITION_TYPE_ISDOWN#:#SWITCH_POSITION_VAR_ISDOWN#) </MOMENTARY_UP_0> <CODE_RELEASE>0 (>#SWITCH_POSITION_TYPE_ISDOWN#:#SWITCH_POSITION_VAR_ISDOWN#)</CODE_RELEASE> </True> <False> <MOMENTARY_UP_0/> </False> </Condition> <Condition Valid=“DISABLE_ON_STATE_CHANGED_EXTERNAL_CODE_IN_MR”> <ON_STATE_CHANGED_EXTERNAL_CODE/> </Condition> </OverrideTemplateParameters> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_1”> <CURRENT_ID>#START_STATE#</CURRENT_ID> <POS_MAX>#START_STATE#</POS_MAX> </UseTemplate> </Template>
Parameters initialization:
Default Parameters set:
- ON_STATE_CHANGED_EXTERNAL_CODE
- MOMENTARY_REPEAT_DELAY
Condition: Check(MOMENTARY_SWITCH)
Case: True
Parameters set:
- STATE0_TIMER
Condition: NotEmpty(STATEMAX_TIMER)
Case: True
Parameters set:
- STATE_MAX_TIMER (using STATEMAX_TIMER)
Case: False
Parameters set:
- STATE_MAX_TIMER
Override Parameters set:
- START_STATE (using NUM_STATES)
Condition: Check(MOMENTARY_SWITCH)
Case: True
Parameters set:
- MOMENTARY_UP_0 (using STATE0_TIMER, SWITCH_POSITION_TYPE_TIMER, SWITCH_POSITION_VAR_TIMER, MOMENTARY_REPEAT_DELAY, SWITCH_POSITION_TYPE_ISDOWN, SWITCH_POSITION_VAR_ISDOWN)
- CODE_RELEASE (using SWITCH_POSITION_TYPE_ISDOWN, SWITCH_POSITION_VAR_ISDOWN)
Case: False
Parameters set:
- MOMENTARY_UP_0
Condition: Valid(DISABLE_ON_STATE_CHANGED_EXTERNAL_CODE_IN_MR)
Case: True
Parameters set:
- ON_STATE_CHANGED_EXTERNAL_CODE
Templates used:
ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_1 Parameters set:
- CURRENT_ID (using START_STATE)
- POS_MAX (using START_STATE)
ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_1
Definition from XML
<Template Name=“ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_1”> <DefaultTemplateParameters> <CODE_POS_#CURRENT_ID#_VERIF>1</CODE_POS_#CURRENT_ID#_VERIF> <ANIMTIP_#CURRENT_ID#_ON_PERCENT Process=“Float”>#CURRENT_ID# #POS_MAX# /</ANIMTIP_#CURRENT_ID#_ON_PERCENT> </DefaultTemplateParameters> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_2”> <CURRENT_ENUM_VAL_POS Process=“Param”>ENUM_VAL_POS_#CURRENT_ID#</CURRENT_ENUM_VAL_POS> </UseTemplate> </Template>
Parameters initialization:
Default Parameters set:
- CODE_POS_#CURRENT_ID#_VERIF
- ANIMTIP_#CURRENT_ID#_ON_PERCENT (using CURRENT_ID, POS_MAX)
Templates used:
ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_2 Parameters set:
- CURRENT_ENUM_VAL_POS (using CURRENT_ID)
ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_2
Definition from XML
<Template Name=“ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_2”> <DefaultTemplateParameters> <Condition NotEmpty=“CURRENT_ENUM_VAL_POS”> <True> <CODE_POS_#CURRENT_ID#> (A:#ENUM_SIMVAR#, Enum) #CURRENT_ENUM_VAL_POS# != if{ #CURRENT_ENUM_VAL_POS# (>K:#ENUM_KEY#) } </CODE_POS_#CURRENT_ID#> </True> <False> <CODE_POS_#CURRENT_ID#/> </False> </Condition> </DefaultTemplateParameters> <OverrideTemplateParameters> <CURRENT_ID Process=“Int”>#CURRENT_ID# 1 -</CURRENT_ID> </OverrideTemplateParameters> <Condition> <Test> <GreaterOrEqual> <Number>#CURRENT_ID#</Number> <Number>0</Number> </GreaterOrEqual> </Test> <True> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_ParamSetup_Recursive_1”/> </True> <False> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_CodeSetup_Recursive”> <CURRENT_ID>#START_STATE#</CURRENT_ID> <NEXT_ID Process=“Int”>#START_STATE# 1 -</NEXT_ID> <CODE_POS_MAX Process=“Param”>CODE_POS_#START_STATE#</CODE_POS_MAX> <CODE_POS_MAX_VERIF Process=“Param”>CODE_POS_#START_STATE#_VERIF</CODE_POS_MAX_VERIF> <ELSE_BRACKET_OPENING>els{</ELSE_BRACKET_OPENING> <ELSE_BRACKET_CLOSING>}</ELSE_BRACKET_CLOSING> </UseTemplate> </False> </Condition> </Template>
Parameters initialization:
Default Condition: NotEmpty(CURRENT_ENUM_VAL_POS)
Case: True
Parameters set:
- CODE_POS_#CURRENT_ID# (using ENUM_SIMVAR, CURRENT_ENUM_VAL_POS, ENUM_KEY)
Case: False
Parameters set:
- CODE_POS_#CURRENT_ID#
Override Parameters set:
- CURRENT_ID (using CURRENT_ID)
Condition: Test
Case: True
Templates used:
Case: False
Templates used:
ASOBO_GT_Interaction_LeftSingle_CodeSetup_Recursive Parameters set:
- CURRENT_ID (using START_STATE)
- NEXT_ID (using START_STATE)
- CODE_POS_MAX (using START_STATE)
- CODE_POS_MAX_VERIF (using START_STATE)
- ELSE_BRACKET_OPENING
- ELSE_BRACKET_CLOSING
ASOBO_GT_Interaction_LeftSingle_CodeSetup_Recursive
Definition from XML
<Template Name=“ASOBO_GT_Interaction_LeftSingle_CodeSetup_Recursive”> <DefaultTemplateParameters> <Condition Check=“MOMENTARY_SWITCH”> <True> <Condition Check=“MOMENTARY_SWITCH_DOWN_SET”> <True> <MOMENTARY_UP_#CURRENT_ID#/> </True> <False> <MOMENTARY_SWITCH_DOWN_SET/> <MOMENTARY_UP_#CURRENT_ID#> #STATE_MAX_TIMER# 0 > if{ (E:SIMULATION TIME, seconds) #STATE_MAX_TIMER# + (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) (E:SIMULATION TIME, seconds) #MOMENTARY_REPEAT_DELAY# + (>O:XMLVAR_Repeat_StartTime) } els{ 0 (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) } 0 1 l1 ? (>#SWITCH_POSITION_TYPE_ISDOWN#:#SWITCH_POSITION_VAR_ISDOWN#) </MOMENTARY_UP_#CURRENT_ID#> <MOMENTARY_SWITCH_DOWN_INDEX>#CURRENT_ID#</MOMENTARY_SWITCH_DOWN_INDEX> <REST_STATE>#NEXT_ID#</REST_STATE> <CODE_POS_RETURN Process=“Param”>CODE_POS_#NEXT_ID#</CODE_POS_RETURN> </False> </Condition> </True> <False> <MOMENTARY_UP_#CURRENT_ID#/> </False> </Condition> <THRESHOLD_MOUSE>0.03</THRESHOLD_MOUSE> <THRESHOLD_INPUT>0.05</THRESHOLD_INPUT> </DefaultTemplateParameters> <OverrideTemplateParameters> <CURRENT_POS_VERIF Process=“Param”>CODE_POS_#CURRENT_ID#_VERIF</CURRENT_POS_VERIF> <NEXT_POS_VERIF Process=“Param”>CODE_POS_#NEXT_ID#_VERIF</NEXT_POS_VERIF> <CURRENT_CODE_POS Process=“Param”>CODE_POS_#CURRENT_ID#</CURRENT_CODE_POS> <NEXT_CODE_POS Process=“Param”>CODE_POS_#NEXT_ID#</NEXT_CODE_POS> <CURRENT_MOMENTARY_UP Process=“Param”>MOMENTARY_UP_#CURRENT_ID#</CURRENT_MOMENTARY_UP> <NEXT_MOMENTARY_UP Process=“Param”>MOMENTARY_UP_#NEXT_ID#</NEXT_MOMENTARY_UP> <CURRENT_CODE_REPEAT Process=“Param”>CODE_REPEAT_#CURRENT_ID#</CURRENT_CODE_REPEAT> </OverrideTemplateParameters> <Condition> <Test> <GreaterOrEqual> <Number>#NEXT_ID#</Number> <Number>0</Number> </GreaterOrEqual> </Test> <True> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_CodeSetup_Recursive”> <CODE_UP> #CODE_UP# (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CURRENT_ID# == if{ #NEXT_POS_VERIF# if{ #NEXT_ID# (>#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #NEXT_CODE_POS# #ON_STATE_CHANGED_EXTERNAL_CODE# #NEXT_MOMENTARY_UP# } } #ELSE_BRACKET_OPENING# </CODE_UP> <CODE_UP_CLOSING> #ELSE_BRACKET_CLOSING# #CODE_UP_CLOSING# </CODE_UP_CLOSING> <CODE_DOWN> #ELSE_BRACKET_OPENING# (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #NEXT_ID# == if{ #CURRENT_POS_VERIF# if{ #CURRENT_ID# (>#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CURRENT_CODE_POS# #ON_STATE_CHANGED_EXTERNAL_CODE# #CURRENT_MOMENTARY_UP# } } #CODE_DOWN# #ELSE_BRACKET_CLOSING# </CODE_DOWN> <Condition Check=“NEXT_ID” Match=“1”> <True> <ELSE_BRACKET_OPENING/> <ELSE_BRACKET_CLOSING/> </True> </Condition> <Condition Valid=“CURRENT_CODE_REPEAT”> <CODE_REPEAT> (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CURRENT_ID# == if{ #CURRENT_CODE_REPEAT# } els{ #CODE_REPEAT# } </CODE_REPEAT> </Condition> <CURRENT_ID>#NEXT_ID#</CURRENT_ID> <NEXT_ID Process=“Int”>#NEXT_ID# 1 -</NEXT_ID> </UseTemplate> </True> <False> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_1”> <Condition Valid=“CURRENT_CODE_REPEAT”> <CODE_REPEAT> (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CURRENT_ID# == if{ #CURRENT_CODE_REPEAT# } els{ #CODE_REPEAT# } </CODE_REPEAT> </Condition> </UseTemplate> </False> </Condition> </Template>
Parameters initialization:
Default Parameters set:
- THRESHOLD_MOUSE
- THRESHOLD_INPUT
Condition: Check(MOMENTARY_SWITCH)
Case: True
Condition: Check(MOMENTARY_SWITCH_DOWN_SET)
Case: True
Parameters set:
- MOMENTARY_UP_#CURRENT_ID#
Case: False
Parameters set:
- MOMENTARY_SWITCH_DOWN_SET
- MOMENTARY_UP_#CURRENT_ID# (using STATE_MAX_TIMER, SWITCH_POSITION_TYPE_TIMER, SWITCH_POSITION_VAR_TIMER, MOMENTARY_REPEAT_DELAY, SWITCH_POSITION_TYPE_ISDOWN, SWITCH_POSITION_VAR_ISDOWN)
- MOMENTARY_SWITCH_DOWN_INDEX (using CURRENT_ID)
- REST_STATE (using NEXT_ID)
- CODE_POS_RETURN (using NEXT_ID)
Case: False
Parameters set:
- MOMENTARY_UP_#CURRENT_ID#
Override Parameters set:
- CURRENT_POS_VERIF (using CURRENT_ID)
- NEXT_POS_VERIF (using NEXT_ID)
- CURRENT_CODE_POS (using CURRENT_ID)
- NEXT_CODE_POS (using NEXT_ID)
- CURRENT_MOMENTARY_UP (using CURRENT_ID)
- NEXT_MOMENTARY_UP (using NEXT_ID)
- CURRENT_CODE_REPEAT (using CURRENT_ID)
Condition: Test
Case: True
Templates used:
ASOBO_GT_Interaction_LeftSingle_CodeSetup_Recursive Parameters set:
- CODE_UP (using CODE_UP, SWITCH_POSITION_TYPE, SWITCH_POSITION_VAR, CURRENT_ID, NEXT_POS_VERIF, NEXT_ID, NEXT_CODE_POS, ON_STATE_CHANGED_EXTERNAL_CODE, NEXT_MOMENTARY_UP, ELSE_BRACKET_OPENING)
- CODE_UP_CLOSING (using ELSE_BRACKET_CLOSING, CODE_UP_CLOSING)
- CODE_DOWN (using ELSE_BRACKET_OPENING, SWITCH_POSITION_TYPE, SWITCH_POSITION_VAR, NEXT_ID, CURRENT_POS_VERIF, CURRENT_ID, CURRENT_CODE_POS, ON_STATE_CHANGED_EXTERNAL_CODE, CURRENT_MOMENTARY_UP, CODE_DOWN, ELSE_BRACKET_CLOSING)
- CURRENT_ID (using NEXT_ID)
- NEXT_ID (using NEXT_ID)
Condition: Check(NEXT_ID)
Case: True
Parameters set:
- ELSE_BRACKET_OPENING
- ELSE_BRACKET_CLOSING
Condition: Valid(CURRENT_CODE_REPEAT)
Case: True
Parameters set:
- CODE_REPEAT (using SWITCH_POSITION_TYPE, SWITCH_POSITION_VAR, CURRENT_ID, CURRENT_CODE_REPEAT, CODE_REPEAT)
Case: False
Templates used:
ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_1 Condition: Valid(CURRENT_CODE_REPEAT)
Case: True
Parameters set:
- CODE_REPEAT (using SWITCH_POSITION_TYPE, SWITCH_POSITION_VAR, CURRENT_ID, CURRENT_CODE_REPEAT, CODE_REPEAT)
ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_1
Definition from XML
<Template Name=“ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_1”> <Parameters Type=“Default”> <Condition Check=“SWITCH_DIRECTION” Match=“Vertical”> <UPARROW>UpArrow</UPARROW> <DOWNARROW>DownArrow</DOWNARROW> <DRAG_AXIS>Y</DRAG_AXIS> </Condition> <Condition Check=“SWITCH_DIRECTION” Match=“Horizontal”> <Condition Check=“ARROW_TYPE” Match=“Curved”> <True> <LEFTARROW>TurnLeft</LEFTARROW> <RIGHTARROW>TurnRight</RIGHTARROW> </True> <False> <LEFTARROW>LeftArrow</LEFTARROW> <RIGHTARROW>RightArrow</RIGHTARROW> </False> </Condition> <DRAG_AXIS>X</DRAG_AXIS> </Condition> <LEFT_DOWN_CODE/> <LEFT_UP_CODE/> <ANIMCURSOR_MIN>0</ANIMCURSOR_MIN> <Condition Check=“ANIM_LENGTH”> <True> <ANIMCURSOR_MAX>#ANIM_LENGTH#</ANIMCURSOR_MAX> </True> <False> <ANIMCURSOR_MAX>100</ANIMCURSOR_MAX> </False> </Condition> <USE_PAD_DRAG_IM_LOCK>True</USE_PAD_DRAG_IM_LOCK> </Parameters> <Parameters Type=“Override”> <THRESHOLD_MOUSE>0.001</THRESHOLD_MOUSE> </Parameters> <Parameters Type=“Override”> <THRESHOLD>#THRESHOLD_INPUT# #THRESHOLD_MOUSE# (M:InputType) 1 == ?</THRESHOLD> </Parameters> <Parameters Type=“Default”> <LOCKABLE_EVENT_PRIMARY>LeftSingle</LOCKABLE_EVENT_PRIMARY> <LOCKABLE_EVENT_SECONDARY>RightSingle</LOCKABLE_EVENT_SECONDARY> <NO_LOCK_EVENT_PRIMARY>RightSingle</NO_LOCK_EVENT_PRIMARY> <NO_LOCK_EVENT_SECONDARY>MiddleSingle</NO_LOCK_EVENT_SECONDARY> <LOCKABLE_HANDLE_CODE_UP/> <NO_LOCK_HANDLE_CODE_UP/> <LOCKABLE_HANDLE_CODE_DN/> <NO_LOCK_HANDLE_CODE_DN/> <ADDITIONAL_MOUSEFLAGS/> <CENTER_HANDLING_CODE_START/> <CENTER_HANDLING_CODE_END/> <Condition> <Test> <Or> <Arg NotEmpty=“ON_PRIMARY_EVENT”/> <Arg NotEmpty=“ON_SECONDARY_EVENT”/> </Or> </Test> <True> <CENTER_CURSOR>Hand</CENTER_CURSOR> <CENTER_RADIUS>0.004</CENTER_RADIUS> <DEFINE_CENTER_INTERACTION>True</DEFINE_CENTER_INTERACTION> </True> </Condition> </Parameters> <Parameters Type=“Override”> <Condition NotEmpty=“ON_PRIMARY_EVENT”> <LOCKABLE_HANDLE_CODE_UP>(M:Event) '#LOCKABLE_EVENT_PRIMARY#' scmi 0 == if{ #ON_PRIMARY_EVENT# quit }</LOCKABLE_HANDLE_CODE_UP> <NO_LOCK_HANDLE_CODE_UP>(M:Event) '#NO_LOCK_EVENT_PRIMARY#' scmi 0 == if{ #ON_PRIMARY_EVENT# quit }</NO_LOCK_HANDLE_CODE_UP> <ADDITIONAL_MOUSEFLAGS>+#LOCKABLE_EVENT_PRIMARY#+#NO_LOCK_EVENT_PRIMARY#</ADDITIONAL_MOUSEFLAGS> <CENTER_HANDLING_CODE_END> } els{ #ON_PRIMARY_EVENT# quit } </CENTER_HANDLING_CODE_END> </Condition> <Condition NotEmpty=“ON_SECONDARY_EVENT”> <LOCKABLE_HANDLE_CODE_DN>(M:Event) '#LOCKABLE_EVENT_SECONDARY#' scmi 0 == if{ #ON_SECONDARY_EVENT# quit }</LOCKABLE_HANDLE_CODE_DN> <NO_LOCK_HANDLE_CODE_DN>(M:Event) '#NO_LOCK_EVENT_SECONDARY#' scmi 0 == if{ #ON_SECONDARY_EVENT# quit }</NO_LOCK_HANDLE_CODE_DN> <ADDITIONAL_MOUSEFLAGS>+#LOCKABLE_EVENT_SECONDARY#+#NO_LOCK_EVENT_SECONDARY#</ADDITIONAL_MOUSEFLAGS> <CENTER_HANDLING_CODE_END> } els{ #ON_SECONDARY_EVENT# quit } </CENTER_HANDLING_CODE_END> </Condition> <Condition Valid=“DEFINE_CENTER_INTERACTION”> <True> <CENTER_HANDLING_CODE_START> (M:Relative#DRAG_AXIS#) abs #CENTER_RADIUS# > if{ </CENTER_HANDLING_CODE_START> </True> </Condition> </Parameters> <Parameters Type=“Default”> <LOCKABLE_INPUTS_HANDLING> #LOCKABLE_HANDLE_CODE_UP# #LOCKABLE_HANDLE_CODE_DN# </LOCKABLE_INPUTS_HANDLING> <NO_LOCK_INPUTS_HANDLING> #NO_LOCK_HANDLE_CODE_UP# #NO_LOCK_HANDLE_CODE_DN# </NO_LOCK_INPUTS_HANDLING> </Parameters> <Parameters Type=“Default”> <IM_DRAG_ADDITIONAL_EVENT_HANDLING> (M:InputType) 1 == if{ #LOCKABLE_INPUTS_HANDLING# } els{ #NO_LOCK_INPUTS_HANDLING# } </IM_DRAG_ADDITIONAL_EVENT_HANDLING> </Parameters> <Parameters Type=“Override”> <Condition Valid=“USE_PAD_DRAG_IM_LOCK”> <True> <CHECK_AND_RESET_DRAG_LOCK> (O:_ResetDragTime) (E:SIMULATION TIME, second) < if{ 0 (>O:_IsLimited) } (E:SIMULATION TIME, second) @DragLockResetTimer + (>O:_ResetDragTime) </CHECK_AND_RESET_DRAG_LOCK> <CHECK_IS_DRAG_LOCKED>(O:_IsLimited)</CHECK_IS_DRAG_LOCKED> <SET_DRAG_LOCK>1 (>O:_IsLimited)</SET_DRAG_LOCK> <UNSET_DRAG_LOCK>0 (>O:_IsLimited)</UNSET_DRAG_LOCK> </True> <False> <CHECK_AND_RESET_DRAG_LOCK/> <CHECK_IS_DRAG_LOCKED>0</CHECK_IS_DRAG_LOCKED> <SET_DRAG_LOCK/> <UNSET_DRAG_LOCK/> </False> </Condition> <Condition Valid=“INVERT_WHEEL_INTERACTION”> <True> <Switch Param=“SWITCH_DIRECTION”> <Case Value=“Vertical”> <FLAG_POS_WHEEL_UP>2</FLAG_POS_WHEEL_UP> <FLAG_POS_WHEEL_DN>1</FLAG_POS_WHEEL_DN> </Case> <Case Value=“Horizontal”> <FLAG_POS_WHEEL_UP>1</FLAG_POS_WHEEL_UP> <FLAG_POS_WHEEL_DN>2</FLAG_POS_WHEEL_DN> </Case> </Switch> </True> <False> <Switch Param=“SWITCH_DIRECTION”> <Case Value=“Vertical”> <FLAG_POS_WHEEL_UP>1</FLAG_POS_WHEEL_UP> <FLAG_POS_WHEEL_DN>2</FLAG_POS_WHEEL_DN> </Case> <Case Value=“Horizontal”> <FLAG_POS_WHEEL_UP>2</FLAG_POS_WHEEL_UP> <FLAG_POS_WHEEL_DN>1</FLAG_POS_WHEEL_DN> </Case> </Switch> </False> </Condition> <Condition Valid=“INVERT_DRAG_POSITIVE_CONDITION”> <True> <DRAG_IS_POSITIVE_CONDITION><=</DRAG_IS_POSITIVE_CONDITION> </True> <False> <DRAG_IS_POSITIVE_CONDITION>></DRAG_IS_POSITIVE_CONDITION> </False> </Condition> </Parameters> <Parameters Type=“Override”> <Condition Valid=“USE_TRAJECTORY_DRAG_MODE”> <True> <DRAG_CODE_VERTICAL> (M:DragPercent) #NUM_STATES# * flr sp0 l0 (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) < if{ g1 } els{ l0 (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) > if{ g2 } } </DRAG_CODE_VERTICAL> <DRAG_CODE_HORIZONTAL> (M:DragPercent) #NUM_STATES# * flr sp0 l0 (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) < if{ g1 } els{ l0 (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) > if{ g2 } } </DRAG_CODE_HORIZONTAL> </True> <False> <DRAG_CODE_VERTICAL> #CHECK_AND_RESET_DRAG_LOCK# #CHECK_IS_DRAG_LOCKED# if{ (M:RelativeY) (>O:OldMouseY) } els{ (O:OldMouseY) (M:RelativeY) - abs #THRESHOLD# > if{ #SET_DRAG_LOCK# (O:OldMouseY) sp0 (M:RelativeY) (>O:OldMouseY) (M:RelativeY) l0 #DRAG_IS_POSITIVE_CONDITION# if{ g1 } els{ g2 } } } </DRAG_CODE_VERTICAL> <DRAG_CODE_HORIZONTAL> #CHECK_AND_RESET_DRAG_LOCK# #CHECK_IS_DRAG_LOCKED# if{ (M:RelativeX) (>O:OldMouseX) } els{ (O:OldMouseX) (M:RelativeX) - abs #THRESHOLD# > if{ #SET_DRAG_LOCK# (O:OldMouseX) sp0 (M:RelativeX) (>O:OldMouseX) (M:RelativeX) l0 #DRAG_IS_POSITIVE_CONDITION# if{ g2 } els{ g1 } } } </DRAG_CODE_HORIZONTAL> </False> </Condition> </Parameters> <UseTemplate Name=“ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_2”> <Condition Check=“IS_LOOPING”> <True> <ANIMCURSOR_MIN>-1</ANIMCURSOR_MIN> <ANIMCURSOR_MAX>-1</ANIMCURSOR_MAX> <CODE_UP> #CODE_UP# els{ (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) 0 == if{ #CODE_POS_MAX_VERIF# if{ #POS_MAX# (>#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CODE_POS_MAX# #ON_STATE_CHANGED_EXTERNAL_CODE# } } } </CODE_UP> <CODE_DOWN> (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #POS_MAX# == if{ #CODE_POS_0_VERIF# if{ 0 (>#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CODE_POS_0# #ON_STATE_CHANGED_EXTERNAL_CODE# } } els{ #CODE_DOWN# } </CODE_DOWN> </True> </Condition> <Switch Param=“SWITCH_DIRECTION”> <Case Value=“Vertical”> <INPUT_CODE_IM_DEFAULT> (M:Event) 'WheelUp' scmi 0 == if{ 1 (>O:GoToRelease) g1 } els{ (M:Event) 'WheelDown' scmi 0 == if{ 1 (>O:GoToRelease) g2 } els{ (M:Event) 'LeftSingle' scmi 0 == if{ #CENTER_HANDLING_CODE_START# #LEFT_DOWN_CODE# #CENTER_HANDLING_CODE_END# (M:RelativeY) 0 > if{ g1 } els{ g2 } } els{ (M:Event) 'LeftRelease' scmi 0 == if{ #LEFT_UP_CODE# g3 } } } } quit </INPUT_CODE_IM_DEFAULT> <INPUT_CODE_IM_DRAG> (M:Event) 'Lock' scmi 0 == if{ (M:RelativeY) (>O:OldMouseY) #LEFT_DOWN_CODE# #UNSET_DRAG_LOCK# } els{ (M:Event) 'WheelUp' scmi 0 == if{ 1 sp1 g#FLAG_POS_WHEEL_UP# } els{ (M:Event) 'WheelDown' scmi 0 == if{ 1 sp1 g#FLAG_POS_WHEEL_DN# } els{ (M:Event) 'LeftDrag' scmi 0 == if{ #DRAG_CODE_VERTICAL# } els{ (M:Event) 'Unlock' scmi 0 == if{ #LEFT_UP_CODE# g3 } } } } } quit </INPUT_CODE_IM_DRAG> </Case> <Case Value=“Horizontal”> <INPUT_CODE_IM_DEFAULT> (M:Event) 'WheelUp' scmi 0 == if{ 1 (>O:GoToRelease) g2 } els{ (M:Event) 'WheelDown' scmi 0 == if{ 1 (>O:GoToRelease) g1 } els{ (M:Event) 'LeftSingle' scmi 0 == if{ #CENTER_HANDLING_CODE_START# #LEFT_DOWN_CODE# #CENTER_HANDLING_CODE_END# (M:RelativeX) 0 > if{ g2 } els{ g1 } } els{ (M:Event) 'LeftRelease' scmi 0 == if{ #LEFT_UP_CODE# g3 } } } } quit </INPUT_CODE_IM_DEFAULT> <INPUT_CODE_IM_DRAG> (M:Event) 'Lock' scmi 0 == if{ (M:RelativeX) (>O:OldMouseX) #LEFT_DOWN_CODE# #UNSET_DRAG_LOCK# } els{ (M:Event) 'WheelUp' scmi 0 == if{ 1 sp1 g#FLAG_POS_WHEEL_UP# } els{ (M:Event) 'WheelDown' scmi 0 == if{ 1 sp1 g#FLAG_POS_WHEEL_DN# } els{ (M:Event) 'LeftDrag' scmi 0 == if{ #DRAG_CODE_HORIZONTAL# } els{ (M:Event) 'Unlock' scmi 0 == if{ #LEFT_UP_CODE# g3 } } } } } quit </INPUT_CODE_IM_DRAG> </Case> </Switch> </UseTemplate> </Template>
Parameters initialization:
Default Parameters set:
- LEFT_DOWN_CODE
- LEFT_UP_CODE
- ANIMCURSOR_MIN
- USE_PAD_DRAG_IM_LOCK
Condition: Check(SWITCH_DIRECTION)
Case: True
Parameters set:
- UPARROW
- DOWNARROW
- DRAG_AXIS
Condition: Check(SWITCH_DIRECTION)
Case: True
Parameters set:
- DRAG_AXIS
Condition: Check(ARROW_TYPE)
Case: True
Parameters set:
- LEFTARROW
- RIGHTARROW
Case: False
Parameters set:
- LEFTARROW
- RIGHTARROW
Condition: Check(ANIM_LENGTH)
Case: True
Parameters set:
- ANIMCURSOR_MAX (using ANIM_LENGTH)
Case: False
Parameters set:
- ANIMCURSOR_MAX
Override Parameters set:
- THRESHOLD_MOUSE
Override Parameters set:
- THRESHOLD (using THRESHOLD_INPUT, THRESHOLD_MOUSE)
Default Parameters set:
- LOCKABLE_EVENT_PRIMARY
- LOCKABLE_EVENT_SECONDARY
- NO_LOCK_EVENT_PRIMARY
- NO_LOCK_EVENT_SECONDARY
- LOCKABLE_HANDLE_CODE_UP
- NO_LOCK_HANDLE_CODE_UP
- LOCKABLE_HANDLE_CODE_DN
- NO_LOCK_HANDLE_CODE_DN
- ADDITIONAL_MOUSEFLAGS
- CENTER_HANDLING_CODE_START
- CENTER_HANDLING_CODE_END
Condition: Test(ON_PRIMARY_EVENT, ON_SECONDARY_EVENT)
Case: True
Parameters set:
- CENTER_CURSOR
- CENTER_RADIUS
- DEFINE_CENTER_INTERACTION
Override Condition: NotEmpty(ON_PRIMARY_EVENT)
Case: True
Parameters set:
- LOCKABLE_HANDLE_CODE_UP (using LOCKABLE_EVENT_PRIMARY, ON_PRIMARY_EVENT)
- NO_LOCK_HANDLE_CODE_UP (using NO_LOCK_EVENT_PRIMARY, ON_PRIMARY_EVENT)
- ADDITIONAL_MOUSEFLAGS (using LOCKABLE_EVENT_PRIMARY, NO_LOCK_EVENT_PRIMARY)
- CENTER_HANDLING_CODE_END (using ON_PRIMARY_EVENT)
Condition: NotEmpty(ON_SECONDARY_EVENT)
Case: True
Parameters set:
- LOCKABLE_HANDLE_CODE_DN (using LOCKABLE_EVENT_SECONDARY, ON_SECONDARY_EVENT)
- NO_LOCK_HANDLE_CODE_DN (using NO_LOCK_EVENT_SECONDARY, ON_SECONDARY_EVENT)
- ADDITIONAL_MOUSEFLAGS (using LOCKABLE_EVENT_SECONDARY, NO_LOCK_EVENT_SECONDARY)
- CENTER_HANDLING_CODE_END (using ON_SECONDARY_EVENT)
Condition: Valid(DEFINE_CENTER_INTERACTION)
Case: True
Parameters set:
- CENTER_HANDLING_CODE_START (using DRAG_AXIS, CENTER_RADIUS)
Default Parameters set:
- LOCKABLE_INPUTS_HANDLING (using LOCKABLE_HANDLE_CODE_UP, LOCKABLE_HANDLE_CODE_DN)
- NO_LOCK_INPUTS_HANDLING (using NO_LOCK_HANDLE_CODE_UP, NO_LOCK_HANDLE_CODE_DN)
Default Parameters set:
- IM_DRAG_ADDITIONAL_EVENT_HANDLING (using LOCKABLE_INPUTS_HANDLING, NO_LOCK_INPUTS_HANDLING)
Override Condition: Valid(USE_PAD_DRAG_IM_LOCK)
Case: True
Parameters set:
- CHECK_AND_RESET_DRAG_LOCK
- CHECK_IS_DRAG_LOCKED
- SET_DRAG_LOCK
- UNSET_DRAG_LOCK
Case: False
Parameters set:
- CHECK_AND_RESET_DRAG_LOCK
- CHECK_IS_DRAG_LOCKED
- SET_DRAG_LOCK
- UNSET_DRAG_LOCK
Condition: Valid(INVERT_WHEEL_INTERACTION)
Case: True
Condition: Switch(SWITCH_DIRECTION)
Case: Vertical
Parameters set:
- FLAG_POS_WHEEL_UP
- FLAG_POS_WHEEL_DN
Case: Horizontal
Parameters set:
- FLAG_POS_WHEEL_UP
- FLAG_POS_WHEEL_DN
Case: False
Condition: Switch(SWITCH_DIRECTION)
Case: Vertical
Parameters set:
- FLAG_POS_WHEEL_UP
- FLAG_POS_WHEEL_DN
Case: Horizontal
Parameters set:
- FLAG_POS_WHEEL_UP
- FLAG_POS_WHEEL_DN
Condition: Valid(INVERT_DRAG_POSITIVE_CONDITION)
Case: True
Parameters set:
- DRAG_IS_POSITIVE_CONDITION
Case: False
Parameters set:
- DRAG_IS_POSITIVE_CONDITION
Override Condition: Valid(USE_TRAJECTORY_DRAG_MODE)
Case: True
Parameters set:
- DRAG_CODE_VERTICAL (using NUM_STATES, SWITCH_POSITION_TYPE, SWITCH_POSITION_VAR)
- DRAG_CODE_HORIZONTAL (using NUM_STATES, SWITCH_POSITION_TYPE, SWITCH_POSITION_VAR)
Case: False
Parameters set:
- DRAG_CODE_VERTICAL (using CHECK_AND_RESET_DRAG_LOCK, CHECK_IS_DRAG_LOCKED, THRESHOLD, SET_DRAG_LOCK, DRAG_IS_POSITIVE_CONDITION)
- DRAG_CODE_HORIZONTAL (using CHECK_AND_RESET_DRAG_LOCK, CHECK_IS_DRAG_LOCKED, THRESHOLD, SET_DRAG_LOCK, DRAG_IS_POSITIVE_CONDITION)
Templates used:
ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_2 Condition: Check(IS_LOOPING)
Case: True
Parameters set:
- ANIMCURSOR_MIN
- ANIMCURSOR_MAX
- CODE_UP (using CODE_UP, SWITCH_POSITION_TYPE, SWITCH_POSITION_VAR, CODE_POS_MAX_VERIF, POS_MAX, CODE_POS_MAX, ON_STATE_CHANGED_EXTERNAL_CODE)
- CODE_DOWN (using SWITCH_POSITION_TYPE, SWITCH_POSITION_VAR, POS_MAX, CODE_POS_0_VERIF, CODE_POS_0, ON_STATE_CHANGED_EXTERNAL_CODE, CODE_DOWN)
Condition: Switch(SWITCH_DIRECTION)
Case: Vertical
Parameters set:
- INPUT_CODE_IM_DEFAULT (using CENTER_HANDLING_CODE_START, LEFT_DOWN_CODE, CENTER_HANDLING_CODE_END, LEFT_UP_CODE)
- INPUT_CODE_IM_DRAG (using LEFT_DOWN_CODE, UNSET_DRAG_LOCK, FLAG_POS_WHEEL_UP, FLAG_POS_WHEEL_DN, DRAG_CODE_VERTICAL, LEFT_UP_CODE)
Case: Horizontal
Parameters set:
- INPUT_CODE_IM_DEFAULT (using CENTER_HANDLING_CODE_START, LEFT_DOWN_CODE, CENTER_HANDLING_CODE_END, LEFT_UP_CODE)
- INPUT_CODE_IM_DRAG (using LEFT_DOWN_CODE, UNSET_DRAG_LOCK, FLAG_POS_WHEEL_UP, FLAG_POS_WHEEL_DN, DRAG_CODE_HORIZONTAL, LEFT_UP_CODE)
ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_2
Definition from XML
<Template Name=“ASOBO_GT_Interaction_LeftSingle_MultiStates_Base_2”> <DefaultTemplateParameters> <HELPID/> <TOOLTIPID/> <SWITCH_POSITION_TYPE>O</SWITCH_POSITION_TYPE> <SWITCH_POSITION_VAR>SwitchState</SWITCH_POSITION_VAR> <CODE_POS_0/> <CODE_POS_1/> <CODE_POS_0_VERIF>1</CODE_POS_0_VERIF> <CODE_POS_1_VERIF>1</CODE_POS_1_VERIF> <CODE_UP/> <CODE_UP_CLOSING/> <CODE_DOWN/> <CODE_DOWN_CLOSING/> <CODE_RELEASE/> <LEFTARROW/> <RIGHTARROW/> <UPARROW/> <DOWNARROW/> <INPUT_CODE/> <CODE_REPEAT/> <PERCENT_PER_SECONDS>2000</PERCENT_PER_SECONDS> </DefaultTemplateParameters> <OverrideTemplateParameters> <Condition Check=“MOMENTARY_SWITCH”> <CODE_POS_REST_STATE Process=“Param”>CODE_POS_#REST_STATE#</CODE_POS_REST_STATE> </Condition> </OverrideTemplateParameters> <Condition Check=“REPEAT_FREQUENCY”> <Update Frequency="#REPEAT_FREQUENCY#"> #CODE_REPEAT# </Update> </Condition> <Condition Check=“MOMENTARY_SWITCH”> <Update Frequency=“5”> (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) 0 == (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #MOMENTARY_SWITCH_DOWN_INDEX# == or if{ (* On Pad disable IsDown when stick is at center *) (M:InputType) 1 == (M:X) abs #THRESHOLD_INPUT# < (M:Y) abs #THRESHOLD_INPUT# < and and if{ 0 (>#SWITCH_POSITION_TYPE_ISDOWN#:#SWITCH_POSITION_VAR_ISDOWN#) } (#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) 0 > if{ (#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) (E:SIMULATION TIME, seconds) < (#SWITCH_POSITION_TYPE_ISDOWN#:#SWITCH_POSITION_VAR_ISDOWN#) ! and if{ (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) 0 == if{ 1 (>#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CODE_POS_1# } els{ #REST_STATE# (>#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #CODE_POS_REST_STATE# } 0 (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) } } els{ (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) 0 == if{ #STATE0_TIMER# 0 > if{ (E:SIMULATION TIME, seconds) #STATE0_TIMER# + (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) } } els{ (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #MOMENTARY_SWITCH_DOWN_INDEX# == if{ #STATE_MAX_TIMER# 0 > if{ (E:SIMULATION TIME, seconds) #STATE_MAX_TIMER# + (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) } } els{ 0 (>#SWITCH_POSITION_TYPE_TIMER#:#SWITCH_POSITION_VAR_TIMER#) } } } } } </Update> <Condition Check=“MOMENTARY_REPEAT_FREQUENCY”> <True> <Update Frequency="#MOMENTARY_REPEAT_FREQUENCY#" InteractionModel=“All”> (O:XMLVAR_Repeat_StartTime) (E:SIMULATION TIME, seconds) < if{ (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) 0 == if{ #CODE_POS_0# } els{ (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) #POS_MAX# == if{ #CODE_POS_MAX# } } } </Update> </True> </Condition> </Condition> <UseTemplate Name=“ASOBO_GT_MouseRect”> <MouseFlags>LeftAll+WheelUp+WheelDown+Lock+Unlock#ADDITIONAL_MOUSEFLAGS#</MouseFlags> <ANIMATION_CODE_SETTER>(#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) 100 *</ANIMATION_CODE_SETTER> <CALLBACKCODE_DEFAULT_IM> (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) (>O:PreviousPos) #INPUT_CODE_IM_DEFAULT# :1 #CODE_UP# #CODE_UP_CLOSING# (O:GoToRelease) if{ g3 } quit :2 #CODE_DOWN# #CODE_DOWN_CLOSING# (O:GoToRelease) if{ g3 } quit :3 0 (>O:GoToRelease) #CODE_RELEASE# quit </CALLBACKCODE_DEFAULT_IM> <CALLBACKCODE_DRAG_IM> (#SWITCH_POSITION_TYPE#:#SWITCH_POSITION_VAR#) (>O:PreviousPos) #IM_DRAG_ADDITIONAL_EVENT_HANDLING# #INPUT_CODE_IM_DRAG# :1 (#DRAG_ANIMATION_TARGET_VARIABLE_TYPE#:#DRAG_ANIMATION_TARGET_VARIABLE_NAME#) (#DRAG_ANIMATION_VARIABLE_TYPE#:#DRAG_ANIMATION_VARIABLE_NAME#) == if{ #CODE_UP# #CODE_UP_CLOSING# } quit :2 (#DRAG_ANIMATION_TARGET_VARIABLE_TYPE#:#DRAG_ANIMATION_TARGET_VARIABLE_NAME#) (#DRAG_ANIMATION_VARIABLE_TYPE#:#DRAG_ANIMATION_VARIABLE_NAME#) == if{ #CODE_DOWN# } quit :3 #CODE_RELEASE# quit </CALLBACKCODE_DRAG_IM> </UseTemplate> </Template>
Parameters initialization:
Default Parameters set:
- HELPID
- TOOLTIPID
- SWITCH_POSITION_TYPE
- SWITCH_POSITION_VAR
- CODE_POS_0
- CODE_POS_1
- CODE_POS_0_VERIF
- CODE_POS_1_VERIF
- CODE_UP
- CODE_UP_CLOSING
- CODE_DOWN
- CODE_DOWN_CLOSING
- CODE_RELEASE
- LEFTARROW
- RIGHTARROW
- UPARROW
- DOWNARROW
- INPUT_CODE
- CODE_REPEAT
- PERCENT_PER_SECONDS
Override Condition: Check(MOMENTARY_SWITCH)
Case: True
Parameters set:
- CODE_POS_REST_STATE (using REST_STATE)
Templates used:
ASOBO_GT_MouseRect Parameters set:
- MouseFlags (using ADDITIONAL_MOUSEFLAGS)
- ANIMATION_CODE_SETTER (using SWITCH_POSITION_TYPE, SWITCH_POSITION_VAR)
- CALLBACKCODE_DEFAULT_IM (using SWITCH_POSITION_TYPE, SWITCH_POSITION_VAR, INPUT_CODE_IM_DEFAULT, CODE_UP, CODE_UP_CLOSING, CODE_DOWN, CODE_DOWN_CLOSING, CODE_RELEASE)
- CALLBACKCODE_DRAG_IM (using SWITCH_POSITION_TYPE, SWITCH_POSITION_VAR, IM_DRAG_ADDITIONAL_EVENT_HANDLING, INPUT_CODE_IM_DRAG, DRAG_ANIMATION_TARGET_VARIABLE_TYPE, DRAG_ANIMATION_TARGET_VARIABLE_NAME, DRAG_ANIMATION_VARIABLE_TYPE, DRAG_ANIMATION_VARIABLE_NAME, CODE_UP, CODE_UP_CLOSING, CODE_DOWN, CODE_RELEASE)
Condition: Check(REPEAT_FREQUENCY)
Case: True
Parameters read:
- REPEAT_FREQUENCY
- CODE_REPEAT
Condition: Check(MOMENTARY_SWITCH)
Case: True
Parameters read:
- SWITCH_POSITION_TYPE
- SWITCH_POSITION_VAR
- MOMENTARY_SWITCH_DOWN_INDEX
- THRESHOLD_INPUT
- SWITCH_POSITION_TYPE_ISDOWN
- SWITCH_POSITION_VAR_ISDOWN
- SWITCH_POSITION_TYPE_TIMER
- SWITCH_POSITION_VAR_TIMER
- CODE_POS_1
- REST_STATE
- CODE_POS_REST_STATE
- STATE0_TIMER
- STATE_MAX_TIMER
Condition: Check(MOMENTARY_REPEAT_FREQUENCY)
Case: True
Parameters read:
- MOMENTARY_REPEAT_FREQUENCY
- SWITCH_POSITION_TYPE
- SWITCH_POSITION_VAR
- CODE_POS_0
- POS_MAX
- CODE_POS_MAX
ASOBO_GT_Interaction_WheelAndContinuousLeft_Vertical
Definition from XML
<Template Name=“ASOBO_GT_Interaction_WheelAndContinuousLeft_Vertical”> <DefaultTemplateParameters> <Condition> <Test> <And> <Arg NotEmpty=“CLOCKWISE_CODE_DEFAULT_IM”/> <Arg NotEmpty=“CLOCKWISE_CODE_DRAG_IM”/> </And> </Test> <False> <Condition NotEmpty=“CLOCKWISE_CODE”> <True> <CLOCKWISE_CODE_DEFAULT_IM>#CLOCKWISE_CODE#</CLOCKWISE_CODE_DEFAULT_IM> <CLOCKWISE_CODE_DRAG_IM>#CLOCKWISE_CODE#</CLOCKWISE_CODE_DRAG_IM> </True> <False> <CLOCKWISE_CODE_DEFAULT_IM/> <CLOCKWISE_CODE_DRAG_IM/> </False> </Condition> </False> </Condition> <Condition> <Test> <And> <Arg NotEmpty=“ANTICLOCKWISE_CODE_DEFAULT_IM”/> <Arg NotEmpty=“ANTICLOCKWISE_CODE_DRAG_IM”/> </And> </Test> <False> <Condition NotEmpty=“ANTICLOCKWISE_CODE”> <True> <ANTICLOCKWISE_CODE_DEFAULT_IM>#ANTICLOCKWISE_CODE#</ANTICLOCKWISE_CODE_DEFAULT_IM> <ANTICLOCKWISE_CODE_DRAG_IM>#ANTICLOCKWISE_CODE#</ANTICLOCKWISE_CODE_DRAG_IM> </True> <False> <ANTICLOCKWISE_CODE_DEFAULT_IM/> <ANTICLOCKWISE_CODE_DRAG_IM/> </False> </Condition> </False> </Condition> </DefaultTemplateParameters> <UseTemplate Name=“ASOBO_GT_Interaction_WheelAndContinuousLeft_Base”> <UPARROW>UpArrow</UPARROW> <DOWNARROW>DownArrow</DOWNARROW> <AXIS>Y</AXIS> <CLOCKWISE_CODE_DEFAULT_IM>#ANTICLOCKWISE_CODE_DEFAULT_IM#</CLOCKWISE_CODE_DEFAULT_IM> <ANTICLOCKWISE_CODE_DEFAULT_IM>#CLOCKWISE_CODE_DEFAULT_IM#</ANTICLOCKWISE_CODE_DEFAULT_IM> <CLOCKWISE_CODE_DRAG_IM>#ANTICLOCKWISE_CODE_DRAG_IM#</CLOCKWISE_CODE_DRAG_IM> <ANTICLOCKWISE_CODE_DRAG_IM>#CLOCKWISE_CODE_DRAG_IM#</ANTICLOCKWISE_CODE_DRAG_IM> </UseTemplate> </Template>
Parameters initialization:
Default Condition: Test(CLOCKWISE_CODE_DEFAULT_IM, CLOCKWISE_CODE_DRAG_IM)
Case: False
Condition: NotEmpty(CLOCKWISE_CODE)
Case: True
Parameters set:
- CLOCKWISE_CODE_DEFAULT_IM (using CLOCKWISE_CODE)
- CLOCKWISE_CODE_DRAG_IM (using CLOCKWISE_CODE)
Case: False
Parameters set:
- CLOCKWISE_CODE_DEFAULT_IM
- CLOCKWISE_CODE_DRAG_IM
Condition: Test(ANTICLOCKWISE_CODE_DEFAULT_IM, ANTICLOCKWISE_CODE_DRAG_IM)
Case: False
Condition: NotEmpty(ANTICLOCKWISE_CODE)
Case: True
Parameters set:
- ANTICLOCKWISE_CODE_DEFAULT_IM (using ANTICLOCKWISE_CODE)
- ANTICLOCKWISE_CODE_DRAG_IM (using ANTICLOCKWISE_CODE)
Case: False
Parameters set:
- ANTICLOCKWISE_CODE_DEFAULT_IM
- ANTICLOCKWISE_CODE_DRAG_IM
Templates used:
ASOBO_GT_Interaction_WheelAndContinuousLeft_Base Parameters set:
- UPARROW
- DOWNARROW
- AXIS
- CLOCKWISE_CODE_DEFAULT_IM (using ANTICLOCKWISE_CODE_DEFAULT_IM)
- ANTICLOCKWISE_CODE_DEFAULT_IM (using CLOCKWISE_CODE_DEFAULT_IM)
- CLOCKWISE_CODE_DRAG_IM (using ANTICLOCKWISE_CODE_DRAG_IM)
- ANTICLOCKWISE_CODE_DRAG_IM (using CLOCKWISE_CODE_DRAG_IM)
ASOBO_GT_Interaction_WheelAndContinuousLeft_Horizontal
Definition from XML
<Template Name=“ASOBO_GT_Interaction_WheelAndContinuousLeft_Horizontal”> <UseTemplate Name=“ASOBO_GT_Interaction_WheelAndContinuousLeft_Base”> <LEFTARROW>TurnLeft</LEFTARROW> <RIGHTARROW>TurnRight</RIGHTARROW> <AXIS>X</AXIS> </UseTemplate> </Template>
Templates used:
ASOBO_GT_Interaction_WheelAndContinuousLeft_Base Parameters set:
- LEFTARROW
- RIGHTARROW
- AXIS
ASOBO_GT_Interaction_WheelAndContinuousLeft_Base
Definition from XML
<Template Name=“ASOBO_GT_Interaction_WheelAndContinuousLeft_Base”> <Parameters Type=“Default”> <HELPID/> <TOOLTIPID/> <UPARROW/> <DOWNARROW/> <LEFTARROW/> <RIGHTARROW/> <CALLBACKCODE/> <UPDATE_FREQUENCY>10</UPDATE_FREQUENCY> <UPDATE_DELAY>0.4</UPDATE_DELAY> <DRAG_SCALAR>0.0001</DRAG_SCALAR> <THRESHOLD_INPUT>0.00025</THRESHOLD_INPUT> <THRESHOLD_MOUSE>0.001</THRESHOLD_MOUSE> <THRESHOLD_VR>0.008</THRESHOLD_VR> <Condition> <Test> <And> <Arg NotEmpty=“CLOCKWISE_CODE_DEFAULT_IM”/> <Arg NotEmpty=“CLOCKWISE_CODE_DRAG_IM”/> </And> </Test> <False> <Condition NotEmpty=“CLOCKWISE_CODE”> <True> <CLOCKWISE_CODE_DEFAULT_IM>#CLOCKWISE_CODE#</CLOCKWISE_CODE_DEFAULT_IM> <CLOCKWISE_CODE_DRAG_IM>#CLOCKWISE_CODE#</CLOCKWISE_CODE_DRAG_IM> </True> <False> <CLOCKWISE_CODE_DEFAULT_IM/> <CLOCKWISE_CODE_DRAG_IM/> </False> </Condition> </False> </Condition> <Condition> <Test> <And> <Arg NotEmpty=“ANTICLOCKWISE_CODE_DEFAULT_IM”/> <Arg NotEmpty=“ANTICLOCKWISE_CODE_DRAG_IM”/> </And> </Test> <False> <Condition NotEmpty=“ANTICLOCKWISE_CODE”> <True> <ANTICLOCKWISE_CODE_DEFAULT_IM>#ANTICLOCKWISE_CODE#</ANTICLOCKWISE_CODE_DEFAULT_IM> <ANTICLOCKWISE_CODE_DRAG_IM>#ANTICLOCKWISE_CODE#</ANTICLOCKWISE_CODE_DRAG_IM> </True> <False> <ANTICLOCKWISE_CODE_DEFAULT_IM/> <ANTICLOCKWISE_CODE_DRAG_IM/> </False> </Condition> </False> </Condition> <UPARROW_DRAG_IM/> <DOWNARROW_DRAG_IM/> <LEFTARROW_DRAG_IM/> <RIGHTARROW_DRAG_IM/> <CURSOR_CENTER_DRAG_IM/> <CURSOR_DRAG_IM>Grab</CURSOR_DRAG_IM> </Parameters> <Parameters Type=“Override”> <THRESHOLD>#THRESHOLD_VR# #THRESHOLD_INPUT# #THRESHOLD_MOUSE# @Case_InputType</THRESHOLD> <Condition Valid=“INVERT_CLOCKWISE_ANTICLOCKWISE”> <Condition> <Test> <And> <Arg NotEmpty=“CLOCKWISE_CODE_DEFAULT_IM”/> <Arg NotEmpty=“ANTICLOCKWISE_CODE_DEFAULT_IM”/> </And> </Test> <True> <CLOCKWISE_CODE_DEFAULT_IM>#ANTICLOCKWISE_CODE_DEFAULT_IM#</CLOCKWISE_CODE_DEFAULT_IM> <ANTICLOCKWISE_CODE_DEFAULT_IM>#CLOCKWISE_CODE_DEFAULT_IM#</ANTICLOCKWISE_CODE_DEFAULT_IM> </True> </Condition> <Condition> <Test> <And> <Arg NotEmpty=“CLOCKWISE_CODE_DRAG_IM”/> <Arg NotEmpty=“ANTICLOCKWISE_CODE_DRAG_IM”/> </And> </Test> <True> <CLOCKWISE_CODE_DRAG_IM>#ANTICLOCKWISE_CODE_DRAG_IM#</CLOCKWISE_CODE_DRAG_IM> <ANTICLOCKWISE_CODE_DRAG_IM>#CLOCKWISE_CODE_DRAG_IM#</ANTICLOCKWISE_CODE_DRAG_IM> </True> </Condition> </Condition> </Parameters> <Condition> <Test> <And> <Arg NotEmpty=“CLOCKWISE_CODE_DEFAULT_IM”/> <Arg NotEmpty=“ANTICLOCKWISE_CODE_DEFAULT_IM”/> </And> </Test> <True> <Update Frequency="#UPDATE_FREQUENCY#" InteractionModel=“Default”> (O:XMLVAR_FirstUpdateTime) (E:SIMULATION TIME, seconds) < if{ (O:_MouseDownRelativePos#AXIS#) 0 > if{ #CLOCKWISE_CODE_DEFAULT_IM# } els{ (O:_MouseDownRelativePos#AXIS#) 0 < if{ #ANTICLOCKWISE_CODE_DEFAULT_IM# } } } </Update> </True> </Condition> <UseTemplate Name=“ASOBO_GT_MouseRect”> <MouseFlags>LeftAll+WheelUp+WheelDown+Lock+Unlock</MouseFlags> <CALLBACKCODE_DEFAULT_IM> (M:Event) 'WheelUp' scmi 0 == if{ #CLOCKWISE_CODE_DEFAULT_IM# } els{ (M:Event) 'WheelDown' scmi 0 == if{ #ANTICLOCKWISE_CODE_DEFAULT_IM# } els{ (M:Event) 'LeftSingle' scmi 0 == if{ (M:Relative#AXIS#) (>O:_MouseDownRelativePos#AXIS#) (E:SIMULATION TIME, seconds) #UPDATE_DELAY# + (>O:XMLVAR_FirstUpdateTime) (O:_MouseDownRelativePos#AXIS#) 0 > if{ #CLOCKWISE_CODE_DEFAULT_IM# } els{ (O:_MouseDownRelativePos#AXIS#) 0 < if{ #ANTICLOCKWISE_CODE_DEFAULT_IM# } } } els{ (M:Event) 'LeftRelease' scmi 0 == if{ 0 (>O:_MouseDownRelativePos#AXIS#) } } } } </CALLBACKCODE_DEFAULT_IM> <CALLBACKCODE_DRAG_IM> (M:Event) 'WheelUp' scmi 0 == if{ #CLOCKWISE_CODE_DRAG_IM# } els{ (M:Event) 'WheelDown' scmi 0 == if{ #ANTICLOCKWISE_CODE_DRAG_IM# } els{ (M:Event) 'Lock' scmi 0 == if{ (M:Relative#AXIS#) (>O:_Last#AXIS#) } els{ (M:Event) 'Unlock' scmi 0 == if{ 0 (>O:_Last#AXIS#) } els{ (M:Event) 'LeftDrag' scmi 0 == if{ (M:Relative#AXIS#) (O:_Last#AXIS#) - sp0 #THRESHOLD# (>O:_InputThreshold) l0 abs (O:_InputThreshold) > if{ l0 (O:_InputThreshold) / abs flr sp1 l0 (O:_InputThreshold) % abs sp2 :1 (* for loop *) l1 0 <= if{ g2 } l1 – sp1 l0 0 > if{ #CLOCKWISE_CODE_DRAG_IM# } els{ #ANTICLOCKWISE_CODE_DRAG_IM# } g1 :2 l0 0 > if{ (M:Relative#AXIS#) l2 - (>O:_Last#AXIS#) } els{ (M:Relative#AXIS#) l2 + (>O:_Last#AXIS#) } } } } } } } quit </CALLBACKCODE_DRAG_IM> </UseTemplate> </Template>
Parameters initialization:
Default Parameters set:
- HELPID
- TOOLTIPID
- UPARROW
- DOWNARROW
- LEFTARROW
- RIGHTARROW
- CALLBACKCODE
- UPDATE_FREQUENCY
- UPDATE_DELAY
- DRAG_SCALAR
- THRESHOLD_INPUT
- THRESHOLD_MOUSE
- THRESHOLD_VR
- UPARROW_DRAG_IM
- DOWNARROW_DRAG_IM
- LEFTARROW_DRAG_IM
- RIGHTARROW_DRAG_IM
- CURSOR_CENTER_DRAG_IM
- CURSOR_DRAG_IM
Condition: Test(CLOCKWISE_CODE_DEFAULT_IM, CLOCKWISE_CODE_DRAG_IM)
Case: False
Condition: NotEmpty(CLOCKWISE_CODE)
Case: True
Parameters set:
- CLOCKWISE_CODE_DEFAULT_IM (using CLOCKWISE_CODE)
- CLOCKWISE_CODE_DRAG_IM (using CLOCKWISE_CODE)
Case: False
Parameters set:
- CLOCKWISE_CODE_DEFAULT_IM
- CLOCKWISE_CODE_DRAG_IM
Condition: Test(ANTICLOCKWISE_CODE_DEFAULT_IM, ANTICLOCKWISE_CODE_DRAG_IM)
Case: False
Condition: NotEmpty(ANTICLOCKWISE_CODE)
Case: True
Parameters set:
- ANTICLOCKWISE_CODE_DEFAULT_IM (using ANTICLOCKWISE_CODE)
- ANTICLOCKWISE_CODE_DRAG_IM (using ANTICLOCKWISE_CODE)
Case: False
Parameters set:
- ANTICLOCKWISE_CODE_DEFAULT_IM
- ANTICLOCKWISE_CODE_DRAG_IM
Override Parameters set:
- THRESHOLD (using THRESHOLD_VR, THRESHOLD_INPUT, THRESHOLD_MOUSE)
Condition: Valid(INVERT_CLOCKWISE_ANTICLOCKWISE)
Case: True
Condition: Test(CLOCKWISE_CODE_DEFAULT_IM, ANTICLOCKWISE_CODE_DEFAULT_IM)
Case: True
Parameters set:
- CLOCKWISE_CODE_DEFAULT_IM (using ANTICLOCKWISE_CODE_DEFAULT_IM)
- ANTICLOCKWISE_CODE_DEFAULT_IM (using CLOCKWISE_CODE_DEFAULT_IM)
Condition: Test(CLOCKWISE_CODE_DRAG_IM, ANTICLOCKWISE_CODE_DRAG_IM)
Case: True
Parameters set:
- CLOCKWISE_CODE_DRAG_IM (using ANTICLOCKWISE_CODE_DRAG_IM)
- ANTICLOCKWISE_CODE_DRAG_IM (using CLOCKWISE_CODE_DRAG_IM)
Templates used:
ASOBO_GT_MouseRect Parameters set:
- MouseFlags
- CALLBACKCODE_DEFAULT_IM (using CLOCKWISE_CODE_DEFAULT_IM, ANTICLOCKWISE_CODE_DEFAULT_IM, AXIS, UPDATE_DELAY)
- CALLBACKCODE_DRAG_IM (using CLOCKWISE_CODE_DRAG_IM, ANTICLOCKWISE_CODE_DRAG_IM, AXIS, THRESHOLD)
Condition: Test(CLOCKWISE_CODE_DEFAULT_IM, ANTICLOCKWISE_CODE_DEFAULT_IM)
Case: True
Parameters read:
- UPDATE_FREQUENCY
- AXIS
- CLOCKWISE_CODE_DEFAULT_IM
- ANTICLOCKWISE_CODE_DEFAULT_IM
ASOBO_GT_Interaction_DraggingYAxis_SimGates_Base
Definition from XML
<Template Name=“ASOBO_GT_Interaction_DraggingYAxis_SimGates_Base”> <DefaultTemplateParameters> <LIMITATIONS_OVERRIDE/> <INCREMENT>0.1</INCREMENT> <Condition Check=“IGNORE_GATES”> <LIMITATIONS_OVERRIDE> #STEPS_NUMBER# (>O:MaxDraggingPosition) 0 (>O:MinDraggingPosition) </LIMITATIONS_OVERRIDE> </Condition> </DefaultTemplateParameters> <UseTemplate Name=“ASOBO_GT_MouseRect”> <MOUSEFLAGS>LeftAll+WheelUp+WheelDown</MOUSEFLAGS> <CALLBACKCODE> (A:#SIMVAR#, #SIMVAR_UNITS#) #SIMVAR_CONVERSION# sp0 (M:Event) 'LeftSingle' scmp 0 == if{ (M:RelativeY) (>O:PrevY, Number) l0 near l0 - abs #GATE_TOLERANCE# < sp1 #GATE_DIRECTION# -1 != if{ l1 if{ l0 near 1 + #STEPS_NUMBER# min (>O:MaxDraggingPosition) } els{ l0 ceil #STEPS_NUMBER# min (>O:MaxDraggingPosition) } } els{ #STEPS_NUMBER# (>O:MaxDraggingPosition) } #GATE_DIRECTION# 1 != if{ l1 if{ l0 near 1 - 0 max (>O:MinDraggingPosition) } els{ l0 flr 0 max (>O:MinDraggingPosition) } } els{ 0 (>O:MinDraggingPosition) } } els{ (M:Event) 'LeftDrag' scmp 0 == if{ (O:PrevY) (M:RelativeY) - sp2 l2 #DRAG_SPEED# * sp3 #GATE_DIRECTION# -1 != if{ l0 #GATE_TOLERANCE# + flr 1 + (O:MaxDraggingPosition) min (>O:MaxDraggingPosition) } #GATE_DIRECTION# 1 != if{ l0 #GATE_TOLERANCE# - ceil 1 - (O:MinDraggingPosition) max (>O:MinDraggingPosition) } #LIMITATIONS_OVERRIDE# l0 l3 + (O:MaxDraggingPosition) min (O:MinDraggingPosition) max #EVENTID_CONVERSION# (>K:#EVENTID_SET#) (M:RelativeY) (>O:PrevY) } els{ (M:Event) 'WheelUp' scmp 0 == if{ l0 #INCREMENT# - #EVENTID_CONVERSION# (>K:#EVENTID_SET#) } els{ (M:Event) 'WheelDown' scmp 0 == if{ l0 #INCREMENT# + #EVENTID_CONVERSION# (>K:#EVENTID_SET#) } } } } </CALLBACKCODE> </UseTemplate> </Template>
Parameters initialization:
Default Parameters set:
- LIMITATIONS_OVERRIDE
- INCREMENT
Condition: Check(IGNORE_GATES)
Case: True
Parameters set:
- LIMITATIONS_OVERRIDE (using STEPS_NUMBER)
Templates used:
ASOBO_GT_MouseRect Parameters set:
- MOUSEFLAGS
- CALLBACKCODE (using SIMVAR, SIMVAR_UNITS, SIMVAR_CONVERSION, GATE_TOLERANCE, GATE_DIRECTION, STEPS_NUMBER, DRAG_SPEED, LIMITATIONS_OVERRIDE, EVENTID_CONVERSION, EVENTID_SET, INCREMENT)