Hi,

I just downloaded the latest OpenSG 1.8 Alpha and compiled both it and 
our app with it. It seems to be working solid, after I fixed the 
problems below. That's the good news for the 1.8 release!

However, my vector patch was included, and gave me a few surprising 
results this time around, so apparently I must've missed something when 
I tested it. (I've only myself to blame, and it's the second time out of 
two this happens, sigh)

The patch fixes two things
 1. the constructors are now explicit, so no automatic conversions 
happen behind the scenes. 
 2. the constructors are not overly general, so they don't catch _any 
type_ and assume it has an _ISize-member. (this have confused my 
compiler a few times)

The good things with the patch:
 - Automatic conversions & creation of temporary objects can cost 
performance
 - Automatic conversions can lead to obscure bugs (converting a Pnt3 to 
Pnt4 gives a zero in the 4th element, not good for points)
 - I found a couple of bugs in my code ;)
 - The single ValueTypeT constructor works & no more inline-code in the 
header.

The bad things:
 - The current 1.8 (with the patch) will probably break a lot of code, 
and it's not pleasant to fix (easy, yes, but it requires adding a lot of 
conversions randomly)

The main causes for problems in my code is due to:
 - The difference in interface between points and vectors 
(adding/subbing/scaling, etc doesn't just "work")
 - TransformationMatrix doesn't provide getters that return Vec3f/Pnt3f 
to get basis vector or translation.

I belive it is similar for other users.

We could fix this in a few ways:
 1. reverting the patch
 2. making the constructors non-explicit   
 3. adding assignment operators similar to constructors and setValue 
(similar to 2, but without temporary objects)
 4. Unify Vec/Pnt (& Color) into one class

Does anyone feel strongly about this?
 * If not, just go for Option 2, get 1.8 out and focus fully on 2.0)
 * Íf so, how about option 3 for 1.8? (IMHO, that would make the release 
stable enough, if we also could make Pnt4f default to 1 for the last 
element)

Option 4 would be my preferred option in the long run, i.e. 2.0. I think 
that's sort-of-planned anyway.

Cheers
/Marcus






-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to