All Projects → hadeaninc → libzinc

hadeaninc / libzinc

Licence: other
Zinc is a C++ library for spatial processing.

Programming Languages

C++
36643 projects - #6 most used programming language
Meson
512 projects

Projects that are alternatives of or similar to libzinc

st-hadoop
ST-Hadoop is an open-source MapReduce extension of Hadoop designed specially to analyze your spatio-temporal data efficiently
Stars: ✭ 17 (-56.41%)
Mutual labels:  spatial, spatial-index
geostan
Bayesian spatial analysis
Stars: ✭ 40 (+2.56%)
Mutual labels:  spatial
GeoArrays.jl
Simple geographical raster interaction built on top of ArchGDAL, GDAL and CoordinateTransformations
Stars: ✭ 42 (+7.69%)
Mutual labels:  spatial
de9im
DE-9IM spatial predicate library implemented in Javascript.
Stars: ✭ 22 (-43.59%)
Mutual labels:  spatial
geodaData
Data package for accessing GeoDa datasets using R
Stars: ✭ 15 (-61.54%)
Mutual labels:  spatial
geojson-rbush
GeoJSON implementation of RBush — a high-performance JavaScript R-tree-based 2D spatial index for points and rectangles
Stars: ✭ 60 (+53.85%)
Mutual labels:  spatial-index
Mathnet Spatial
Math.NET Spatial
Stars: ✭ 246 (+530.77%)
Mutual labels:  spatial
Sight
A spatial search μlibrary powered by GameplayKit 👾
Stars: ✭ 27 (-30.77%)
Mutual labels:  spatial
deegree3
Official deegree repository providing geospatial core libraries, data access and advanced OGC web service implementations
Stars: ✭ 118 (+202.56%)
Mutual labels:  spatial
rsgislib
Remote Sensing and GIS Software Library; python module tools for processing spatial data.
Stars: ✭ 103 (+164.1%)
Mutual labels:  spatial
wkb-parser
Well-known binary (WKB) Parser.
Stars: ✭ 69 (+76.92%)
Mutual labels:  spatial
morton-nd
A header-only compile-time Morton encoding / decoding library for N dimensions.
Stars: ✭ 78 (+100%)
Mutual labels:  morton-order
xr-kit-samples-unity
Magicverse SDK sample project
Stars: ✭ 26 (-33.33%)
Mutual labels:  spatial
NetOctree
A dynamic, loose octree implementation written in C# as a .NET Standard 2.1 library
Stars: ✭ 77 (+97.44%)
Mutual labels:  spatial-index
Spatial.Engine
[WIP] Spatial is a cross-platform C++ game engine.
Stars: ✭ 50 (+28.21%)
Mutual labels:  spatial
SpatGRIS
Sound spatialization tool
Stars: ✭ 37 (-5.13%)
Mutual labels:  spatial
m1-web-spatialaudioplayer
Consolidated Mach1 spatial audio player focused on collecting all headtracking input methods and defining best practices
Stars: ✭ 26 (-33.33%)
Mutual labels:  spatial
AOI
An R 📦 to find, process, and describe "areas of interest"
Stars: ✭ 27 (-30.77%)
Mutual labels:  spatial
spatialwidget
Utility package to convert R data into JSON for use in htmlwidget mapping libraries
Stars: ✭ 17 (-56.41%)
Mutual labels:  spatial
agrid
A grid for modelling, analyse, map and visualise multidimensional and multivariate data
Stars: ✭ 16 (-58.97%)
Mutual labels:  spatial

libzinc

Zinc is a C++ library for spatial processing.

  • Zinc provides efficient functions for processing Morton codes, and things built from Morton codes.
    • Currently only Morton curves because they are the easiest to implement and the only space filling curve on which some functions can be implemented, see get_next_z_address
  • Intervals are a start and end point on the Morton curve.
  • Regions are a finite list of intervals, able to represent arbitrary regions in N-dimensional space.
    • Morton regions a.k.a. linear octree
  • Intervals and Regions can store data, so they can be used as map types, not just set types.
  • AABBs (Axis-Aligned Bounding Boxes) can be used for creating regions
  • Regions have all the boolean set operations implemented on them apart from Xor: union, intersection, subtraction
  • They can be efficiently indexed by position
  • This is alpha software, but it may be useful

Read our blog for more detail

TODO

  • The Morton code type is currently limited to a single word size, so the Dimension and BitsPerDimension are currently limited to 2,32 and 3,21.

Usage

For usage examples, see test/zinc-test.cc

Dependencies

  • A C++17 compiler

For testing and installing:

  • Meson sudo apt install meson
  • we use clang++ >= 7 by default for better sanitisation
    • for -fsanitize=implicit-conversion and -fsanitize=integer
    • you can disable them in meson.build

Configuring

CXX=clang++ meson out

Testing

ninja test -C out

Installing

ninja install -C out (needs permissions for /usr/local/include)

Name

Zn comes from Z-order curve in N dimensions, and all the cool kids name their libraries after elements.

See also

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].