Comments (5)
I would call this user issue, not library issue. :)
from manifold.
I would call this user issue, not library issue. :)
I think it depends on how you view the APIs. For example, the documentation of the warp function explicitly says that it is very easy to create self-intersections and we do not check them now.
The way I see this is that, except certain APIs that we have warned the users, geometrically valid inputs should result in geometrically valid output. Anything violating this is a bug. (which we can also 'fix' by saying that the user should pay attention to blablabla...)
For this case, it is not easy to see what is the minimal number of segments to create a valid result.
from manifold.
I look at this exactly like the Warp function, and you're right that it should probably have a similar warning. I am planning to try and implement an overlap removal algorithm, in which case that can be run automatically after operations like these.
from manifold.
@platypii suggested we can rotate the points to avoid getting self-intersections, though it will only work if the points are evenly spaced.
Wonder if this can work in general if we interpolate the points into segments with roughly the same lengths? One problem is that the geometry will be different even for cases that there are no self-intersections.
from manifold.
I think that's a little too clever - could easily surprise users. Let's wait for a proper solution that will handle Warp as well.
from manifold.
Related Issues (20)
- gcc14 build failure HOT 7
- Triangulation issue: Zebra HOT 3
- BSD compiler error HOT 1
- Another Zebra Triangulation issue HOT 6
- Port for vcpkg HOT 9
- use size_t whenever possible
- Auto generated python stubs inconsistent with cpp API HOT 14
- Rust bindings HOT 22
- Build error with Emscripten 3.1.61 HOT 1
- Debug MSVC build error HOT 8
- NumTri returns uint32_t, while array uses size_t (like uint64_t or int64_t) HOT 3
- Warning as errors HOT 4
- operator""_z returns unsigned and is in the global scope
- Is there a guide to getting it run with Vite using SvelteKit HOT 1
- Some crashes on invalid data. HOT 8
- Building Python package from PyPI sdist dies with CMake configuration errors HOT 3
- offset a convex manifold HOT 13
- Oriented bounding box HOT 1
- OpenSCAD fails to build without CrossSection: no member named ‘ToPolygons’ HOT 13
- Know is Manifold::Boolean(xxx, OpType::Subtract) operation has actually done something (changed source manifold) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from manifold.