Git Product home page Git Product logo

trulyseamless3d's Introduction

TrulySeamless3D – Truly Seamless Volumetric Maps

TrulySeamless3D is an implementation of the parametrization sanitization procedure described in Sec. 6 of The 3D Motorcycle Complex for Structured Volume Decomposition [Brückler et al. 2021] (accepted to Eurographics 2022) distributed under GPLv3. It is a 3D generalization of the 2D method from Exact Constraint Satisfaction for Truly Seamless Parametrization [Mandad and Campen 2019].

If you make use of TrulySeamless3D in your scientific work, please cite our paper:

@article{DBLP:journals/corr/abs-2112-05793,
    author     = {Hendrik Br{\"{u}}ckler and
                 Ojaswi Gupta and
                 Manish Mandad and
                 Marcel Campen},
    title      = {The 3D Motorcycle Complex for Structured Volume Decomposition},
    journal    = {CoRR},
    volume     = {abs/2112.05793},
    year       = {2021},
    url        = {https://arxiv.org/abs/2112.05793},
    eprinttype = {arXiv},
    eprint     = {2112.05793},
}

What is TrulySeamless3D?

TrulySeamless3D takes as input a tetrahedral mesh with an almost seamless parametrization (seamless up to small numerical inaccuracies, as commonly arising in the generation process) and makes it truly seamless. In this way, it enables the use of a wide range of almost-seamless parametrizations for applications that depend on the exact satisfaction of seamlessness constraints.


Dependencies

  • Eigen (Not included. Must be installed on your system.)
  • OpenVolumeMesh (Included as submodule)
  • libHexEx (Included as submodule)

Building

In root directory

mkdir build
cd build
cmake [-DTRULYSEAMLESS_BUILD_CLI=Off] ..
make

Usage

A command-line application is included that reads a tetrahedral mesh including an almost-seamless parametrization from a file in .hexex-format, as used and documented in libHexEx. It outputs a file in the same format, containing a (numerically sanitized) truly seamless version of the input.

After building, the CLI app can be found in build/Build/bin . Use as follows:

./TrulySeamless3D /path/to/input/almost-seamless-map.hexex [--preserve-cut-graph]

--preserve-cut-graph will avoid the cut graph getting altered during sanitization, i.e. non-identity transitions will not be moved onto other facets. Preserving the cut graph may slightly speedup sanitization if the input cut graph is already simple, but may (strongly) deteriorate performance if it is far from simple (e.g. cutting the mesh into many charts, rather than just one). If this flag is not used, internally a relatively simple cut graph will be computed, and transitions be moved onto it. The output will be saved to /path/to/input/almost-seamless-map.hexex-seamless.hexex.

API

Call the constructor TrulySeamless3D(tetmesh, parameters), providing the tetrahedral mesh (of OpenVolumeMesh type) and the (u,v,w) parameters per tet corner (as a map with key tuples (tetID, vertexID)). Then call sanitize(), and finally retrieve the sanitized parametrization map via parameter(CellHandle ch, VertexHandle vh).

trulyseamless3d's People

Contributors

hendrikbrueckler avatar

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.