NxOgre 0.9 - Sneak preview of the new tutorials with video!

betajaen

10-03-2007 21:45:00

Well it is time to release the beast - NxOgre 0.9.

Like current version of NxOgre is a rewrite of 0.3.5, NxOgre 0.9 is a rewrite of 0.6. A lot of things have changed and improved, and here is a few I would like to show you now.

Windows and Linux Support

NxOgre 0.9, supports Windows and Linux out of the box. Both of them come with Visual Studio and CodeBlock projects, and compile using the same code.

Cleaner and more standard code

Every class name is capitalised now; world -> World, body -> Body. Every argument of every method is carefully thought out, I use "const NxString&" like it is oxygen.

Every class that needs storage of another class, uses a global wide template called "container", it can store everything in any way you like.

Parameters everywhere

The parameters class is a little under used in current versions of NxOgre 0.6, in NxOgre 0.9 it used from PhysXDriver, to World, to Scene, to ShapeDescription, to Actor.

Parameters can convert string values directly, so you can do this:

"node: myNode, offset: 3 3 2"

Instead of:

params<actor> p;
p.node = "myNode";
p.offset = Vector3(3,3,2);

Faster compile time

It takes about a minute to compile NxOgre in Ubuntu, and 90 seconds in Visual Studio. If that is too long, I want to implement pre-compiled headers.

Actor class

The Actor class is a completely wrapped class of the NxActor class, with every function wrapped completely. It doesn't use a SceneNode so it is invisible, but it is a complete base for Body, Trigger and many others.

In fact the total Body code is only 90 lines, and most of that is empty ones. ;)

State System overhauled

The state system is being completely redesigned, a state will be an actual class with code rather than being a number. Of course everything that is possible will use it.

Shape System overhauled

The SVN of 0.6 took the brunt of it, but I've taken it a little further. You now have CubeShape and Cube. You can directly adjust the Shape at run time. I'm even playing with the idea of moving shapes across Actors.

Names are optional

Names are completely optional now. Don't want one, don't use it. NxOgre will make one up for you.

And much more

The creation of it is slow at the moment, I'm rewriting almost a years worth of work. But since I have grunt stuff already completed, and I have a full completed library to work from. I'm expecting between May-June for a NxOgre 1.0 release.

Meanwhile, in a few days. I'll post a link to the SVN of NxOgre 0.9, where we can all test and play with it together. It's not for the faint hearted, or the newbies but for the hardcore users.

But for now, you can look at the "101" code. In three lines:

World* mWorld = new World();
Scene* mScene = mWorld->createScene("Main", mSceneMgr, "gravity: yes, floor: yes");
Body* mBody = mScene->createBody("cube.1m.mesh", new CubeShape(1,1,1), Vector3(0,10.25f,0), "Mass: 100");

Game_Ender

10-03-2007 22:33:21

The parameters system is interesting is that something that is carried over from PhysX? The issue with it is that its not type safe, so the compiler won't catch "gravty" or "yess".

betajaen

10-03-2007 22:35:45

No it's my invention, PhysX doesn't have anything remotely like that. It's case and spacing insensitive, but it won't catch "yess" or "gravty".

Actually, the params in 0.9, are used in 0.6 right now.

Game_Ender

10-03-2007 22:51:59

So in order to solve the classic problem of lots of parameters and default values, you use strings? There is a type safe way to do this. You can use Boost.Parameter and with a few macros and template definitions you can have compile time checked function calls like this:

using namespace NxOgre::Parameters;

World* mWorld = new World();
Scene* mScene = mWorld->createScene("Main", mSceneMgr, gravity = true, floor = true);
Body* mBody = mScene->createBody("cube.1m.mesh", new CubeShape(1,1,1), Vector3(0,10.25f,0), mass = 100);


EDIT: I checked the latest documentation, it seems the library got a little harrier.

betajaen

10-03-2007 23:10:38

It's nice, and perhaps what I may of used when I first started it. But I find the current system small and elegant.

It is order, case and spacing insensitive. It can be unserialised from a string, and back into one. Seems perfect to me. :D

Wretched_Wyx

11-03-2007 07:07:44

Great work Betajaen, the new standards and style in the codebase are awesome. Aside from these new standards, what other new features can we expect to in 0.9?

