-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add option to compute topology based on corners only #27
base: master
Are you sure you want to change the base?
Conversation
Added a bugfix commit on this PR. If the first candidate node whose |
How general is the topology part going to be? Here is my go at worst-case scenario which might be good to keep at the back of your mind during this: It is the mapping of a chess pawn piece and contains
all wrapped into a single NURBS patch. If you include periodicity, then the object has zero corners, and without periodicity it has 3 corners. |
I don't think anyone has set down any specifications for how general it needs to be. I can at least tell you about those cases, that it should do the following (i.e. if it doesn't, it's a bug):
|
I've uploaded some test cases for you to play around with. They are meant to cover
You can find them all on my branch Thinking about this now, then I don't think it is necessary to cover periodicity in the topology parts of the code. We already have support for periodicity in the basis-function class, and I think should suffice. It means that the moebious box-example will not be supported at all, but I think we can live with that. I am however curious as to how well you mange to pick up on connecting 4 different volumes on a single degenerate face (that is the F1 space on the Capablanca example). Is it assumed that an intersectionface can only be associated with two volumes? |
Thanks. I actually had some tests on this but I can't find them now. Fairly upset because they were not easy to write. 😢
No, that's not assumed. |
This way the model provides that, e.g. for each face there can be a principal neighbouring volume (master/owner) and a secondary neighbouring volume (slave).
Currently the
SplineModel
classes determine object equality and orientations based on the whole controlpoint array. In some situations it may be prudent to allow for more varied objects to compare equal. This adds aninterior
keyword argument that, when set to false, only compares the corner points (actually, the corner control points) to determine when one object is “equal” to another.