DotNet3D is completely separate from RealmForge. We're trying to establish a standard set of interfaces that match up to OgreDotNet right out of the box, for the DotNet3D.Rendering namespace.
Everyone has to choose a standard. OgreDotNet already has theirs, and it currently doesn't play well with anyone else; not even Axiom. It would seem to be a shame that Axiom and OgreDotNet won't explicitly implement the exact same sets of interfaces. (e.g. INode)
Rather than having RealmForge implement yet another new set of interfaces, our goal is make use of interfaces that already implicitly exist.
Mal, the wrappers required for OgreNet are very hefty. The fact that you've agreed to use Math3D is a nicety. Because at least that will be common.
DotNet3D has no affiliation with RealmForge. If anything, it will become the other way around. RealmForge will choose to implement to the DotNet3D interfaces, which, by the way, match the interfaces implemented by OgreDotNet3D and Axiom.
Same case goes for CeguiDotNet and Cegui#.
If all 5 projects agree to comply with the same set of non-project-dependent interfaces, then game code will look like this:
INode myNode = SceneManager.CreateNode(... args...);
myNode.Position = Vector3(x,y,z);
IPushButton myButton = GuiSystem.CreatePushButton( ... args ...);
myButton.BackgroundColor = Color.Grey;
There will be no wrappers involved for any of the projects that comply with this same set of interfaces. RealmForge, Axiom, and I think Cegui# will all be adding the Interface references, to assure the compliance, and ensure there will be no need for wrappers.
We've already got a lot of layers... OgreDotNet is already a wrapper. I sure won't like wrapping this wrapper.
Take a Poll. Of those who are planning to use OgreDotNet as their base for making their next game, who here is going to build it solely upon OgreDotNet, and rule out Axiom?
Mal, is that your plan? EagleEye, yours too? If it is, then I can understand your reluctance to implement interfaces, rather than just leaving them as raw classes.
And as I've said... I will maintain the wrapper for OgreDotNet3D, to make it look the same as Axiom. Axiom, on the other hand, won't require a wrapper, since it already will implement interfaces, and will also make use of Math3D.
I would suggest that Math3D be called DotNet3D.Math instead, or at least keep it as a consideration. We're trying to establish the "DotNet3D" base namespace as a separate franchise for commonality among projects. Ogre and Cegui are the grandfathers of the interfaces that will be put into DotNet3D. It sets you up as a leading "standard".
There's no need to argue. No matter which way you go, we'll get it working.
--------- REALMFORGE ---------
Yes, RealmForge has floundered, and it has been an embarrassment to varying degrees. Xeonx started it as a Junior in highschool, and so the mistakes made are typical of a young buck with no prior experience for large software projects. He implemented 95% of what's in SVN. Hands down, Xeonx is an intellectual and creative giant, whose roots are just starting to take hold. For his age, his accomplishments are astounding. Just keep his age in mind and realize that you are criticizing an 18 year old (e.g. he's currently at Univ Illinois, taking graduate level CS courses).
We're hard at work behind the curtains. Give us a bit of time, and RealmForge will be mostly refactored into a truly functional and effective GDK, which will initially sit on top of both Axiom and OgreDotNet.
Currently, Axiom development is now headed up by Borillis, with help from DapperDan. I think we might see a revival in Axiom coming soon. Luckily, I have my RealmForge eggs in two baskets -- yours and Axiom's.
Cheers. Mal, thanks for giving me another basket to put my eggs in.