xabila

11-03-2007 09:59:45

Nice !
I will try the linux version tonight

jchmack

11-03-2007 11:20:43

very nice! im especially glad about the standardized naming. Looking forward to what you got.

luis

11-03-2007 11:55:35

So in order to solve the classic problem of lots of parameters and default values, you use strings? There is a type safe way to do this. You can use Boost.Parameter and

yes, but it would 'force' to nxogre's users to include boost in their projects, i think it is not a good idea....


excelent work Betajaen ! :)

Game_Ender

11-03-2007 18:10:55

No it wouldn't. The Boost library I mentioned is almost certainly a header only library, which you unfortunately pay for in compile times. The upside is all you have to do is include the boost headers with the source. You would also have to provide options in the projects to use the users local copy of boost if they have it (to prevent conflicts).

Anyways, cool system betajaen I hope it cleans up the code.

luis

11-03-2007 18:47:45

No it wouldn't. The Boost library I mentioned is almost certainly a header only library, which you unfortunately pay for in compile times. The upside is all you have to do is include the boost headers with the source. You would also have to provide options in the projects to use the users local copy of boost if they have it (to prevent conflicts).
Oh, I didnt know that... i thought you needed to distribute as any other deps (with its .dll).

any way, aren't the boost headers indirectly included in user's source? slowing down the compile time? i have no experience with boost, but i read that some people love and some others hate this lib... :roll:

betajaen

11-03-2007 18:58:16

Boost is great and all. But their parameter library is an over complicated solution to a simple problem.

What NxOgre needs to be is simple, if it's overcomplicated it gets less-powerful and less usable.

Game_Ender

11-03-2007 23:45:29

I get you on the complexity issue. Boost can get complex, but I do see template meta programming as the direction C++ is going (just look at the features of the next standard). But on that note don't just discount Boost because it looks complex, after all the hard part of the parameter library is not calling functions that use it, its making the functions that use it.

luis, the reason Boost.Parameter would be a header only library is because its all templates. As such the entire template needs to be available upon compilation of your code that uses it, that means it must be processed each time you compile a file.

Congrats on the new version. Any specifics on the Linux build system?

betajaen

11-03-2007 23:50:07

It's CodeBlocks. Once I release 0.9 to the wild, I'm hoping one of you Linux geniuses will create some makefile system for me, so it can be built from the console. But for functionality purposes, it's nearly the same as Windows. It uses PhysX 2.6.2, but fluids and hardware are disabled.

joi

12-03-2007 13:14:11

Awesome! "Parameters" should fit very nicely into our scripting engine. Pretty excited over here! :twisted:

betajaen

12-03-2007 14:13:02

Indeed. I've tidied up the code quite a bit now, and to intergrate it or use it with NxOgre in your game or engine is very simple.

class myParams : Params {

public:


myParams() {setToDefault();}
myParams(const char* p) {process(p);}
myParams(NxString p) {process(p);}

void setToDefault() {
jump = true;
jumpHeight = 2.35f;
}


void parse(Parameters P) {
for (Parameters::iterator p = P.begin(); p != P.end();p++) {
if (Set("jump", (*p), jump) continue;
if (Set("jump-height", (*p), jumpHeight) continue;
}
}

bool jump;
float jumpHeight;

};

/////

void doJump(Params myParams) {
if (myParams.jump)
jump(myParams.jumpHeight);
}


/////

doJump("jump: yes, jump-height: 3.21");

neuronz

13-03-2007 00:22:59

Will Ragdolls be active in 0.9?

betajaen

14-03-2007 12:01:34

I say all signs point to, maybe ;)

Grom has been working on some rag doll code for NxOgre 0.6, and if he's kind enough. I'm sure he'll let me integrate it into 0.9

betajaen

15-03-2007 14:01:02

NxTutorial 101 - Reinvented


Click image for 3.8 MB Video (Xvid codec)


With a fresh new NxOgre, I though why not a fresh new Tutorial? The tutorial code has been rewritten, and with some new features which I call one - the sandbox.

The sandbox is just the infamous grey grid floor, and yellow cube thing, NxOgre has had going for a while now. But with a twist, you can spawn and create things withing the editor. Just using the mouse, 4 gui buttons and the mouse wheel.

That image above (which is click able by the way). It's a video of the new cube/object spawner system I just created. Which only supports the yellow cube at the moment, rotating and scaling the object and creating the body.

But it'll expand into changing the Ogre Material, more types of bodies and meshes, and even attach bodies to other bodies via joints.

Perfect for testing out PhysX and fun for just playing around. :wink:

NickM

15-03-2007 16:30:48

Looks great betajaen, keep up the good work :)

