Git Product home page Git Product logo

manifolds's Introduction

# About Manifolds
This library implements a variety of algorithms for querying and creating triangle meshes.

Since this is a toolkit library, please refer to the symbol index for the available operations and what they do.

Note that the library requires the following format for all mesh data:

- Vertices are packed into a single array of a specialised element-type, either single- or double-float, with three consecutive elements describing one vertex.
- Faces are triangular only and are also packed into a single array specialised on unsigned-byte 32, with three consecutive elements describing one face in counter-clockwise winding order. The indices are indices of a vertex. Meaning to reach the first element of the vertex in the corresponding vertex array, it must be multiplied by 3.

This format is compact, efficient, and compatible with graphics APIs, allowing for easy sharing between libraries and making it convenient to display.

manifolds's People

Contributors

shinmera avatar scymtym avatar

Stargazers

Johannes Martinez Calzada avatar Baggers avatar  avatar

Watchers

 avatar James Cloos avatar  avatar  avatar

Forkers

paulapatience

manifolds's Issues

BOUNDARY-LIST only works with some of the meshes that cl-wavefront produces

Background: cl-wavefront puts vertex data, that is vertex positions and possibly things like vertex normals and uv coordinates into a flat array.
Faces are described as indices into this array.
Vertices with identical positions but differences in other attributes appear to be stored as distinct spans of values in the vertex data array.

The problem: boundary-list relies on vertex indices to identify edges that are incident to multiple faces and thus distinguish boundary edges from inner edges.
This does not work if the "same" vertex is referenced through multiple different indices.

How should this be addressed?
One option would be to make boundary-list accept an optional vertex position array and identify edges by the positions of the referenced vertices.
Another options would be to just not support meshes with this structure.

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.