An open API service indexing awesome lists of open source software.

https://github.com/luizzak/geometria

Swift geometry-related types and algorithms
https://github.com/luizzak/geometria

geometric-algorithms geometry geometry-library polygon-boolean swift

Last synced: about 1 year ago
JSON representation

Swift geometry-related types and algorithms

Awesome Lists containing this project

README

          

# Geometria

[![Swift](https://github.com/LuizZak/Geometria/actions/workflows/swift.yml/badge.svg)](https://github.com/LuizZak/Geometria/actions/workflows/swift.yml)

A collection of definitions and algorithms for working with 2- and 3- dimensional geometries in Swift.

(README.md is still in construction.)

### Type definitions


















N-dimensional


Primitive
Illustration
Geometria type
Remarks



Axis-aligned bounding-box










AABB.swift


Defined as two point vectors describing the minimal and maximal coordinates contained within the AABB.




Ray (unit vector direction)












DirectionalRay.swift


Defined as a starting point vector and a unit vector describing the direction of the ray.

Conceptually it extends to infinity in only one of its two ends (pointed to by its direction unit vector).




N-dimensional Ellipsoid


























Ellipsoid.swift


Defined as a center point vector and an axis vector.




Hyperplane













































Hyperplane.swift


Defined as a point vector on the plane and a unit vector orthogonal to the hyperplane's surface. Defines a split between two half-spaces of the space it is contained within. Is considered a convex, volumetric space that can be intersected against lines and contain points.




Line












Line.swift


Defined as a pair of point vectors on the line.
Conceptually it extends to infinity at both ends.




Line segment












LineSegment.swift


Defined as start and end point vectors on the line.
Conceptually it is contained only within the limits of start <-> end.




N-dimensional capsule





































NCapsule.swift


Defined as a line segment containing two point vectors describing the span of the capsule's body, and a scalar
radius that defines the maximal distance to the line segment points must be to be considered as contained within the capsule.


Specializes as a Stadium in 2D and Capsule in 3D.




Hyperrectangle





















NRectangle.swift


Defined as an origin (top-left in two dimensions) point vector and an N-dimensional size vector.




N-sphere


























NSphere.swift


Defined as a center point vector and a scalar radius.




N-dimensional cube (Hypercube)





















NSquare.swift


Generalized for any dimension.


Defined as an origin point (top-left in two dimensions) and a scalar value that describes the span of the
cube, in each dimension.


Forms a square in 2D, and a cube in 3D.




Plane
































































PointNormalPlane.swift


Defined as a point vector on the plane and a unit vector orthogonal to the plane's surface.




Ray (two-point)












Ray.swift


Defined as a pair of points start and b describing the two points the ray crosses before projecting to infinity.

Similar in definition to a line and line segment, but extends in one direction to infinity.




Triangle








Triangle.swift


Defined as a set of three point vectors.

## GeometriaClipping

An extra library dependency exported called `GeometriaClipping` can be used to generate boolean geometry from input geometries composed of line and circular arc simplexes.

The operations supported are the following:


2-dimensional


Operation
Illustration
GeometriaClipping type



Union





Union2Parametric.swift




Intersection





Intersection2Parametric.swift




Subtraction





Subtraction2Parametric.swift




Exclusive disjunction or Symmetric Difference





ExclusiveDisjunction2Parametric.swift