/// <summary> /// Obraca kamerę względem bieżącej pozycji. /// </summary> /// <param name="axisEnum"> /// Relatywna oś obrotu. /// </param> /// <param name="angle"> /// Kąt obrotu w stopniach. /// </param> /// <param name="space"> /// Relatywna przestrzeń w której znajduje się oś obrotu. /// </param> public void Rotate(Axis axisEnum, float angle, RelativeSpace space = RelativeSpace.Camera) { var radians = (float)Math.PI * angle / 180; Vector3 axis; switch (space) { case RelativeSpace.World: switch (axisEnum) { case Axis.X: axis = Vector3.UnitX; break; case Axis.Y: axis = Vector3.UnitY; break; case Axis.Z: axis = Vector3.UnitZ; break; default: throw new ArgumentOutOfRangeException(nameof(axisEnum), axisEnum, null); } break; case RelativeSpace.Camera: axis = LookAtLH().GetAxis(axisEnum); break; default: throw new ArgumentOutOfRangeException(nameof(space), space, null); } // Zastosowujemy rotację. Rotation = Quaternion.RotationAxis(axis, radians) * Rotation; }
public void AddRampValue(float value, float position, RelativeSpace relative) { this._weasel.Invoke("AddRampValue", new object[] { value, position, relative }); }
public RampValue(float flValue, float flPosition, RelativeSpace relative) { this.m_flValue = flValue; this.m_flPosition = flPosition; this.m_relative = relative; }