internal void RequestElemSelection(string message) { UserInputAction userInputAction = new UserInputAction { requestInputType = UserInputAction.RequestInputType.ElemSelection, message = message }; userInputTypes.Add(userInputAction); }
internal void RequestPoints(string message) { UserInputAction userInputAction = new UserInputAction { requestInputType = UserInputAction.RequestInputType.Points, message = message }; userInputTypes.Add(userInputAction); }
/// <summary> /// 사용자에게 벡터를 입력하도록 요청. 사용자가 키보드로 절대좌표를 입력한 경우는 입력값을 벡터로 반환. 마우스로 첫번째 점을 입력한 경우는 두번째 점을 요청하여 벡터 반환. /// </summary> internal void RequestVectorValue(string message) { UserInputAction userInputAction = new UserInputAction { requestInputType = UserInputAction.RequestInputType.VectorValue, message = message }; userInputTypes.Add(userInputAction); }
internal void RequestPoints(int numPoint) { UserInputAction userInputAction = new UserInputAction { requestInputType = UserInputAction.RequestInputType.Points, message = Properties.Resource.String8, numPointRequested = numPoint, viewType = viewType }; userInputTypes.Add(userInputAction); }
internal void DoAction() { if (actionStep >= userInputTypes.Count) { End(); return; } UserInputAction userInputType = userInputTypes[actionStep]; doingActionInputType = userInputType.requestInputType; switch (userInputType.requestInputType) { case UserInputAction.RequestInputType.Point: break; case UserInputAction.RequestInputType.TwoPoints: break; case UserInputAction.RequestInputType.Points: main.Cmd.viewType = viewType; main.Cmd.RequestInput_Points(userInputType.message, userInputType.numPointRequested); numContinuousPoint = 0; main.Cmd.actionAfterPointWithPoint += Put_ContinuousPoint; main.Cmd.actionAfterPoints += Put; return; case UserInputAction.RequestInputType.ElemSelection: if (main.Fem.Selection.elems.Count == 0) { main.Cmd.SendRequestMessage(userInputType.message); End(); } else { NextAction(); } return; case UserInputAction.RequestInputType.NodeSelection: if (main.Fem.Selection.nodes.Count == 0) { main.Cmd.SendRequestMessage(userInputType.message); End(); } else { NextAction(); } return; case UserInputAction.RequestInputType.Selection: if (main.Fem.Selection.nodes.Count + main.Fem.Selection.elems.Count == 0) { main.Cmd.SendRequestMessage(userInputType.message); End(); } else { NextAction(); } return; case UserInputAction.RequestInputType.Int: main.Cmd.RequestInput_Int(userInputType.message); main.Cmd.actionAfterIntWithInt += Put; return; case UserInputAction.RequestInputType.Ints: main.Cmd.RequestInput_Ints(userInputType.message); main.Cmd.actionAfterIntsWithInts += Put; return; case UserInputAction.RequestInputType.Double: break; case UserInputAction.RequestInputType.Distance: break; case UserInputAction.RequestInputType.Vector: //main.cmd.SendRequestMessage(userInputAction.message); //main.MouseDown += GetDirection; main.Cmd.RequestInput_Vector(userInputType.message); main.Cmd.actionAfterVecWithVec += Put; return; case UserInputAction.RequestInputType.VectorValue: main.Cmd.RequestInput_VectorValue(userInputType.message); main.Cmd.actionAfterVecWithVec += Put; return; default: break; } main.Cmd.ErrorMessage(Properties.Resource.String9); End(); return; } //Command에 요청하거나 액션 수행.