Giter Site home page Giter Site logo

danielacabiddu / ooctritile Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 1.08 MB

Out-of-Core Indexed Triangle Mesh Partitioning

Home Page: https://doi.org/10.1016/j.cag.2015.05.015

License: GNU General Public License v3.0

C++ 100.00%
big-data binary-space-partitioning geometry-processing out-of-core stxxl triangle-mesh

ooctritile's Introduction

OOCTriTile

OOCTriTile is an out-of-core (OOC) method to split trimeshes into smaller tiles, according a user-defined size (in terms of numebr of vertices per tile).

Currently, OOCTriTile supports only triangle meshes encoded either as a single or a collection of OFF files.

What is in

OOCTriTile is provided as a collection of folders:

  • examples: standalone applications to be used as an example of OOCTriTile usage
  • external: externel dependencies, provided as git submodules
  • include: main source code, provided as a header-only C++ library
  • data: input data (triangle meshes) used for testing

How to get it

Please, use --recursive when cloning this repository.

git clone --recursive https://github.com/DanielaCabiddu/OOCTriTile

How to make it work

Include OOCTriTile in your C++ project

OOCTriTile is provided as a header-only library, included into the include folder. To include OOCTriTile in your project, simply include the include folder in your code.

Build example applications

Linux-Ubuntu (latest)

To build example applications included into the examples folder, use the build.sh script available in the example folder. To test example applications, use the test.sh script available in the example folder.

  • Linux-Ubuntu build status

MacOS (latest)

To build example applications included into the examples folder, use the build.sh script available in the example folder. To test example applications, use the test.sh script available in the example folder.

  • Mac build status

Windows (latest)

Microsoft Visual Studio 17 2022 is incompatible with the external dependency STXXL. To make it work, please either comment or remove lines 22-25 in external/stxxl/include/stxxl/bits/msvc_compatibility.h. Then, generate the Visual Studio solution via CMake and build it.

  • Windows-MSVC2022 build status

Authors

  • Daniela Cabiddu (CNR IMATI), Marco Attene (CNR IMATI)

Citing us

OOCTriTile is described into a journal paper

DOI

If you use OOCTriTile in your academic projects, please consider citing it using the following BibTeX entry:

@article{CABIDDU201581,
title = {Large mesh simplification for distributed environments},
journal = {Computers & Graphics},
volume = {51},
pages = {81-89},
year = {2015},
note = {International Conference Shape Modeling International},
issn = {0097-8493},
doi = {https://doi.org/10.1016/j.cag.2015.05.015},
url = {https://www.sciencedirect.com/science/article/pii/S009784931500062X},
author = {Daniela Cabiddu and Marco Attene},
keywords = {Indexed mesh, Out-of-core, Big data, Parallel algorithm},
abstract = {An algorithm is described to simplify arbitrarily large triangle meshes while leveraging the computing power of modern distributed environments. Our method combines the flexibility of out-of-core (OOC) techniques with the quality of accurate in-core algorithms, while representing a particularly fast approach thanks to the concurrent use of several computers in a network. When compared with existing parallel algorithms, the simplifications produced by our method exhibit a significantly higher accuracy. Furthermore, when our algorithm is run on a single machine, its speed is comparable with state-of-the-art OOC techniques, whereas the use of more machines enables relevant speedups. Noticeably, we observe that the speedup increases as the size of the input mesh grows.}
}

Acknowledgements

This work is partly supported by the EU FP7 Project no. ICT-2011-318787 (IQmulus) and by the international joint project on “Mesh Repairing for 3D Printing Applications” funded by Software Architects Inc (WA, USA). The authors are grateful to all the colleagues at IMATI for the helpful discussions.

ooctritile's People

Contributors

danielacabiddu avatar

Stargazers

 avatar

Watchers

 avatar

ooctritile's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.