All Projects → tatsy → tinymesh

tatsy / tinymesh

Licence: MPL-2.0 license
TinyMesh is a light-weight mesh processing library in C/C++.

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to tinymesh

GIBBON
The Geometry and Image-Based Bioengineering add-On for MATLAB
Stars: ✭ 132 (+106.25%)
Mutual labels:  geometry
martinez-src
Mirrored implementations of polygon clipping/CSG/operations algorithm, in C (original, by Martínez et al) and ActionScript3 (port, by Mahir Iqbal)
Stars: ✭ 34 (-46.87%)
Mutual labels:  geometry
ncdfgeom
NetCDF-CF Geometry and Timeseries Tools for R: https://code.usgs.gov/water/ncdfgeom
Stars: ✭ 13 (-79.69%)
Mutual labels:  geometry
topo
A Geometry library for Elixir that calculates spatial relationships between two geometries
Stars: ✭ 125 (+95.31%)
Mutual labels:  geometry
batyr
Microservice for on-demand synchronization of geographical vector datasources to a PostgreSQL/PostGIS database. The service provides an HTTP API for easy integration into other applications.
Stars: ✭ 25 (-60.94%)
Mutual labels:  geometry
dmc
Dual Marching Cubes Implementation in C++
Stars: ✭ 45 (-29.69%)
Mutual labels:  geometry
DynamicalBilliards.jl
An easy-to-use, modular, extendable and absurdly fast Julia package for dynamical billiards in two dimensions.
Stars: ✭ 97 (+51.56%)
Mutual labels:  geometry
hydra-antlia
A collection of functions for Hydra
Stars: ✭ 45 (-29.69%)
Mutual labels:  geometry
EsriRESTScraper
A Python class that scrapes ESRI Rest Endpoints and exports data to a geodatabase
Stars: ✭ 43 (-32.81%)
Mutual labels:  geometry
geofeatures2
A lightweight, high performance geometry library in Swift.
Stars: ✭ 18 (-71.87%)
Mutual labels:  geometry
vec
Vector graphics software to generate HPGL output to drive a plotter
Stars: ✭ 19 (-70.31%)
Mutual labels:  geometry
classy blocks
Python classes for easier creation of OpenFOAM's blockMesh dictionaries.
Stars: ✭ 53 (-17.19%)
Mutual labels:  geometry
vg
Vector-geometry toolbelt for 3D points and vectors
Stars: ✭ 106 (+65.63%)
Mutual labels:  geometry
PointProjector
A simple Cinema 4D plugin that non-destructively projects the points of a spline or polygon object on geometry.
Stars: ✭ 20 (-68.75%)
Mutual labels:  geometry
polliwog
2D and 3D computational geometry library
Stars: ✭ 22 (-65.62%)
Mutual labels:  geometry
geos-cli
A native geometry command line library using libgeos.
Stars: ✭ 20 (-68.75%)
Mutual labels:  geometry
variational-surface-cutting
Codebase for "Variational Surface Cutting" by Sharp & Crane, SIGGRAPH 2018
Stars: ✭ 64 (+0%)
Mutual labels:  geometry
euclid
Vector math, geometry, reference frame, and shapes 2D & 3D
Stars: ✭ 22 (-65.62%)
Mutual labels:  geometry
liang-barsky
Liang-Barsky line-clipping algorithm
Stars: ✭ 32 (-50%)
Mutual labels:  geometry
mikktspace-wasm
MikkTSpace vertex tangent calculation for JavaScript/TypeScript/Node.js, using Web Assembly.
Stars: ✭ 19 (-70.31%)
Mutual labels:  geometry

TinyMesh

Codacy Badge Windows CI MacOS CI Ubuntu CI License: MPL 2.0

TinyMesh is a light-weight mesh processing library in C/C++

Modules

Here is the list of modules and reference papers for that.

Install

The module is tested its compilation using the following compilers.

  • Windows - Visual Studio 2019
  • MacOS - Apple Clang 11.0 (MacOS 10.15)
  • Linux - LLVM Clang 10.0, GNU C Compiler 9.4.0

Library and examples (C++)

You can build a shared library and all the examples by CMake with the following commands.

git clone https://github.com/tatsy/tinymesh.git --depth 1
cd tinymesh
git submodule update --init --recursive
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=ON ..
cmake --build . --config Release --parallel 2

Python module

You can install the Python module using Pip.

pip install git+https://github.com/tatsy/tinymesh.git

You can also use poetry to install from source codes.

git clone https://github.com/tatsy/tinymesh
cd tinymesh
poetry install

Run examples

C++

./build/bin/example_simplify data/models/bunny.ply

Python

python examples/python/fill_and_fair.py data/models/bunny.ply

Gallery

Remeshing

Input Remesh Remesh (bottom part)

Simplification

Input Simplify (50000 faces) Simplify (10000 faces)

Denoising (L0)

Original Noisy Denoise

Notice

The functions provided by this repo are not perfect and their process will fail for problematic meshes, e.g., with non-manifold faces. In such cases, you can fix the problem by repairing the mesh using MeshFix.

License

Mozilla Public License v2 (c) Tatsuya Yatagawa 2020-2021

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].