hexasphere

Crates.iohexasphere
lib.rshexasphere
version15.0.0
sourcesrc
created_at2020-08-04 03:07:27.830763
updated_at2024-09-23 13:11:05.732567
descriptionA library to evenly tile hexagons on a sphere.
homepage
repositoryhttps://github.com/OptimisticPeach/hexasphere.git
max_upload_size
id272752
size121,892
Patrik Buhring (OptimisticPeach)

documentation

README

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. In essence, each point on this sphere is either a hexagon or a pentagon.

Interpolation:

Points are interpolated using the 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.

Commit count: 131

cargo fmt