You discovered a bug in the engine, and you are sure that it is not a problem of your code? Just post it in here. Please read the bug posting guidelines first.
Oops. OK, I guess that one's a no brainer. Thanks for the report!
Should be fixed on the trunk in SVN 1984. Also, operator -= was missing, and operator== was using == rather than core::equals(). That's prompted the observation that a lot of the core classes use direct == checks, which is possibly a Bad Thing.
Since revision 1753, which was committed on Nov 14, 2008. So just over a six weeks.
That said, it would be really nice if committers would fully document the changes they make in the changelog (the message that is provided when committing changes) so that people can tell what changes were made without having to look through every change and compare diffs.
This wouldn't happen if you just scrap dimension2d and position2d and stick with vector2d. You can say what you want about abstract programming principles but the costs for maintaining these classes and the lack of interchangeability (Anyone else tired of doing position2di(dimension.Width, dimension.Height)?) far outweigh the benefits.
On a related note some explicit casts would be handy.
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
BlindSide wrote:This wouldn't happen if you just scrap dimension2d and position2d and stick with vector2d. You can say what you want about abstract programming principles but the costs for maintaining these classes and the lack of interchangeability (Anyone else tired of doing position2di(dimension.Width, dimension.Height)?) far outweigh the benefits.
On a related note some explicit casts would be handy.
Let's try a pragmatic compromise (i.e. everyone will be unhappy, but it's already a fait accompli).
In SVN 2000 (yay me!) on the trunk, position2d is now a typedef/#define of vector2d. position2d is very tentatively marked as deprecated. You can continue to use it, but you'd be as well using a vector2d, since that's what it is.
I don't think that we can or should get rid of dimension2d since it would stuff up apps that rely on Width / Height rather than X / Y. However, I have added more implicit conversions between dimension2d and vector2d.
You can probably do some real damage with these, by accidentally passing the wrong types around without realising it. Knock yourself out, and please let us know if this is going too far, or not far enough.