48 lines
1.6 KiB
Markdown
48 lines
1.6 KiB
Markdown
# `hexasphere`
|
|
|
|
Library for subdividing shapes, such as an icosahedron. This provides
|
|
abstractions for almost anything to be possible, however there are many
|
|
predetermined shapes.
|
|
|
|
## In the case of the icosphere:
|
|
|
|
### Geometry:
|
|
This starts off with an icoashedron, and then proceeds to subdivide it.
|
|
The subdivided points form the dual to a [goldberg polyhedron](https://en.wikipedia.org/wiki/Goldberg_polyhedron).
|
|
In essence, each point on this sphere is either a hexagon or a pentagon.
|
|
|
|
### Interpolation:
|
|
Points are interpolated using the [geometric `slerp`](https://en.wikipedia.org/wiki/Slerp#Geometric_Slerp)
|
|
function to preserve their accuracy.
|
|
|
|
---
|
|
|
|
### Features
|
|
|
|
- Base shapes
|
|
- Icosahedron
|
|
- Tetrahedron
|
|
- Triangle
|
|
- Square
|
|
- Cube
|
|
- Interpolation functions
|
|
- Spherical interpolation
|
|
- Linear interpolation
|
|
- Normalized linear interpolation
|
|
- Basic optimizations for `p == 0.5` in interpolation.
|
|
- An adjacency (neighbour) map which can be generated from the indices
|
|
that this library creates.
|
|
|
|
A few more optimizations are coming, along with more options for generation:
|
|
|
|
- Remove nested triangle layers by placing them into their own `Vec`.
|
|
- Allow interpolation functions to have access to state. (This would
|
|
permit certain things such as sampling noise as part of the generation).
|
|
|
|
# License
|
|
Hexasphere is distributed under the terms of either the MIT license, or the Apache License (Version 2.0)
|
|
at the user's choice.
|
|
|
|
See the files named LICENSE-MIT and LICENSE-APACHE2 relative to the root directory of this
|
|
project for more details.
|