Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Examples

This folder contains a number of sample programs that illustrate the core functionalities of CinoLib. To compile them you must download CinoLib on your machine, open a terminal in its main directory and type

cd examples
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make

Cmake will automatically detect and download the necessary external libraries (e.g. Triangle, Tetgen). You can selectively enable/disable external dependencies directly from the CMakeLists.txt file. At the end of the process, all the executables will be positioned in the newly generated bin folder.

List of Examples

01 - Load and render a triangle mesh

Image

02 - Load and render a quadrilateral mesh

Image

03 - Load and render a general polygonal mesh

Image

04 - Load and render a tetrahedral mesh

Image

05 - Load and render a hexahedral mesh

Image

06 - Load and render a general polyhedral mesh

Image

07 - Load and render a textured object in OBJ format

Image

08 - Do vertex picking for interactive applications

Image

09 - Compute n-harmonic functions on discrete surfaces

Image

10 - Compute n-harmonic functions on discrete volumes

Image

11 - Map a genus zero object to a sphere using conformalized mean curvature flow

Image

12 - Generate triangular and polygonal tessellations of 2D domains

Image

13 - Generate tetrahedral and polyhedral tessellations of 3D domains

Image

14 - Compute geodesic distances using the heat flow method

Image

15 - Compute kernels, incircles and circumcircles of 2D polygons

Image

16 - Use spherical Fibonacci to evenly sample the unit sphere

Image

17 - Extract (and tessellate) ISO contours on surface meshes

Image

18 - Extract (and tessellate) ISO surfaces on tetrahedral meshes

Image

19 - Compute discrete harmonic maps

Image

20 - Compute coarse layouts of quadrilateral meshes

Image

21 - Compute coarse layouts of hexahedral meshes

Image

22 - Remesh, preserving sharp creases and/or color patches

Image

23 - Find, adjust, and export sharp creases from a mesh

Image

24 - Read and visualize a sliced object for 3D printing

Image

25 - Paint on a 3D surface using brushes of different sizes

Image

26 - Export the skin of a volumetric mesh to a surface mesh (command line tool)

27 - Update the skin of a volumetric mesh from a surface mesh (command line tool)

28 - Wrap tetgen to tetrahedralize a PLC in any file format supported by cinolib (command line tool)

29 - Use ambient occlusion for realistic yet more revealing snapshots

Image

30 - Convert all supported meshes from one file format to another (command line tool)

31 - Compute a Least Squares Conformal Map (LSCM)

Image

32 - Compute a homotopy basis using the tree-cotree algorithm

Image

33 - Progressively collapse all internal edges of a triangle mesh

Image

34 - Interpolate an oriented point cloud with Hermite RBF

Image

35 - Perform Poisson disk sampling in any dimension

Image

36 - Compute a canonical polygonal schema

Image

37 - Find (numerically exact) intersections between mesh elements

Image

38 - Construct an acceleration spatial structure for fast queries, with or without exact predicates

Image

39 - Center a mesh in the origin and normalize its bounding box (command line tool)

40 - Compute a UV map with ARAP

Image

41 - Interactively deform a shape with ARAP

Image

42 - Find separate connected components in a composite mesh

Image

43 - Convert a hexhedral mesh into a conforming tetrahedral mesh (command line tool)

44 - Voxelize a volume decribed by a general polygonal mesh

Image

45 - Voxelize an analytic function

Image

46 - Compute the eigenfunctions of the Laplacian matrix

Image

47 - Advancing Front Mapping

Image

48 - Stripe Embedding

Image

Upcoming examples

Maintaining a library alone is very time consuming, and the amount of time I can spend on CinoLib is limited. I do my best to keep the number of examples constantly growing. I am currently working on various code samples that showcase other core functionalities of CinoLib. All (but not only) these topics will be covered:

  • Copy/paste points of view from the GL canvas for accurate visual comparisons and fast snapshot reproduction
  • Customize data structures with user defined mesh/vertex/edge/polygon/polyhedron attributes
  • Navigate application history exploiting Cinolib undo/redo facilities
  • Generate, process and visualize scalar fields
  • Generate, process and visualize vector fields
  • Topology editing operators for tetrahedral meshes
  • Topology editing operators for general polygonal meshes
  • Topology editing operators for general polyhedral meshes
  • Subdivision schemas for hexahedral meshes
  • Solve multi-labeling problems on surfaces and volumes using the GraphCuts wrapper
  • Integral curve computation (and tessellation)
  • Processing of 2D polygons (booleans, thickening), using the Boost Polygon Library wrapper
  • Compute the Medial Axis Transform (MAT) and Scale Axis Transform (SAT) of binary images using Qgarlib