public FreeConditionState(Tool tool, Condition condition, Geometry geometry) : base(tool, condition) { if (condition is FreeCondition) { this.condition = (FreeCondition)condition; } if (geometry is Function) { this.geometry = (Function)geometry; } }
public override Condition GenerateCondition(Geometry geometry, FormInput formInput) { bool valid = ValidateInput(geometry, formInput); if (!valid) { return(null); } FreeCondition condition = new FreeCondition(func.Getfomula(), func.Getindex()); return(condition); }
private bool CheckAddCondition(FunctionCondition condition) { if (condition is FunctionCondition) { if (condition is FreeCondition) { freeCondition = (FreeCondition)condition; return(true); } } return(true); }
public override bool RemoveCondition(Condition condition) { if (!(condition is FreeCondition)) { return(false); } if (condition is FreeCondition) { FreeCondition free = (FreeCondition)condition; geometry.RemoveGeoLine(geometry.Getline()[free.index - 1]); freeCondition = null; return(true); } return(false); }
private void AddState(Condition condition) { Type type = Type.GetType(tool.Name + "ConditionState"); if (type != null) { ConditionState conditionState = (ConditionState)Activator.CreateInstance(type, tool, condition, geometry); //删除函数? conditionState.OnClickDelete = () => geoController.RemoveConditionOperation(condition); conditionState.OnElementHighlight = () => { //获取当前state对应的geoline,让behaviour调用 FreeCondition free = (FreeCondition)condition; Function func = (Function)geometry; geometryBehaviour.HighlightLine(func.Getline()[free.index - 1]); func.Setfomula(func.Getline()[free.index - 1].Fomula()); }; stateController.AddConditionState(conditionState); } }