/** * @brief Create a variable according to type and value * * @param _type the string of the type * @param _value the string value * * @result the variable * */ public static IEffectParameter CreateVariable(string _type, string _value) { IEffectParameter newVariable = null; if (_type == typeof(CatMatrix).ToString()) { newVariable = new CatMatrix(); } else if (_type == typeof(CatFloat).ToString()) { newVariable = new CatFloat(); } else if (_type == typeof(CatTexture).ToString()) { newVariable = new CatTexture(); } else if (_type == typeof(CatVector4).ToString()) { newVariable = new CatVector4(); } else if (_type == typeof(CatColor).ToString()) { newVariable = new CatColor(); } else { Debug.Assert(false, "No matching type found. type=" + _type + " value=" + _value); } if (newVariable != null && _value != null && _value != "") { newVariable.FromString(_value); } return(newVariable); }
private void SetFromValue() { Type type = refValue.GetType(); if (type == typeof(CatVector3)) { CatVector3 value = (CatVector3)refValue; fromValue = value.ParameterClone(); } else if (type == typeof(CatVector2)) { CatVector2 value = (CatVector2)refValue; fromValue = value.ParameterClone(); } else if (type == typeof(CatFloat)) { CatFloat value = (CatFloat)refValue; fromValue = value.ParameterClone(); } else if (type == typeof(CatInteger)) { CatInteger value = (CatInteger)refValue; fromValue = value.ParameterClone(); } }
private void SetFromAndToValue(object ToValue) { Type type = ToValue.GetType(); if (type == typeof(CatVector3)) { CatVector3 value = (CatVector3)ToValue; toValue = value.ParameterClone(); } else if (type == typeof(CatVector2)) { CatVector2 value = (CatVector2)ToValue; toValue = value.ParameterClone(); } else if (type == typeof(CatFloat)) { CatFloat value = (CatFloat)ToValue; toValue = value.ParameterClone(); } else if (type == typeof(CatInteger)) { CatInteger value = (CatInteger)ToValue; toValue = value.ParameterClone(); } }
private void UpdateValue() { Type type = refValue.GetType(); if (type == typeof(CatVector3)) { // delta CatVector3 _fromValue = (CatVector3)fromValue; CatVector3 _toValue = (CatVector3)toValue; CatVector3 delta = _toValue - _fromValue; // set value CatVector3 value = (CatVector3)refValue; float percent = (float)curTick / totalTick; value.SetValue(_fromValue.GetValue() + delta.GetValue() * GetCurveValue(percent)); } else if (type == typeof(CatVector2)) { //delta CatVector2 _fromValue = (CatVector2)fromValue; CatVector2 _toValue = (CatVector2)toValue; CatVector2 delta = _toValue - _fromValue; // set value CatVector2 value = (CatVector2)refValue; float percent = (float)curTick / totalTick; value.SetValue(_fromValue.GetValue() + delta.GetValue() * GetCurveValue(percent)); } else if (type == typeof(CatFloat)) { // delta float _fromValue = ((CatFloat)fromValue); float _toValue = ((CatFloat)toValue); float delta = _toValue - _fromValue; // set value CatFloat value = (CatFloat)refValue; value.SetValue(_fromValue + delta * GetCurveValue((float)curTick / totalTick)); } else if (type == typeof(CatInteger)) { // delta int _fromValue = ((CatInteger)fromValue); int _toValue = ((CatInteger)toValue); int delta = _toValue - _fromValue; // set value CatInteger value = (CatInteger)refValue; value.SetValue(_fromValue + (int)(delta * GetCurveValue((float)curTick / totalTick))); } }