code: public Matrix4f setOrtho(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne) {
          if ((properties & PROPERTY_IDENTITY) == 0)
              MemUtil.INSTANCE.identity(this);
          this._m00(2.0f / (right - left));
          this._m11(2.0f / (top - bottom));
          this._m22((zZeroToOne ? 1.0f : 2.0f) / (zNear - zFar));
          this._m30((right + left) / (left - right));
          this._m31((top + bottom) / (bottom - top));
          this._m32((zZeroToOne ? zNear : (zFar + zNear)) / (zNear - zFar));
          _properties(PROPERTY_AFFINE);
          return this;
      }
docs: Set this matrix to be an orthographic projection transformation for a right-handed coordinate system
  using the given NDC z range.
  <p>
  In order to apply the orthographic projection to an already existing transformation,
  use {@link #ortho(float, float, float, float, float, float, boolean) ortho()}.
  <p>
  Reference: <a href="http://www.songho.ca/opengl/gl_projectionmatrix.html#ortho">http://www.songho.ca</a>
  
  @see #ortho(float, float, float, float, float, float, boolean)
  
  @param left
  the distance from the center to the left frustum edge
  @param right
  the distance from the center to the right frustum edge
  @param bottom
  the distance from the center to the bottom frustum edge
  @param top
  the distance from the center to the top frustum edge
  @param zNear
  near clipping plane distance
  @param zFar
  far clipping plane distance
  @param zZeroToOne
  whether to use Vulkan's and Direct3D's NDC z range of <code>[0..+1]</code> when <code>true</code>
  or whether to use OpenGL's NDC z range of <code>[-1..+1]</code> when <code>false</code>
  @return this