Next modifications

Kanma

15-11-2005 11:01:30

For your information, this is the content of the next patch I'll sent to EagleEye:

- No more warnings from SWIG for OgreBindings

I fixed all the warnings that were output'd by SWIG, It'll will now be easier to see if new modifications can cause problems at this level.

It was mainly a matter of instancing some templated base class (Ogre::Singleton and Ogre::SharedPtr). The csout typemaps are now done on the same pattern than the standard SWIG's ones, that is with the ability to throw an exception when a C++ exception occurs.


- VectorIterator and MapIterator

For the end-user it's transparent, but if you need to wrap one class like that, read the following.

I cheated on this one, because SWIG generated invalid code when wrapping, for instance, std::vector<Ogre::Bone*> (also known as Ogre::Skeleton::BoneList) and Ogre::VectorIterator<BoneList>.

The good news is that we don't need to wrap BoneList. It's a class used internally by Ogre, that the user never directly uses. But we can retrieve an iterator to the bones of a skeleton (with Skeleton::getBoneIterator() and Skeleton::getRootBoneIterator()). So I simply created my own iterator template (CustomVectorIterator), which take a standard Ogre::VectorIterator as a parameter in its constructor. This class is wrapped using the same name than the original Ogre one.

I don't know if it's clear..., but if your confused, a look at Skeleton.i will help you. Again, the user doesn't see any difference, for him OgreDotNet.BoneIterator is the same than Ogre::Skeleton::BoneIterator.

Maybe we will found other classes for which that trick will not work... we'll see!


- New project configuration

It was in a previous patch, but wasn't mentioned:
There is now a new project configuration, called 'Debug (from sources)' that allows you to build OgreDotNet from the Ogre's sources rather than from the SDK. Just define the OGRE_SRC_HOME environnement variable to your 'ogrenew' folder.


- New classes wrapped

- BoneIterator
- ChildNodeIterator
- MaterialPtr (now act like a Material)
- TexturePtr (now act like a Texture)
- PatchMeshPtr (now act like a PatchMesh)

Nachtwind

15-11-2005 12:54:43

=)

You should see the face of the one sitting beside me looking at this post but too frghtned of making his own account here.
He is very very happy and i think you can compare this to - hmm - not so legally drugs... well What I want to ask you from him is the following: What about the MeshPtr? It was said it would have been wrapped some patches ago, but he can't use it (it's just like object.*), so are there any things left to be done or are we just building errerous code?


Anyway
Great Work!

Kanma

15-11-2005 14:26:19

In fact it seems that the commits done by EagleEye aren't in the CVS (don't know what went wrong, I told him that this morning).

So chances are that you're still using the 6-weeks old OgreDotNet...

I didn't have the modifications to Cegui.net done by EagleEye, but I put my copy of OgreDotNet, with all my changes, here: http://membres.lycos.fr/fettdepot/ogredotnet.html (hope it works, that's a free hosting server...)

Hopefully I didn't forget anything ^^

Nachtwind

15-11-2005 15:12:47

Vielen vielen dank :))))


To say it n my mother's language: Well, here in english: Many many thanks for this thing :)
(*whisper* you should see the guy i spoke of about in the post above, now he is singing and dancing!)

Kanma

15-11-2005 15:34:40

My pleasure. Note that it's still not possible to create a manual mesh yet (well, in fact you can, but you can't write into the vertices/indices buffers).

And you can tell to your friend that I don't bite, he can safelly make his account ^^

Nachtwind

15-11-2005 15:40:52

No problem with those meshes :)
Good thing to know that there is life back here again...

Anyhow, i will try to make daily builds... somehow i will succeed in it (or if i fail, succeed in trying at least ;))

EagleEye

15-11-2005 18:37:45

I don't know what you're talking about with the CVS thing... I have blown away all of my stuff here and re-downloaded from CVS and all of my previous updates have been there.

It could be that Sourceforge is messing up with anon. logins or something, since I use my sourceforge account and have write/update access, it doesn't effect me.

EagleEye

15-11-2005 18:40:31

In fact, you really should send me these updates (just the files that have been updated, not the whole project), so I can integrate the changes in to the whole project without overwriting the other changes that have been made.

Nachtwind

16-11-2005 06:08:37

All this reminds me of some problems we had with NXW long ago. Some times SF simply didn't update the CVS: Therefore they sent it from several places and at different times. That was quite irretating... in the end there were two things we did there: First of all the CVS checkin from several persons and the upload of the sources as a zipped archive on some storage place too...

Kanma

16-11-2005 08:30:31

Yes, it's about anonymous CVS, I re-downloaded again and it's still an old version without any of your changes...

Can't say about other logins :wink:

rastaman

16-11-2005 18:59:19

I put lates cvs here and Ill try and upload each day/time theres an update.