• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

brick / geo / 17456208570

04 Sep 2025 07:10AM UTC coverage: 50.432%. Remained the same
17456208570

push

github

BenMorel
Use @extends and @implements instead of @template-* variants

For consistency with the rest of the project.

1867 of 3702 relevant lines covered (50.43%)

1140.21 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/MultiSurface.php
1
<?php
2

3
declare(strict_types=1);
4

5
namespace Brick\Geo;
6

7
use Brick\Geo\Projector\Projector;
8
use Exception;
9
use Override;
10

11
/**
12
 * A MultiSurface is a 2-dimensional GeometryCollection whose elements are Surfaces.
13
 *
14
 * All Surface elements use coordinates from the same coordinate reference system. The geometric interiors of any
15
 * two Surfaces in a MultiSurface may not intersect in the full coordinate system. The boundaries of any two coplanar
16
 * elements in a MultiSurface may intersect, at most, at a finite number of Points. If they were to meet along a curve,
17
 * they could be merged into a single surface.
18
 *
19
 * MultiSurface is an instantiable class in this Standard, and may be used to represent heterogeneous surfaces
20
 * collections of polygons and polyhedral surfaces. It defines a set of methods for its subclasses. The subclass of
21
 * MultiSurface is MultiPolygon corresponding to a collection of Polygons only. Other collections shall use
22
 * MultiSurface.
23
 *
24
 * @template T of Surface
25
 *
26
 * @extends GeometryCollection<T>
27
 */
28
abstract class MultiSurface extends GeometryCollection
29
{
30
    #[Override]
31
    public function project(Projector $projector): MultiSurface
32
    {
33
        throw new Exception(
×
34
            'This exception should never be thrown. ' .
×
35
            'This method is here to ensure that MultiSurface::project() has the correct return type, ' .
×
36
            'and force concrete classes below MultiSurface to return a MultiSurface, too. ' .
×
37
            'It cannot be made abstract because GeometryCollection::project() is not abstract.',
×
38
        );
×
39
    }
40
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc