Comments (6)
This could be a very powerful feature. I imagine it being most useful in combination with a UX input (click - raycast, select triangle or coplanar face or sharp edge or ...) and do an operation. It might even be useful programmatically, though I need some examples to visualize.
I think we should start by listing out specific operations that seem like they have good utility and use those to help develop an API. The shape of the API will help guide an implementation. For instance, I bet that beyond just selecting existing verts/edges, it'll need to remesh to create verts at the desired boundary, either before or during the operation. Consider e.g. a fillet on a cube, where new verts will need to be placed to anchor the existing surface at the edge of the operation. So in a sense, part of the original edge was changed by the operation, but another part was not.
from manifold.
So for your usecase, I guess it would be some sort of a area selection using another manifold? I think it still makes sense to have face selection for offsetting, not sure how to represent that with area selection.
from manifold.
Selecting a region to operate on by intersecting with a temporary manifold is an interesting idea. It's going to get hard going much further without some visuals though. Even if it's just sketches on a napkin, I'd like to see what you mean by face offsetting.
from manifold.
For specific operations, here are some that I can currently think of:
- Offsetting
- Rounds and fillets
- Angular draft
- Thickness
And in addition to these operations, it may be useful if users can designate a certain vertex/edge/face and refer to its coordinate in other parts, i.e. #193.
from manifold.
I somehow think that openscad/openscad#4605 can be slightly related to this, i.e. we may want to define some features for our primitives and allow users to refer to them. In addition, maybe we can use the mesh relation API, identify adjacent faces with different source meshes to determine edges introduced due to boolean operations, and perform some operation on them (such as fillet or chamfer)?
Just brainstorming here.
from manifold.
Agreed, I've daydreamed about this kind of thing too. Already the mesh relation will let you semantically identify e.g. a cylinder from its remaining facets. I'm not quite sure what one would do with it, but the data's available at least.
from manifold.
Related Issues (20)
- [Question] robust geometric predicates, polygon triangulation
- Warning comparison of integer expressions of different signedness
- Modularize Manifold HOT 25
- Build without exceptions HOT 3
- Remove Thrust HOT 19
- How to figure out required size of mem in the C-API? HOT 1
- Crash in Project() HOT 4
- 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 2
- use size_t whenever possible
- Auto generated python stubs inconsistent with cpp API HOT 11
- Rust bindings HOT 22
- Build error with Emscripten 3.1.61 HOT 1
- Debug MSVC build error HOT 7
- 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
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.