luis

15-03-2007 20:12:45

wow! the video is outstanding!!!
nice nice work ;)

Xpoint

15-03-2007 21:19:28

That looks totaly awsome! Thanks for the great wrapper!
Can't wait to use it in my game engine! :wink:

DaCracker

15-03-2007 21:49:39

That looks totaly awsome! Thanks for the great wrapper!
Can't wait to use it in my game engine! :wink:


It's a great base to have in a game engine! I use it in
my online FPS game engine :D

betajaen

15-03-2007 21:51:32

Do you mean the cube spawner system I wrote? It's in the tutorial code not in the library. But of course you can use it in your game.

In theory, I should be opening up the SVN tomorrow. Be careful, it's quite empty at the moment ;)

devachan

16-03-2007 03:40:02

funny video!! :P . Great work, your you don't stop

your you don't eat? :D

betajaen

16-03-2007 12:21:10



Ever since I added more meshes and materials, everything looks a lot better. ;)

[Edit]

For the curious this is what the interface looks like:



Wiggle the mouse wheel to spawn the mesh chooser. Select the mesh you want, then it appears on the center of the grid. Next move it around with the LMB.

If you want it resized use the mouse wheel over the resizer button. Only want it on a certain axis, click the button several times until you have the desired access. Same with rotate.

Want a different material, you can cycle through over the "M" button. Changes are instant.

Once your happy you can create the body with the "+" button.

joi

16-03-2007 13:21:23

Pretty neat! An interface for physics creation is a must. And yours is looking fine indeed, keep it up! :wink:

Are you using BetaGUI ? ... edited: Guess it would... :evil:

God: Arthur, King of the Britons, your Knights of the Round Table shall have a task to make them an example in these dark times.
King Arthur: Good idea, O Lord!
God: 'Course it's a good idea!

CaseyB

16-03-2007 13:51:38

Are you using BetaGUI ?It would be kind of funny if he wasn't!

betajaen

16-03-2007 13:54:05

Yep, it's BetaGUI modified Tuan Kuranes from the Bullet Physics library.

Wretched_Wyx

17-03-2007 00:02:30

Well now... It's been some time since I've wet my pants. And now you've gone and made me soil myself ten times over. Quite uncomfortable that.

You keep throwing in slick features like this, and one day we won't hear from you anymore. The men in black will just make you disappear, to some unknown lonely bunker, to be their physics programming slave.

I've watched the video a few times over now, and that system looks very responsive. I'm impressed. It appears as though this will be a very intuitive level editor one day, coupled with the NxOgre scenes system...

betajaen

17-03-2007 00:10:40

Well now... It's been some time since I've wet my pants. And now you've gone and made me soil myself ten times over. Quite uncomfortable that.

You keep throwing in slick features like this, and one day we won't hear from you anymore. The men in black will just make you disappear, to some unknown lonely bunker, to be their physics programming slave.


Perhaps I should market NxOgre as an aid to fix constipation.

Well, perhaps I will! That way I can work for Ageia. :D

Caphalor

18-03-2007 15:58:46

Hi Betajen,
at the moment, me and my team mate are implementing an ingame-editor for our game. But we have some problems with rotating objects using the mouse relative to the Camera...
I know, it isn't really NxOgre specific, but is there a chance to have a short look in the source code of the new tutorial 101?!

betajaen

20-03-2007 21:16:34



As getting more experienced with Ogre, I made this beauty. The RTT BetaGUI window is just temporary, it will be used with something more magical ;)

CaseyB

20-03-2007 22:26:28

How did you get the outline? I tried to do that but it looked like crap! I did a pass rendered in wireframe and then another full render, but the wireframe was too thin and it looked really bad! Yours looks awesome!

