-
-
Notifications
You must be signed in to change notification settings - Fork 31
/
Surface.php
37 lines (33 loc) · 1.39 KB
/
Surface.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
declare(strict_types=1);
namespace Brick\Geo;
use Brick\Geo\Attribute\NoProxy;
use Brick\Geo\Projector\Projector;
/**
* A Surface is a 2-dimensional geometric object.
*
* A simple Surface may consist of a single "patch" that is associated with one "exterior boundary" and 0 or more
* "interior" boundaries. A single such Surface patch in 3-dimensional space is isometric to planar Surfaces, by a
* simple affine rotation matrix that rotates the patch onto the plane z = 0. If the patch is not vertical,
* the projection onto the same plane is an isomorphism, and can be represented as a linear transformation,
* i.e. an affine.
*
* Polyhedral Surfaces are formed by "stitching" together such simple Surfaces patches along their common
* boundaries. Such polyhedral Surfaces in a 3-dimensional space may not be planar as a whole, depending on the
* orientation of their planar normals. If all the patches are in alignment (their normals are parallel),
* then the whole stitched polyhedral surface is co-planar and can be represented as a single patch if it is connected.
*
* The boundary of a simple Surface is the set of closed Curves corresponding to its "exterior" and "interior"
* boundaries.
*/
abstract class Surface extends Geometry
{
/**
* A Surface is a 2-dimensional geometric object.
*/
#[NoProxy]
public function dimension() : int
{
return 2;
}
}