# Crate iron_shapes

Expand description

This crate provides basic data structures for Euclidean geometry in the plane.

## Modules

Implementation of basic algorithms used for dealing with euclidean geometries.

Abstraction concepts over geometric primitives.

Implement the geometry concepts for the default data types.

An edge is a line segment from a start-point to a end-point.

Edge intersection functions for integer coordinates.

Edge intersection functions for rational coordinates.

A one dimensional interval.

Describe alignment and orientation along coordinate axes.

Math helper functions.

Data structures and functions for 2x2 matrices.

Data structures and functions for 3x3 matrices.

Multi-polygons are a set of multiple polygons.

`Path` is essentially a chain of line segments but with a possibly non-zero width. It can be thought of the shape resulting by a stroke of a thick pen along the line segments.

Points represent a location in the two dimensional plane by an `x` and `y` coordinate.

A point string is a finite sequence of points.

This module contains data types and functions for polygons with holes.

The prelude can be used to conveniently import the commonly used data types.

Data structures and functions for dealing with rectangles which consist of vertical and horizontal edges.

An `REdge` is ‘rectilinear’ edge which is either horizontal or vertical.

Describe repetitions of geometrical objects.

Abstractions for geometrical shapes.

This module contains data types and functions for basic polygons without holes.

This module contains data types and functions for basic rectilinear polygons without holes.

`Text` is used as labels associated with a point.

Common traits for geometrical objects.

Transforms are used to describe the location, rotation, scaling and mirroring of geometric shapes.

Commonly used type definitions and constants.

Two dimensional vectors are a core data type for Euclidean geometry in the plane. `Vector`s consist of an `x` and `y` coordinate value and describe a translation in the plane.

## Macros

Shorthand notation for creating a point.

Shorthand notation for creating a polygon.

Shorthand notation for creating a simple polygon.

Shorthand notation for creating a simple polygon.

Shorthand notation for creating a vector.

## Traits

Trait for types that can be used as areas. In practice this are integers, floats and possible rational numbers.

Trait for types that can be used as coordinates in the euclidean plane. In practice this are integers, floats and possible rational numbers.