crater-rs

Crates.iocrater-rs
lib.rscrater-rs
version0.1.4
sourcesrc
created_at2024-10-02 22:55:38.600762
updated_at2024-10-03 00:19:42.766039
descriptionA library of solid modeling primitives and operations
homepage
repositoryhttps://gitlab.com/games1122013/crater.rs
max_upload_size
id1394712
size1,424,013
Clyde Huibregtse (ClydeHuibregtse)

documentation

README

logo

This is Crater, the official mascot of crater.rs!

Quick Start

Use crater.rs as command-line tool

Install

> cargo install crater-rs

Verify installation

> crater --version
... whatever the current version is ...

Run

For a few example input files, see crater_examples.

> crater marching-cubes -i ./crater_examples/blended.yml -o blended.stl

Citations

  1. A. Ricci. "A constructive geometry for computer graphics" (1973)
  2. Vadim Shapiro. "Theory of R-Functions: A Primer" (1988)
  3. P.A. Fayolle and A. Pasko "An Evolutionary Approach to the Extraction of Object Construction Trees from 3D Point Clouds"
  4. A. Pasko, et. al. "Function Representation in Geometric Modeling: Concepts, Implementation and Applications"

Appendix: Maintainer Release Guide

crater.rs uses the wonderful cargo-release for automatic release. There is a release CI/CD job which accomplishes the following:

  1. Configures git to allow for direct push-from-ci (via oath)
  2. Invokes cargo-release. This does the following automatically:
    1. Run ./scripts/pre-release.sh which:
      1. runs some end-to-end tests and generates artifacts in ./artifacts
      2. runs git-cliff (config: cliff.toml) to generate a new changelog
    2. Updates version numbers in all known locations
    3. Publish to crates.io
    4. Commit the new content as a "chore" (and skip ci), and add git tag
    5. Push to the current branch (i.e., main)

As a Maintainer of this repo, when an MR lands, the release job should become available for manual action. Start this job with BUMP_LEVEL=(patch|minor|major) to officially release.

Commit count: 20

cargo fmt