 4; j++) {
                            this._drawControlPoint(ctx, patch.points[i][j], null, false, colorScheme);
                        }
                    }
                } else {
                    const tl = new CubicBezierPatch(), tr = new CubicBezierPatch();
                    const bl = new CubicBezierPatch(), br = new CubicBezierPatch();
                    patch.subdivide(tl, bl, tr, br); 
                    this._renderSubdividedPatchesRecursive(ctx, tl, currentLevel + 1, targetMaxLevel, q