/// <summary> /// Takes a list of corner points and rotates them /// </summary> protected virtual List<StroMoHab_Matrix.PointMatrix> RotateCuboidCorners(List<StroMoHab_Matrix.PointMatrix> pointMatrixList, StroMoHab_Matrix.RotationMatrix rotationMatrix) { List<StroMoHab_Matrix.PointMatrix> rotatedPointMatrixList = new List<StroMoHab_Matrix.PointMatrix>(); foreach (StroMoHab_Matrix.PointMatrix pointMatrix in pointMatrixList) { StroMoHab_Matrix.PointMatrix rotatedPointMatrix = StroMoHab_Matrix.Operations.Rotate(pointMatrix, rotationMatrix); rotatedPointMatrixList.Add(rotatedPointMatrix); } return rotatedPointMatrixList; }
/// <summary> /// Rotates the given point by the given rotation matrix and returns a point matrix /// </summary> /// <param name="pointMatrix">The 1x3 point matrix</param> /// <param name="rotationMatrix">The 3 3x3 rotation matricies</param> /// <returns>The new 1x3 point matrix</returns> public static StroMoHab_Matrix.PointMatrix Rotate(StroMoHab_Matrix.PointMatrix pointMatrix, StroMoHab_Matrix.RotationMatrix rotationMatrix) { Matrix newPointMatrix = newPointMatrix = rotationMatrix.rotationMatrixZ * pointMatrix.pointMatrix; newPointMatrix = rotationMatrix.rotationMatrixY * newPointMatrix; newPointMatrix = rotationMatrix.rotationMatrixX * newPointMatrix; StroMoHab_Matrix.PointMatrix returnedPointMatrix = new PointMatrix(); returnedPointMatrix.pointMatrix = newPointMatrix; return returnedPointMatrix; }