/** * @brief Update m_view matrix * */ public void UpdateView() { if (m_targetObject != null) { m_targetPosition.SetValue(m_targetObject.AbsPosition); } m_cameraPosition.SetValue(m_targetPosition + m_cameraDistance * new Vector3((float)(Math.Cos(m_cameraPRY.X) * Math.Sin(m_cameraPRY.Z)), (float)Math.Sin(m_cameraPRY.X), (float)(Math.Cos(m_cameraPRY.X) * Math.Cos(m_cameraPRY.Z)))); m_view = Matrix.CreateLookAt(CameraPosition, m_targetPosition, Vector3.UnitY); }
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))); } }