public void RotateInXY(Vector3D rotCenter, double angleDegrees)
{
for (int i = 0; i < this.vertices.Count; i++)
{
Vector3D centeredCurrent = this.vertices[i] - rotCenter;
double angleRads = angleDegrees * Math.PI / 180.0;
Vector3D rotatedCenteredCurrent = new Vector3D(
centeredCurrent.X * Math.Cos(angleRads) - centeredCurrent.Y * Math.Sin(angleRads),
centeredCurrent.X * Math.Sin(angleRads) + centeredCurrent.Y * Math.Cos(angleRads),
centeredCurrent.Z
);
this.vertices[i] = rotatedCenteredCurrent + rotCenter;
}
}
}