betajaen

20-03-2007 22:41:48

A lot of practise ;)

- http://get.nxogre.org/Tutorial.h
- http://get.nxogre.org/hilight.material

Unfortunately it only looks it's best with Anti-Aliasing on.

CaseyB

20-03-2007 22:56:31

Stencil buffers eh? Very nice!

betajaen

20-03-2007 23:00:38

I went through quite a bit to get it right; shaders, compositors and many more. Don't ask me what the stencil bit does exactly.

That isn't mine, the other half with the duplicate entity/scenenode combination is my invention.

mikeInside

23-03-2007 06:03:39

I'm new to this so I'm still working on getting 0.4RC3 installed, but the work you have done since then looks amazing! Thanks for your hard work, I'm looking forward to the eventual new release candidate :)

Pottej

27-03-2007 17:59:06

Do you have a rough idea of when 0.9 may be unveiled to the world :) It looks great!

betajaen

27-03-2007 18:31:13

I'll probably open up the SVN when I finish the character controller (basics) and wheels.

Probably in a week or two.

vasil

28-03-2007 08:11:02

Betajaen, you are GOD! Keep up the good work!






Excuse my English

luis

28-03-2007 09:00:51

I'll probably open up the SVN when I finish the character controller (basics) and wheels.

Yes!! i'm waiting for the wheels!

Probably in a week or two.
these are good news!
thanks for your great work!

betajaen

28-03-2007 09:48:18

The WheelShape and Wheel classes are implemented, but I have a silly little bug which won't make them move or rotate the scene node.

However, I've been reading physics book or two and I'm ready to implement the "Motor" class.

luis

28-03-2007 13:50:12

However, I've been reading physics book or two and I'm ready to implement the "Motor" class.

I dont need any complex "motor" class or gear sytem for my game, in fact i only need to control two things: acceleration and final speed and setting it with a torque curve or just two values is enought.

But i'm curious about the motor class you are going to do... some time ago i thought to do something like:

set torque curve
set max RPM
set number of gears

for each wheel with traction get tangential speed (TS)
for each wheel with traction apply torque according to TS & current gear.
?

edit: the above is a very simplistic and cheap way to compute the torque!

betajaen

28-03-2007 14:39:28

Just because the motor class is there, doesn't mean you need to use it. Some people around here have no how idea how the physics of a motor engine works, and that is for them. For people who do I assume they base their code upon it or write their own.

luis

28-03-2007 15:40:39

Just because the motor class is there, doesn't mean you need to use it.
yes, i know, I didn't mean to say that! what I meant to say was I just need accel/final speed control (at least for now).

For people who do I assume they base their code upon it or write their own.
It will probably be my case...

ncomputerm4

12-04-2007 23:41:16

Just wondering the eta of 0.9. I've been waiting for the newest version to start my game (didn't want to learn old stuff that is changin anyway).
Thanks

betajaen

13-04-2007 09:03:37

The plan is to open up the SVN on my birthday; 7th May, next month.

But you could use 0.6 for now; to get used to it all, and just port your code over when the time is needed.

ncomputerm4

13-04-2007 12:48:19

Ok, thanks for the update.
I'll see if i can get 0.6 to compile (it was not working for me before, giving a render error once you started any apps)

Xed

29-04-2007 18:08:35

I've got few q:

Where i can get nxogre0.9?

What I should do with this? To compile and link the project:

/////////////////////////////////////////////////////////////////////////////////////
Error 1 error C2027: use of undefined type 'nxOgre::meshShape'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 37
Error 2 error C2146: syntax error : missing ')' before identifier 'filename'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 37
Error 3 error C2146: syntax error : missing ';' before identifier 'filename'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 37
Error 4 error C2079: 'Ogre::String' uses undefined class 'nxOgre::meshShape'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 37
Error 5 error C2377: 'Ogre::String' : redefinition; typedef cannot be overloaded with any other symbol

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 37
Error 6 error C2888: 'Ogre::_StringBase Ogre::String' : symbol cannot be defined within namespace 'nxOgre'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 37
Error 7 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 37
Error 8 error C2146: syntax error : missing ';' before identifier '_params'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 37
Error 9 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 37
Error 10 error C2936: 'nxOgre::params<collisionmodel>' : template-class-id redefined as a global data variable

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 37
Error 11 error C2059: syntax error : ')' c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 37
Error 12 error C2470: '_params' : looks like a function definition, but there is no parameter list; skipping apparent body

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 37
Error 13 error C2065: '_params' : undeclared identifier c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp

