Coder Social home page Coder Social logo

adobe / lagrange Goto Github PK

View Code? Open in Web Editor NEW
248.0 17.0 23.0 2.34 MB

A Robust Geometry Processing Library

Home Page: https://opensource.adobe.com/lagrange-docs/

License: Apache License 2.0

CMake 2.72% C++ 92.66% C 1.09% GLSL 1.45% ShaderLab 0.05% Python 2.03%
geometry-processing

lagrange's Introduction

About Project Lagrange

Project Lagrange is an initiative to bring the power of robust geometry processing to Adobe products. It bridges cutting edge research works with cutting edge products. Project Lagrange is built on the following design principles:

Modular design

Large features should be decomposed into smaller single functionality modules that are as decoupled as possible from each other. Modular design enables unit testing, prevents small change from propagating widely in the code base, and makes adding new functionalities easy.

Preconditions + guarantees

Algorithmic correctness should be rigorously enforced. This is achieved by clearly documenting and checking the precise precondition and the corresponding guarantees of each module. Algorithms relying on input-dependent parameter tuning should be avoided.

Interface + compute engine

The interface of a functionality should be decoupled from the computation algorithms. This makes swapping out an algorithm with a better algorithm possible and ideally should not require change in client codes.

Large scale testing

Large scale, empirical testing on major functionalities should be carried out periodically to ensure their correctness and robustness. Let data speak for itself.

Contributing

Contributions are welcomed! Read the Contributing Guide for more information.

Licensing

This project is licensed under the Apache 2.0 License. See LICENSE for more information.

lagrange's People

Contributors

haskha avatar jdumas avatar qnzhou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lagrange's Issues

lagrange/ui/StringUtils.h missing

Expected Behaviour

Compile with MDL enabled

Actual Behaviour

Required file is missing in source tree.

 54%] Built target components
[ 54%] Building CXX object modules/core/performance/lagrange_ui/CMakeFiles/lagrange_ui.dir/src/Material.cpp.o
/XXX/lagrange/modules/ui/src/MDL.cpp:19:10: fatal error: 'lagrange/ui/StringUtils.h' file not found
#include <lagrange/ui/StringUtils.h>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

Reproduce Scenario (including but not limited to)

Steps to Reproduce

Compile with MDL support enabled

Platform and Version

Sample Code that illustrates the problem

Logs taken while reproducing problem

Default options for CMake build on Windows with Visual Studio that work?

Expected Behaviour

It would be nice if the build would "just work" without configuration with some moderately sane defaults on Windows with Visual Studio toolchain.

Actual Behaviour

The CMake UI Configuration step produces quite many errors, which it is not obvious how to clear up. Please see the cmake output at the end.

Reproduce Scenario

Steps to Reproduce

Download latest Lagrange release (5.1.0) to Windows 10 desktop with CMake gui tool and Visual Studio (e.g. 2019) installed. Run the CMake configuration.

Platform and Version

Windows 10, Visual Studio 2019, CMake 3.2.1, Lagrange v. 5.10,

Logs taken while reproducing problem

Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19042.
Third-party (external): creating target 'Catch2::Catch2'
Lagrange: creating target 'lagrange::core'
Third-party (external): creating target 'Eigen3::Eigen'
Third-party (external): creating target 'igl::core'
MSVC -> forcing use of dynamically-linked runtime.
Creating target: igl::core (igl)
Third-party (external): creating target 'spdlog::spdlog'
Build spdlog: 1.6.1
Build type: Release
Generating install
Third-party (external): creating target 'TBB::tbb'
Lagrange: creating target 'lagrange::testing'
Lagrange: creating target 'lagrange::io'
Lagrange: creating target 'lagrange::fs'
Third-party (external): creating target 'filesystem::filesystem'
Third-party (external): creating target 'tinyobjloader::tinyobjloader'
CMake Error at cmake/lagrange/lagrange_include_modules.cmake:15 (add_subdirectory):
add_subdirectory given source
"D:/Incoming/srctest/lagrange-5.1.0/modules/serialization" which is not an
existing directory.
Call Stack (most recent call first):
modules/testing/CMakeLists.txt:31 (lagrange_include_modules)

Using test data folder: D:/Incoming/srctest/lagrange-5.1.0/data
Third-party (external): creating target 'CLI11::CLI11'
Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
Doxygen not found, building docs has been disabled
Lagrange: creating target 'lagrange::ui'
CMake Error at modules/ui/CMakeLists.txt:43 (include):
include could not find requested file:

nanoflann

Third-party (external): creating target 'gl3w::gl3w'
Third-party (external): creating target 'glfw::glfw'
Using Win32 for window creation
Third-party (external): creating target 'stb::stb'
Third-party (external): creating target 'imgui::imgui' ('docking' branch)
Third-party (external): creating target 'imguizmo::imguizmo'
Third-party (external): creating target 'imgui::fonts'
Third-party (external): creating target 'nativefiledialog::nativefiledialog'
Third-party (external): creating target 'nlohmann_json::nlohmann_json'
Lagrange: creating target 'lagrange::assets'
Third-party (external): creating target 'EnTT::EnTT'
Populating copy rules for target: test_lagrange_core
Populating copy rules for target: test_lagrange_fs
Populating copy rules for target: test_lagrange_io
Populating copy rules for target: ui_playground
Populating copy rules for target: ui_show_attribute
Populating copy rules for target: ui_dynamic_mesh
Populating copy rules for target: ui_scene
Populating copy rules for target: ui_callbacks
Populating copy rules for target: ui_treenode
Populating copy rules for target: test_lagrange_ui
Populating copy rules for target: remove_duplicate_vertices
Populating copy rules for target: predicates_speed
Populating copy rules for target: refine_mesh
Populating copy rules for target: remove_degenerate_triangles
Populating copy rules for target: remove_short_edges
Populating copy rules for target: mesh_initialization
Populating copy rules for target: connectivity
Populating copy rules for target: components
Populating copy rules for target: dijkstra
Populating copy rules for target: select_vertices_speed
Populating copy rules for target: resolve_nonmanifoldness
Populating copy rules for target: repeated_loading
Populating copy rules for target: condense_uv
Populating copy rules for target: marquee
Populating copy rules for target: array
Populating copy rules for target: unify_index_buffer
Populating copy rules for target: view_tangent_frame
Populating copy rules for target: mesh_cleanup
Configuring incomplete, errors occurred!
See also "D:/Incoming/srctest/lagrange-5.1.0/out/CMakeFiles/CMakeOutput.log".
See also "D:/Incoming/srctest/lagrange-5.1.0/out/CMakeFiles/CMakeError.log".

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.