Skip to main content

Cinolib: A Generic Programming Header Only C++ Library for Processing Polygonal and Polyhedral Meshes

  • Chapter
  • First Online:
Book cover Transactions on Computational Science XXXIV

Part of the book series: Lecture Notes in Computer Science ((TCOMPUTATSCIE,volume 11820))

Abstract

Inspired by the recent growth of computational methods for general polygonal and polyhedral meshes, this paper introduces Cinolib: a novel header only C++ library for geometry processing. Cinolib differentiates itself from similar toolkits in that it is specifically designed to support a wide set of meshes, such as triangle, quadrilateral and general polygonal surface meshes, as well as tetrahedral, hexahedral and general polyhedral volumetric meshes. At the core of the library there is a hierarchical data structure that factorizes the common properties among the various meshes, allowing tools and algorithms to operate on the widest possible set of meshes with a single implementation, thus avoiding code repetition and facilitating bug fixing and software maintenance. Cinolib is licensed with MIT, it currently counts more than 50K lines of code and, besides the core structure, already comprises a vast set of widespread tools for computer graphics and engineering.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Vaxman, A., et al.: libhedra: geometric processing and optimization of polygonal meshes (2017). https://github.com/avaxman/libhedra

  2. Attene, M.: ImatiSTL - fast and reliable mesh processing with a hybrid kernel. In: Gavrilova, M.L., Tan, C.J.K. (eds.) Transactions on Computational Science XXIX. LNCS, vol. 10220, pp. 86–96. Springer, Heidelberg (2017). https://doi.org/10.1007/978-3-662-54563-8_5

    Chapter  Google Scholar 

  3. Botsch, M., Steinberg, S., Bischoff, S., Kobbelt, L.: OpenMesh-a generic and efficient polygon mesh data structure (2002)

    Google Scholar 

  4. Boykov, Y., Veksler, O., Zabih, R.: Fast approximate energy minimization via graph cuts. IEEE Trans. Pattern Anal. Mach. Intell. 23(11), 1222–1239 (2001)

    Article  Google Scholar 

  5. Cherchi, G., Livesu, M., Scateni, R.: Polycube simplification for coarse layouts of surfaces and volumes. Comput. Graph. Forum 35(5), 11–20 (2016). https://doi.org/10.1111/cgf.12959

    Article  Google Scholar 

  6. Cignoni, P., Callieri, M., Corsini, M., Dellepiane, M., Ganovelli, F., Ranzuglia, G.: MeshLAB: an open-source mesh processing tool. In: Eurographics Italian Chapter Conference 2008, pp. 129–136 (2008)

    Google Scholar 

  7. Crane, K., Weischedel, C., Wardetzky, M.: Geodesics in heat: a new approach to computing distance based on heat flow. ACM Trans. Graph. (TOG) 32(5), 152 (2013)

    Article  Google Scholar 

  8. Dey, T.K., Sun, J.: Defining and computing curve-skeletons with medial geodesic function. In: Proceedings of the Fourth Eurographics Symposium on Geometry Processing, pp. 143–152. Eurographics Association (2006)

    Google Scholar 

  9. Dijkstra, E.W.: A note on two problems in connexion with graphs. Numer. Math. 1(1), 269–271 (1959)

    Article  MathSciNet  Google Scholar 

  10. Eck, M., DeRose, T., Duchamp, T., Hoppe, H., Lounsbery, M., Stuetzle, W.: Multiresolution analysis of arbitrary meshes. In: Proceedings of the 22nd Annual Conference on Computer Graphics and Interactive Techniques, pp. 173–182. ACM (1995)

    Google Scholar 

  11. Gao, X., Jakob, W., Tarini, M., Panozzo, D.: Robust hex-dominant mesh generation using field-guided polyhedral agglomeration. ACM Trans. Graph. (TOG) 36(4), 114 (2017)

    Article  Google Scholar 

  12. Guennebaud, G., Jacob, B., et al.: Eigen v3 (2010). http://eigen.tuxfamily.org

  13. Hughes, T.J., Cottrell, J.A., Bazilevs, Y.: Isogeometric analysis: CAD, finite elements, NURBS, exact geometry and mesh refinement. Comput. Methods Appl. Mech. Eng. 194(39–41), 4135–4195 (2005)

    Article  MathSciNet  Google Scholar 

  14. Jacobson, A., Panozzo, D., et al.: libigl: a simple C++ geometry processing library (2018). http://libigl.github.io/libigl/

  15. CIVC Lab: VCG: Visualization and computer graphics library (2004). https://github.com/cnr-isti-vclab/vcglib

  16. Levy, B.: Geogram (2015)

    Google Scholar 

  17. Lévy, B., Petitjean, S., Ray, N., Maillot, J.: Least squares conformal maps for automatic texture atlas generation. ACM Trans. Graph. (TOG) 21, 362–371 (2002)

    Article  Google Scholar 

  18. Livesu, M.: A heat flow relaxation scheme for n dimensional discrete hyper surfaces. Comput. Graph. 71, 124–131 (2018). https://doi.org/10.1016/j.cag.2018.01.004

    Article  Google Scholar 

  19. Livesu, M., Attene, M., Patane, G., Spagnuolo, M.: Explicit cylindrical maps for general tubular shapes. Comput.-Aided Des. 90, 27–36 (2017). https://doi.org/10.1016/j.cad.2017.05.002. SI: SPM2017

    Article  Google Scholar 

  20. Livesu, M., Cabiddu, D., Attene, M.: Slice2Mesh: a meshing tool for the simulation of additive manufacturing processes. Comput. Graph. 80, 73–84 (2019). https://doi.org/10.1016/j.cag.2019.03.004. ISSN 0097-8493

    Article  Google Scholar 

  21. Livesu, M., Guggeri, F., Scateni, R.: Reconstructing the curve-skeletons of 3D shapes using the visual hull. IEEE Trans. Visual Comput. Graph. 18(11), 1891–1901 (2012). https://doi.org/10.1109/TVCG.2012.71

    Article  Google Scholar 

  22. Livesu, M., Muntoni, A., Puppo, E., Scateni, R.: Skeleton-driven adaptive hexahedral meshing of tubular shapes. Comput. Graph. Forum 35(7), 237–246 (2016). https://doi.org/10.1111/cgf.13021

    Article  Google Scholar 

  23. Livesu, M., Scateni, R.: Extracting curve-skeletons from digital shapes using occluding contours. Vis. Comput. 29(9), 907–916 (2013). https://doi.org/10.1007/s00371-013-0855-8

    Article  Google Scholar 

  24. Mancinelli, C., Livesu, M., Puppo, E.: A comparison of methods for gradient field estimation on simplicial meshes. Comput. Graph. 80, 37–50 (2019). https://doi.org/10.1016/j.cag.2019.03.005. ISSN 0097-8493

    Article  Google Scholar 

  25. Méndez-Feliu, À., Sbert, M.: From obscurances to ambient occlusion: a survey. Vis. Comput. 25(2), 181–196 (2009)

    Article  Google Scholar 

  26. Meyer, M., Desbrun, M., Schröder, P., Barr, A.H.: Discrete differential-geometry operators for triangulated 2-manifolds. In: Hege, H.C., Polthier, K. (eds.) Visualization and Mathematics III. MATHVISUAL, pp. 35–57. Springer, Heidelberg (2003). https://doi.org/10.1007/978-3-662-05105-4_2

    Chapter  Google Scholar 

  27. Schneider, T., Dumas, J., Gao, X., Botsch, M., Panozzo, D., Zorin, D.: Poly-spline finite element method. CoRR abs/1804.03245 (2018), http://arxiv.org/abs/1804.03245

  28. Shewchuk, J.R.: Triangle: engineering a 2D quality mesh generator and delaunay triangulator. In: Lin, M.C., Manocha, D. (eds.) WACG 1996. LNCS, vol. 1148, pp. 203–222. Springer, Heidelberg (1996). https://doi.org/10.1007/BFb0014497

    Chapter  Google Scholar 

  29. Si, H.: TetGen, a delaunay-based quality tetrahedral mesh generator. ACM Trans. Math. Softw. (TOMS) 41(2), 11 (2015)

    Article  MathSciNet  Google Scholar 

  30. Sorgente, T., Biasotti, S., Livesu, M., Spagnuolo, M.: Topology-driven shape chartification. Comput.-Aided Geom. Des. 65, 13–28 (2018). https://doi.org/10.1016/j.cagd.2018.07.001

    Article  MathSciNet  MATH  Google Scholar 

  31. Sorkine, O., Alexa, M.: As-rigid-as-possible surface modeling. In: Proceedings of the Fifth Eurographics Symposium on Geometry Processing, pp. 109–116. Eurographics Association (2007)

    Google Scholar 

  32. Sozer, E., Brehm, C., Kiris, C.C.: Gradient calculation methods on arbitrary polyhedral unstructured meshes for cell-centered CFD solvers. In: 52nd Aerospace Sciences Meeting, p. 1440 (2014)

    Google Scholar 

  33. Stimpson, C., Ernst, C., Knupp, P., Pébay, P., Thompson, D.: The verdict library reference manual. Sandia National Laboratories Technical report 9 (2007)

    Google Scholar 

  34. Tagliasacchi, A., Alhashim, I., Olson, M., Zhang, H.: Mean curvature skeletons. Comput. Graph. Forum 31, 1735–1744 (2012)

    Article  Google Scholar 

  35. Usai, F., Livesu, M., Puppo, E., Tarini, M., Scateni, R.: Extraction of the quad layout of a triangle mesh guided by its curve skeleton. ACM Trans. Graph. 35(1), 6:1–6:13 (2015). https://doi.org/10.1145/2809785

    Article  Google Scholar 

  36. da Veiga, L.B., Brezzi, F., Marini, L.D., Russo, A.: The hitchhiker’s guide to the virtual element method. Math. Model. Methods Appl. Sci. 24(08), 1541–1573 (2014)

    Article  MathSciNet  Google Scholar 

Download references

Acknowledgements

This work is partially supported by the EU ERC Advanced Grant CHANGE, grant agreement No.694515. We thank Keenan Crane for releasing the fish model in Fig. 6 to the public domain.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marco Livesu .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer-Verlag GmbH Germany, part of Springer Nature

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Livesu, M. (2019). Cinolib: A Generic Programming Header Only C++ Library for Processing Polygonal and Polyhedral Meshes. In: Gavrilova, M., Tan, C. (eds) Transactions on Computational Science XXXIV. Lecture Notes in Computer Science(), vol 11820. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-59958-7_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-59958-7_4

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-59957-0

  • Online ISBN: 978-3-662-59958-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics