Hi Greg,
quote:
As to it's behavior, it would make sense to me to be able to move any points including the welded point independent of the other points, but not the line/curve as a whole. I imagine you could transform the line in any way as long as the welded point was the anchor and did not move. For instance, rotate around the welded point, stretch/lengthen from the welded point etc.
That sounds like it would lead to the kind of potential confusion that I was mentioning earlier - say you receive a file that has a line that has one of these welded points in it, then you select that line and just try to move it off to the side - according to what you are describing here it would just remain locked in place because of its welded endpoint.
Also if I understand correctly, if you had a line that had welded endpoints on 2 sides it would then be totally locked in place and no transformation of any kind would modify it?
So like I mentioned previously, I can see quite a lot of complications with that system - also it is not easy to implement since it would involve extra checking for if a transform was allowed by every single kind of transformation tool.
An even bigger problem yet is that it would probably not even really solve a problem with people creating inaccurate drawings in the first place because you would need to do a special extra step to produce the welding, and that's not likely to be something that a beginning user is going to know a priori .
Most of the time I think that inaccurate drawings are not generated due to people moving stuff around - most of the time I think they are created because things are not snapped together using object snaps when they are initially drawn. I suspect that a welding system as you're describing wouldn't really help with this type of problem.
It could be useful for other things, but since it would involve a kind of extra layer of checking on the part of numerous transformation commands, that's kind of an indication that it's a quite complex system. That kind of complexity can lead to a lot of various side effects, like that one I mentioned before about being surprised when receiving a file that behaved oddly when you tried to edit it since you were not aware of this big welded system being set up is only one.
Right now I'd have to say that it seems pretty impractical to try and implement that.
I have thought before about having a different system for building geometry, one more similar to how polygon mesh geometry is constructed where you have things like faces that share a common vertex point. But overall that's a pretty different kind of a system than how the geometry library that MoI uses is based on.
So there's definitely some interesting possibilities with the idea, but it just does not seem likely to be something that would be "implementable" within MoI, at least with with its current regular geometry. It could be possible in the future with a different type of polygon mesh entity type that was a kind of different class of object, like with its own separate data structures and different code paths for operating on them. That's a big task too though.
- Michael