All Projects → jamboree → niji

jamboree / niji

Licence: other
Generic 2D graphics library for C++14

Programming Languages

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

Projects that are alternatives of or similar to niji

Svg.skia
An SVG rendering library.
Stars: ✭ 122 (+369.23%)
Mutual labels:  geometry, vector-graphics
vec
Vector graphics software to generate HPGL output to drive a plotter
Stars: ✭ 19 (-26.92%)
Mutual labels:  geometry, vector-graphics
ludigraphix.github.io
Documentation for Ludigraphix
Stars: ✭ 21 (-19.23%)
Mutual labels:  geometry, vector-graphics
osu-playground
osu!Playground
Stars: ✭ 21 (-19.23%)
Mutual labels:  geometry
galileo
Scala Math - Numerical (Matlab-like) and Symbolic (Mathematica-like) tool
Stars: ✭ 62 (+138.46%)
Mutual labels:  geometry
spherical-cow
A high volume fraction sphere packing library
Stars: ✭ 24 (-7.69%)
Mutual labels:  geometry
unity-clip-shader
Unity shader and scripts for rendering solid clipped geometry
Stars: ✭ 34 (+30.77%)
Mutual labels:  geometry
jenn3d
A Toy for Visualizing Coxeter Polytopes
Stars: ✭ 39 (+50%)
Mutual labels:  geometry
chemicalx
A PyTorch and TorchDrug based deep learning library for drug pair scoring.
Stars: ✭ 176 (+576.92%)
Mutual labels:  geometry
Impala
Parallel High-Performance Components for Rhino/Grasshopper
Stars: ✭ 32 (+23.08%)
Mutual labels:  geometry
Unity-Int-Vectors
Library that adds Vector2i and Vector3i classes, which are integer counterparts to Vector2 and Vector3.
Stars: ✭ 23 (-11.54%)
Mutual labels:  geometry
TriangleMeshDistance
Header only, single file, simple and efficient C++11 library to compute the signed distance function (SDF) to a triangle mesh
Stars: ✭ 55 (+111.54%)
Mutual labels:  geometry
geojson-bbox
Calculates extent/bbox for a given valid geojson object.
Stars: ✭ 25 (-3.85%)
Mutual labels:  geometry
birkhoff
Euclidean plane and its relatives; a minimalist introduction.
Stars: ✭ 15 (-42.31%)
Mutual labels:  geometry
SharpMath2
2D math / geometry collision library for C#, compatable with monogame.
Stars: ✭ 36 (+38.46%)
Mutual labels:  geometry
PGS
Processing Geometry Suite
Stars: ✭ 39 (+50%)
Mutual labels:  geometry
THREEg.js
three.js addon to create special or extended geometries. The addon generates indexed or non indexed BufferGeometries.
Stars: ✭ 33 (+26.92%)
Mutual labels:  geometry
tfont
tfont is a font library that writes to JSON.
Stars: ✭ 21 (-19.23%)
Mutual labels:  vector-graphics
pymadcad
Simple yet powerful CAD (Computer Aided Design) library, written with Python.
Stars: ✭ 63 (+142.31%)
Mutual labels:  geometry
cidrawing
A vector graphics library for Android
Stars: ✭ 35 (+34.62%)
Mutual labels:  vector-graphics

niji

Generic 2D graphics library for C++14.

Introduction

Niji is a generic library for 2D graphical path manipulation, it provides containers, generators (graphics), adaptors (views) and algorithms for path, in a sense like STL/Boost.Range.

On the other hand, niji doesn't have the ability to render these paths on its own, you can think it as a generic front-end for arbitrary graphic engines which can do the real rendering.

Overview

Niji can be divided into these submodules:

  • core - path fundamentals.
  • container - various path containers, e.g. path, group, etc.
  • graphic - common graphics, e.g. ellipse, round_rect, etc.
  • geometry - adapted geometry path for Boost.Geometry.
  • view - various path adaptors, e.g. inverse, transform, stroke, etc.
  • make - convenient path makers.
  • algorithm - path algorithms, e.g. bounds, length, etc.
  • support - traits, basic geometries, math...
  • sink - predefined backends, e.g. Skia, Direct2D, etc.

Quick Example

The following example shows how to output the path of a dashed ellipse:

using namespace niji;                                                 
                                                                             
render(ellipse<double>({100, 100}, 50) | views::dash<double>({6, 2}), sink);
  • all components reside in namespace niji.
  • render(path, sink) sends the path commands to sink.
  • ellipse<T> is a predefined path generator.
  • views::dash<T>(pattern) returns a path adaptor that generates dash lines.
  • sink is something that handles the path commands.

Documentation

Dependencies

License

Copyright (c) 2014-2018 Jamboree

Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
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].