Git Product home page Git Product logo

dmo_templated's Introduction

Discrete Mesh Optimization

Discrete Mesh Optimization (DMO) implemented in C++ and CUDA for 2D meshes. The method works on triangle and quad meshes. Some metrics are already given but the power of DMO is that own metrics can be defined also.

Requirements

Cuda is recommended for good performance. If no Cuda Compiler is found, DMO will be set up as a header only library.

Installation

Windows

  • Download and install CMake (at least Version 3.18)
  • Start CMake Gui and choose dmo_templated as Source Directory.
  • Choose a Build Directory, e.g. create a new Folder "build" in dmo_templated.
  • Click "add Entry" and enter "CMAKE_INSTALL_PREFIX". Select the path to the installation of OpenMesh if it has not been installed to the default location.
  • Click "Configure", once finished click "Generate".
  • Click "Open Project"
  • Select a Startup Project, e.g. ex01_Basic or ex01_Basic_cpu, and build it.

Linux (not tested)

  • Create a build folder in the root directory of the project.
  • Execute "cmake .. -DCMAKE_INSTALL_PREFIX=x" inside the build folder where x is the location of the installation of OpenMesh.
  • call make.

Getting started

Have a look at the provided examples. Start with ex01_Basic to see how DMO is used with the predefined metrics. For using your own metrics take a look at ex02_UserMetric.

Usage in other CMake projects

  • Copy the DMO folder to your own CMake project.
  • Add add_subdirectory(DMO) to your CMake project.
  • Add package DMO::DMO to your target_link_libraries()

dmo_templated's People

Contributors

joscao avatar daniel-zint avatar

Stargazers

Henningson avatar

Watchers

 avatar

Forkers

joscao

dmo_templated's Issues

Compilation Failure with Clang

Compilation with -DDMO_USE_CUDA=OFF and clang results in failure.

cmake .. -DCMAKE_INSTALL_PREFIX="/usr/local/include/OpenMesh-8.1" -DCMAKE_CXX_COMPILER="/usr/bin/clang++" -DCMAKE_LINKER="/usr/bin/clang++"

Error:

error: no member named 'copyHostToDevice' in 'DMO::DmoVectorCPU<DMO::DmoVertex>'
            vertices.copyHostToDevice();

Simple fix by adding
c++ void copyHostToDevice(){}
into DmoVectorCPU in DmoVector.h is proposed.

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.