Giter VIP home page Giter VIP logo

meancurvaturelibrary's Introduction

Mean Curvature Library

A command line application for approximating mean curvature of a provided 3D model in .off format. Two approaches are available:

  • Cotangent Laplace-Beltrami operator
  • Uniform Laplace-Beltrami operator

Technology:

  • C++
  • Google Test
  • Eigen
  • LibIGL
  • OpenMesh

Dependencies

Although Eigen and LibIGL libraries are provided, one need to have OpenMesh library installed. It can be acquired from https://www.openmesh.org/ and installed. The application's cmake will try to lacalize it on users's computer using standard set of paths.

Building

Note: Sources have been compiled and checked only on Ubuntu 16.04 64b with gcc 5.4.0.

  • In repository main folder call following commands:

    mkdir build
    cd build
    
  • If you want to compile without unit tests call

    cmake -Dtest=OFF ..
    

    Otherwise, the build will by default compile the tests, hence you can simply call

    cmake ..
    
  • Now, run

    make
    

    and ignore all gcc warnings (Eigen has some deprecated binding functions) :).

Usage

Single executable for the tests is located at:

build/testing/unit_tests/runUnitTests

The compiled application is located at:

build/code/MeanCurvatureApp

Example

Please go to the directory with the compiled application and run

./MeanCurvatureApp -i ../testing/unit_tests/res/bunny.off -o result.txt

File result.txt should now contain (per-vertex) mean curvature of classic standford bunny model. Note that -c flag is optional and corresponds to the cotangent-based operator. By default (i.e. no flag) the uniform operator is used.

Run ./MeanCurvatureApp -h for the further instructions.

meancurvaturelibrary's People

Contributors

dybiszb avatar dybisz avatar

Stargazers

 Jiahui Zhu avatar ILSR-SIA avatar

Watchers

James Cloos avatar Lirone Samoun avatar  avatar

meancurvaturelibrary's Issues

Cotangent Unit test failed

When running the provided unit tests MeanCurvatureSolverTest.ExecCotangent fails with this output:

[ RUN      ] MeanCurvatureSolverTest.ExecCotangent
/home/nitronoid/Documents/cpp/MeanCurvatureLibrary/testing/unit_tests/test_mean_curvature_solver.cpp:36: Failure
The difference between mSolution(0,0) and 66.2739 is 66.276323547951137, which exceeds 0.001, where
mSolution(0,0) evaluates to -0.0024235479511323507,
66.2739 evaluates to 66.273899999999998, and
0.001 evaluates to 0.001.
/home/nitronoid/Documents/cpp/MeanCurvatureLibrary/testing/unit_tests/test_mean_curvature_solver.cpp:37: Failure
The difference between mSolution(1,0) and -555.572 is 555.57563120355519, which exceeds 0.001, where
mSolution(1,0) evaluates to 0.0036312035551395797,
-555.572 evaluates to -555.572, and
0.001 evaluates to 0.001.
/home/nitronoid/Documents/cpp/MeanCurvatureLibrary/testing/unit_tests/test_mean_curvature_solver.cpp:38: Failure
The difference between mSolution(2,0) and -76.9057 is 76.909217177003853, which exceeds 0.001, where
mSolution(2,0) evaluates to 0.0035171770038587764,
-76.9057 evaluates to -76.905699999999996, and
0.001 evaluates to 0.001.
[  FAILED  ] MeanCurvatureSolverTest.ExecCotangent (1044 ms)

I would like to compare your results with my own

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.