37
Error 14 error C2027: use of undefined type 'nxOgre::meshShape'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 45
Error 15 error C2065: 'mFilename' : undeclared identifier c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp

46
Error 16 error C3861: '__LoadFromNXS': identifier not found

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 47
Error 17 error C3861: '__CookFromOgreMesh': identifier not found

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 50
Error 18 error C2065: 'mParams' : undeclared identifier c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp

53
Error 19 error C2228: left of '.mMaterial' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 53
Error 20 error C2065: 'mShapeDesc' : undeclared identifier c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp

54
Error 21 error C2228: left of '.materialIndex' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 54
Error 22 error C2228: left of '.mMaterial' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 54
Error 23 error C2228: left of '.mGroup' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 56
Error 24 error C2228: left of '.group' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 57
Error 25 error C2228: left of '.mGroup' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 57
Error 26 error C2228: left of '.userData' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 59
Error 27 error C2673: 'std::__bindToActorDescription' : global functions do not have 'this' pointers

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 59
Error 28 error C2027: use of undefined type 'nxOgre::meshShape'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 67
Error 29 error C2228: left of '.meshData' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 68
Error 30 error C2228: left of '.c_str' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 68
Error 31 error C2027: use of undefined type 'nxOgre::meshShape'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 73
Error 32 error C2228: left of '.get' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 96
Error 33 error C2673: 'std::__CookFromOgreMesh' : global functions do not have 'this' pointers

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 217
Error 34 error C2228: left of '.name' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 217
Error 35 error C2228: left of '.meshData' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 220
Error 36 error C2027: use of undefined type 'nxOgre::heightfieldShape'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 253
Error 37 error C2143: syntax error : missing ')' before 'const'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 253
Error 38 error C2143: syntax error : missing ';' before 'const'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 253
Error 39 error C2079: 'Ogre::String' uses undefined class 'nxOgre::heightfieldShape'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 253
Error 40 error C2086: 'int Ogre::String' : redefinition c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp

253
Error 41 error C2888: 'int Ogre::String' : symbol cannot be defined within namespace 'std'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 253
Error 42 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 253
Error 43 error C2530: 'std::_filename' : references must be initialized

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 254
Error 44 error C2062: type 'float' unexpected c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 254
Error 45 error C2059: syntax error : ')' c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 258
Error 46 error C2470: '_params' : looks like a function definition, but there is no parameter list; skipping apparent body

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 259
Error 47 error C2027: use of undefined type 'nxOgre::heightfieldShape'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 353
Error 48 error C2059: syntax error : ')' c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 353
Error 49 error C2143: syntax error : missing ';' before '{' c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp

353
Error 50 error C2447: '{' : missing function header (old-style formal list?)

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 353
Error 51 error C2027: use of undefined type 'nxOgre::heightfieldShape'

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 357
Error 52 error C2084: function 'void std::__bindToActorDescription(nxOgre::body *,NxArray<ElemType,AllocType> &)' already has

a body c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 357
Error 53 error C2228: left of '.mMaterial' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 360
Error 54 error C2228: left of '.materialIndex' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 361
Error 55 error C2228: left of '.mMaterial' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 361
Error 56 error C2228: left of '.mGroup' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 363
Error 57 error C2228: left of '.group' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 364
Error 58 error C2228: left of '.mGroup' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 364
Error 59 error C2228: left of '.userData' must have class/struct/union

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 366
Error 60 error C2673: 'std::__bindToActorDescription' : global functions do not have 'this' pointers

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 366
Error 61 fatal error C1506: unrecoverable block scoping error

c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_shape_mesh.cpp 471
Error 62 error C3861: 'exit': identifier not found c:\cd\game_tutors\physX\NxOgre0.6\source\ nxOgre_error.cpp 50

jchmack

30-04-2007 19:10:02

0.9 is still being developed just use the current version.