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

brick / geo / 13753277563

09 Mar 2025 10:43PM UTC coverage: 49.787% (+2.5%) from 47.295%
13753277563

push

github

BenMorel
Prepare for release

1749 of 3513 relevant lines covered (49.79%)

975.53 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
 * @extends GeometryCollection<T>
26
 */
27
abstract class MultiSurface extends GeometryCollection
28
{
29
    #[Override]
30
    public function project(Projector $projector): MultiSurface
31
    {
32
        throw new Exception(
×
33
            'This exception should never be thrown. ' .
×
34
            'This method is here to ensure that MultiSurface::project() has the correct return type, ' .
×
35
            'and force concrete classes below MultiSurface to return a MultiSurface, too. ' .
×
36
            'It cannot be made abstract because GeometryCollection::project() is not abstract.'
×
37
        );
×
38
    }
39
}
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