/// <summary> /// Concatenates a rotation matrix which rotates a vector around another vector to this matrix. /// </summary> /// <param name="rotationAngle">The angle of rotation in degrees</param> /// <param name="normalVector">The orientation of the axis to rotate around</param> public void Rotate(double rotationAngle, Vector3D normalVector) { if (rotationAngle.IsZero() == false) { double cosValue = System.Math.Cos(rotationAngle); double sineValue = System.Math.Sin(rotationAngle); AxisX = GeomOperation.Rotate(AxisX, normalVector, cosValue, sineValue); AxisY = GeomOperation.Rotate(AxisY, normalVector, cosValue, sineValue); AxisZ = GeomOperation.Rotate(AxisZ, normalVector, cosValue, sineValue); } }
/// <summary> /// Calculate perpendicular vector of parabola. /// </summary> /// <param name="axisAngle">Axis Angle</param> /// <returns>perpendicular vector of parabola</returns> internal Vector3D GetY(double axisAngle) { return(GeomOperation.Rotate(localY, normalizedVector, axisAngle)); }