I decided to do things a bit differently this time. Usually, I spend the early part of each release cycle implementing new features, then spend the last part fixing bugs. That gives plenty of time for people to find bugs in the new features, but it means that fixing bugs in existing features often gets shortchanged. So this time, I decided to spend a good while just fixing bugs at the very beginning. Then I decided, since I'd fixed a lot of things, I might as well go ahead and release it as 2.2.1. So:
It might be more accurate to describe this as a release candidate rather than a beta. I think it's really ready to go, but I want to give everyone a chance to try it out and make sure I didn't break anything while fixing bugs. If no one finds anything serious in the next week, I'll go ahead and make it an official release.
Here are a few things to particularly keep an eye on:
I spent quite a while working on boolean modelling, and I think it's more robust than it used to be. There may still be cases where it fails (let me know if you find any!), but hopefully a lot fewer. So give it a try.
I've changed how it calculates normals for triangle meshes. It now uses a method suggested by John Burak, where the normals of faces surrounding a vertex are weighted by angle. This should produce more consistent normals. In particular, the normal vector at a vertex now depends only on the shape of the surface, not on how the surface is triangulated. But keep an eye out for any problems arising from this.
I've reimplemented how key presses in the main window get handled. In theory, everything should work exactly the same as it did before (except without a bug that caused key presses to sometimes get ignored), but watch for any strange behavior here.
There are lots of other bug fixes, and I'll be going through the bug tracker and marking reports as "pending" to show they're fixed in 2.2.1. So give it a try, and let me know how it works!
Awesome work! I'm not the best AOI bug-finder out there, but I will certainly give 221 a run!
Thank you for all your efforts.
Wow that's a pleasant surprise, and thank you.
I'll try to put it through the wringer within the week.
Nik, I think your other exploits make up for your undocumented feature discoveries. :)
Great, A lovely update.
bug hunting report; (use your one judgment to see if they are just me)
Extruding multiple objects with extrude tool , but when all the objects have the same name, It only extrudes the 1st object. (may be and old one)
The text script seems now not to make solid objects or 2d surfaces with holes in like the letter a, bet letters like m still work. I do know about it now working with all fonts, but this is on a font I know used to work.
Hmm, I'm starting to wonder it this is just me even more, but I can't get the boolean tool to remove a triangle mesh object (The text after lots of fiddling) from a primitive cube, or even a tri-mesh cube. It spends ages (about 5min, locking me out of AOI) working before it brings up the preview window, and then it only give me choices of intersect or 2nd from 1st. and the text isn't that complicated.
But on a much more happy note;
The delete key feels very natural when removing key-frames, very nice.
Thanks for this release.
A little thing I have noticed about the key strokes. It doesn’t work if you keep the key down, it just moves the object once (on key release) and stops (both with snap to grid and without it), shouldn’t it move until the key is released?
# It doesn’t work if you keep the key down
What operating system and JVM are you using? Are other people seeing this too?
I’m using windows xp, and the jvm is 1.6.0-rc-b68. I also gave it a go with 1.5.0_06-b05, and got the same result.
I just noticed that if I’m in the mesh editor then it works, but in the scene views it doesn’t.
Yes. WinXP and java 5 (or 1.5?.
I'm a bit at a loss on what to do with this one. Previously, I handled key events in the main window by recursively adding a listener to every widget in the window. The problem is that it's really easy for the window to get into a state where no widget has focus, in which case all keypresses would just get ignored. So I changed it to use a KeyEventPostProcessor, which supposedly should get every key event generated in the window, no matter what (if anything) has focus.
The problem is that, if a GLCanvas has focus, that isn't happening. Normally it receives a KEY_PRESSED when the key goes down, a stream of repeating KEY_PRESSED events while you hold it down, and then a KEY_RELEASED when you release it. But if a GLCanvas has focus, it doesn't get any KEY_PRESSED events at all, just the KEY_RELEASED when you let it up.
I'll need to investigate further, and possibly contact the JOGL team to see what's going on.
Unsure about Adrian, but for me, at least at the outset, this seems more of a ladybug, than a horsefly, louse or tapeworm.
This weekend, I will try to manage some time to find those kinds. :)
> this seems more of a ladybug, than a horsefly, louse or tapeworm
> I'll need to investigate further, and possibly contact the JOGL team to see what's going on.
Don’t worry too much about this. I don’t really think that it’s that important.
On Sunday I will look into it myself. I’ll make sure to post here if I discover anything.
I really appreciate that you went for the bug fixes earily in the cycle this time. I left TrueSpace for AoI because TrueSpace was incredibly buggy across two or three releases over a period of at least a few years, as I recall. And I did report bugs to those guys. AoI is much more stable to begin with as far as I have seen, and you actually do fix bugs. Kudos and much thanks! You are doing a wonderful and remarkable job!
The ctrl + b shortcut for One View/Four Views is still missing.
Wait a minute, upon opening the Mesh Editor, it's sometimes unavailable, but, upon accessing it a few times via the View menu, the shortcut has appeared.
Just in case Peter hasn't seen this post from the benchtest thread:
There seems to be a problem in 2.2.1beta rendering map.aoi. The render freezes part way through the render (varies between 10% and 50% depending on settings). No exceptions are reported on the console, and the symptoms are as if the raytracer has entered a very long, or infinite loop (100% CPU, but windows respond to REDRAW events).
Julian MacDonald first reported the problem - thanks Julian.
# There seems to be a problem in 2.2.1beta rendering map.aoi.
Thanks! I'll take a look at it. I knew there was a good reason for getting people to try this out before officially releasing it...
Regarding the key handling, I've made progress on understanding it. My conclusion: Swing's handling of key events is REALLY convoluted! The culprit turns out to be in UIManager. It sets a KeyEventPostProcessor which checks each event to see if it's a KEY_PRESSED event and the event source is not a JComponent. If so, then it calls consume() on the event. Why does it do this? Who knows? But that explains why this only happens if a GLCanvas has focus.
My next idea is to implement this in yet a different way, by overriding the window's processKeyBinding() method. Based on looking at the JDK source code, it looks like this ought to work, but I won't know until I actually try it.
I agree this is a minor bug, but it's the sort of detail that really irritates me in other programs when they do it wrong. So I want to put in some effort to make it work.
Just to let you know that I submitted a formal report on a boolean bug.
Thanks! Amazingly, this was a boolean bug that was very easy to fix. I'm not sure I've ever seen one of those before!
BSeperator seems to be missing from buoy distribution and hence OSSpecific won't compile. Since BMenuSeparator.class exists in buoy.jar, it looks like a version mismatch to me.
Sorry, it looks like the source folder has a Buoy 1.5 jar. Stick in 1.6 and it will compile correctly (or just wait for me to post the next beta, which should be within a day or two).
Ok, it's been three days since I said there would be a new beta in "a day or two", and it still isn't here. I'm sorry! It's partly that I had hardly any free time on Monday or Tuesday, and partly that I'm trying to track down one last bug which is being very stubborn. Hopefully I'll have it soon!