Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Dark GDK / Physics plug-in powered by PhysX

Author
Message
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 10th May 2010 01:32 Edited at: 11th May 2010 17:33
UN-OFFICIAL RELEASE:
Do not download unless you have already downloaded from the first post in this thread:
This is untested and undocumented, any problems, just ask here.

This will be released properly soon, releasing this so I can take more time getting official one done properly.

New Features:
Vehicles
Raycasting
Contact reports
collision groups
materials

Note: Setting up vehicles is only easy once you know how its done, if anyone wants to try it, let me know and I'll post a bit of sample code.

Thanks for testing.
Matty.

Attachments

Login to view attachments
JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 10th May 2010 03:09 Edited at: 10th May 2010 03:18
Wow! This just is NOT working for me... There's just too many errors for me to post, but suffice it to say, I can't get a valid run-time compile!

So, since I don't want to give up, I've downloaded the GDKrar file that Dark Coder posted above and will compile with the settings he says to use (not my preferred but that's ok) as I assume those are the settings that you've used, and will report my results after that...

Let me just say, that with the exception of the /W4 warning level, I don't think I change the settings too much from the default (although I could be wrong); therefore, anyone else that downloads this version may be screaming for answers... I hope to help you with those questions because for me, as it stands right now, it breaks what I do have...

JTK

EDIT: I should explain *how* I've installed the update: First, I renamed both the Include and Lib directories to Include 1.2.2 / Lib 1.2.2 and then extracted the Include / Lib directories into the current fulcrum physics sub-directory.

I've also tried copying (w/overwrite existing) files to those directories... Neither was workable... I can get back the old version (I've still got the original compressed files I've downloaded - not to mention the first post above). The originals work, this one doesn't...

I will report as stated above...

EDIT 2: Ok, so I don't get to Recompile (lol)... I will still report with my findings using those libs and those settings...
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 10th May 2010 10:39
I posted late last night and never tested it, I'm going to work now but I'll take a look when I get back.

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 10th May 2010 15:52
Dont spend any more time trying to get it to work, I've done something wrong when creating the lib.
I have managed to fix alot of the linking errors(/MT to /MTd), but I am still getting a few:


If anyone knows what I am doing wrong when I make my lib, please let me know.
Anyway, I'll figure it out and post it again.

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 10th May 2010 16:05
O.K, it should work now, I had to go back to a release Lib, I was getting them linker errors with the debug Lib, I will try and get a debug version ready when I release this properly.

Download is available a few posts up.

JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 10th May 2010 16:15
ok I'll try again when I get home tonight.
JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 11th May 2010 03:35
It's working... lol. I still get the linker errors, but I can live with that.

Now, about gravity... I'm trying to use the new lib in the kick-balls sample above, but now the balls won't fall down... Am I missing something? I've tried applyForce and enableGravity but to no avail for neither...

JTK
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 11th May 2010 14:17
So you mean linker warnings?
Have you done this:

Also make sure the balls are dynamic(non-kinematic).

JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 11th May 2010 16:52
Yes linker warnings. Sorry.


An. Yes they are dynamic and setgravity(0,-10,0)

What's interesting is that after a few minutes I can walk under some and next thing I see is that I'm climbing over something... Like the physics is working but the objects they're tied to aren't updated.

which brings to mind a suggested enhancement; is it possible - for debugging purposes - to display a wireframe around the internal physics objects to visually show what's happening in the sense of the physics engine?

Btw I assume the CMass family of functions deal with center-mass? I've even tried manually updating the object spheres usin the cmass functions to get their positions - based on that assumption.

On the bright side, Capt. Ooze works just fine - for what I have it doing right now...

JK
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 11th May 2010 17:23 Edited at: 11th May 2010 17:36
Oh dear, it seems that when testing I told it to just update object 1 and nothing else, I will make the new(fixed) lib and update the post above, just give me half an hour.
Sorry for messing you about.


EDIT: OK thats done, should be fine now.
As far as drawing the physics world, it is something I've considered, if it was not for the visual debugger I probably would have done it by now. As we have the visual debugger I will concentrate on adding different features and then maybe look at it again.

JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 11th May 2010 17:35
Np

That's what we beta testers are for, right?


:p
JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 23rd May 2010 15:41
I know you're busy with finals and all, but what's the status of your demos/help files updates for the official release version?

JTK
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 23rd May 2010 19:18
I would say I only need about a full day on this and it would be done, just need to find a day.If there anything specific that you need to know, I could post some code here.
I'm sorry its taking so long, its a little frustrating as I have a great vehicle demo that just needs tidying up. I have an assignment due on Tuesday so I may try to get this finished on Wednesday.

JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 23rd May 2010 19:35
No hurry really. Just checking up...

Although, I would like an example for collision detection - which objects collide with which...

However, schooling first! I can wait as it's not that entirely neccessary as of yet...

JTK
haliop
User Banned
Posted: 23rd May 2010 22:33
man you just talk talk talk physics stuff , i just want like
to honk..
JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 23rd May 2010 23:59
Quote: "man you just talk talk talk physics stuff , i just want like
to honk.. "


Wednesday, or there abouts.

JTK
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 24th May 2010 02:35
Here's some sample code of how to get and deal with contact data:



NOTE: You need unofficial update to run this code, you can get it a few posts up.

@haliop - You can do vehicles(and beep) with the unofficial update, let me know if you want some sample code, although it should all be done Wednesday anyway, hopefully.

JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 24th May 2010 03:08 Edited at: 24th May 2010 03:09
Hmmm..... This appears to be more complicated than I expected: read time-consuming (cpu-wise)... What does raycasting do? And, how would I use it?

NOTE: I only ask because I have an um-teen number of blocks that AI characters need to "contact" as well as the player (also needing to contact them) plus the player needs to contact the AI characters... Of course, I will (if necessary) make contacts only pertaining to the blocks that the AI characters can collide with but still, thats going to be alot... So, you've mentioned before about raycasting so I'm asking, what does it do and how do I use it?

Sorry, haliop, more physics questions from me, but as Matty says, you can drive and honk already...


JTK

EDIT: NVM - Duh... I don't care about collisions with blocks only between players and AI characters (or projectiles as the need arises). But still, what is raycasting for?
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 24th May 2010 15:00
Raycasting can have lots of uses, it can be used to get a line of sight to see if something is visable from a certain point, that has uses for lighting and AI. There will be lots of little uses also, it depends on your specific problem, if you have any.

binsky
15
Years of Service
User Offline
Joined: 6th Feb 2009
Location:
Posted: 25th May 2010 23:41
Hey matty, im creating a havok plugin for DarkGDK and i need a way of documenting the commands. I really like the way you documented your commands. What did you use to do it?

Thanks!
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 25th May 2010 23:52
They are just HTML pages, if you have never done anything with HTML its quite simple to use, you could learn all the basics in a day.
You can look at the source from your browser, you can even copy mine if you want, just change the titles, commands etc.

Good luck, documentation is a complete nightmare lol.

binsky
15
Years of Service
User Offline
Joined: 6th Feb 2009
Location:
Posted: 26th May 2010 00:17
Ok thanks!
haliop
User Banned
Posted: 26th May 2010 02:05
you can also download freeware html editors , which are pretty good and easy to learn.
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 26th May 2010 12:54
I will probably not finish the next version today, I thought I had a free day but it turns out I don't. Anyway I released the vehicle demo and code, I am hoping the next version will be finished at the weekend

JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 29th May 2010 20:12 Edited at: 29th May 2010 20:20
Could you walk me through using the visual debugger? I've been trying for weeks now and all I get are crashes everytime I try. I even downloaded and installed nvidias visual debugger - same effect.

It doesn't even tell me what's wrong - just that it "stopped working" - see attached. When opening the debugger, it tells me access violation but I figure I'm doing something wrong - just can't figure out what...

JTK

Edit: Here's the output of the Log file when passing -LOG parameter (if it helps - it doesn't me)...

Attachments

Login to view attachments
binsky
15
Years of Service
User Offline
Joined: 6th Feb 2009
Location:
Posted: 29th May 2010 22:16
I have a question... are you using the debug version of Physx libs for this or the release version of the physx libs?
JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 29th May 2010 22:19
I have no idea... lol!

I'm using the version that Fulcrum works with. I did not install the NVIDIA SDK (nor do I plan too) so I'm guessing it's the release version.

JTK
binsky
15
Years of Service
User Offline
Joined: 6th Feb 2009
Location:
Posted: 29th May 2010 22:20
Err, sorry that was meant to go to matty, not you.
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 29th May 2010 23:09
Quote: "When opening the debugger, it tells me access violation but I figure I'm doing something wrong - just can't figure out what..."


Are you saying that the program crashes when you open the debugger?
If you open the debugger without running the program, does it load up OK?
If you tell it to use the debugger, but dont open it, does your program run?

I doubt its something you are doing wrong as all you should have to do is place TRUE in the start() function. I wonder if its possible it can't find it, or your computer is blocking access somehow.

If I was you I would stick to the one I provided as that is the one that came with this version of the SDK.


@binsky - I think I am using release libs, there are CHECKED_ libs, I dont really know if that means debug or what but I dont use them, its not something I have looked into. Why do you ask?

JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 29th May 2010 23:16
Quote: "If you open the debugger without running the program, does it load up OK?"


No! I can't even load the debugger itself, your version or the one I've downloaded.

I was able to see that it was looking on port 5425 (not sure what protocol) but as a test, I completely disabled my firewall entirely and got the same error...

Is there something special I should be doing to even load the debugger itself?

JTK
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 29th May 2010 23:29
Quote: "Is there something special I should be doing to even load the debugger itself?"


No, it should just load up with an empty screen without any issues, then when you run your program it shows you the physics scene being built.

So, I'm guessing it has nothing to do with Fulcrum as its not working even without it. I will google it but other than that I'm completely stumped. I wonder if anyone has had that trouble on here with Dark Physics, have you searched the Dark Physics forum?

JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 29th May 2010 23:38 Edited at: 29th May 2010 23:40
Yes I have. I've Googled, Bing'd and Yahoo'd too... Nothing.

I've tried calling with the -start parameter, -log parameter (that's how I got the Log text to show you earlier) and the -? parameter.

-? loads just fine, until I do a File->New command... then it too bombs.

I thought maybe there's something that I'm missing but apparently not... ;(

Guess I don't get to use the debugger...

Thanks anyway,

JTK

EDIT: Sorry, /? loads fine until I do the File->New option...
binsky
15
Years of Service
User Offline
Joined: 6th Feb 2009
Location:
Posted: 29th May 2010 23:43
Im asking because im not sure which libs i should use. I just switch over from debug to release libs, and my library lib went down by like 20 mbs.
JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 29th May 2010 23:47
Well, binsky, that makes sense as you're not using all of the debug information anymore.

Might I suggest, however, that you provide both options; one for debug (so others can better debug their code) and one for release build...

Matty's already been through this conversation... lol

JTK
binsky
15
Years of Service
User Offline
Joined: 6th Feb 2009
Location:
Posted: 29th May 2010 23:56
Ok ill do that thanks!
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 30th May 2010 00:29
Quote: "Sorry, /? loads fine until I do the File->New option... "


You should not have to do anything, just having it on is all it should need. I don't even know what File->New does. I just tried it(without running a program) and it did nothing.

@binsky - I had trouble making a release lib, let me know how you get on as its something I will need to do soon, although it probably wont be in the next release as I want to get it out there in the next day or two. Also, have you put any thought into a dbPro version, its something I am considering when this is well tested.

JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 30th May 2010 01:24
Well, I thought that maybe you were doing something special with loading the debugger; I guess not. In that case, I guess I don't get a visual debugger...

JTK
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 30th May 2010 01:26
I will keep looking into this as its a great tool, when things don't seem to be working correct it will almost certainly show you whats wrong.

binsky
15
Years of Service
User Offline
Joined: 6th Feb 2009
Location:
Posted: 30th May 2010 01:54
Uhh there is already a dbpro version of havok. Its called xeno its in the work in progress forum. Its made by xarshi, and the two of us are working together kind of.
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 30th May 2010 12:04
Quote: "Uhh there is already a dbpro version of havok. Its called xeno its in the work in progress forum. Its made by xarshi, and the two of us are working together kind of. "


There is already a dbPro/DGDK version of PhysX, I know about xeno physics but different people will implement things differently.
Depending on the interface(API) with your plug-in it might only be a simple job to port it over to dbPro.
Apparently you just need to make a string list and you are more or less done, I was just wondering if you have looked into it yet. Also, its quite possible that Xarshi will release a DGDK version when he is finished.
Once you have made one version its very little effort in comparison to make it available for both GDK and dbPro.

JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 31st May 2010 01:33
Alright matty, a few questions for you:

1) I've been looking into the contact-reports and I've noticed that once a pair is setup, we can't clear it again. Was this by design?

2) Since I can't clear a contact-pair via some normal means, will ReleaseController()/ReleaseActor() clear the id that it represents from the list for me?

3) Can I even use a controller as one of the id's in a contact pair?

I ask because I've come to a point within Capt. Ooze that I need to consider how contacts/collisions will be handled.

Unfortunately, the way that I've designed my Entities/Objects appears to be making things difficult (the fact that they are encapsulated as objects and not just ID values).

JTK
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 31st May 2010 12:04 Edited at: 31st May 2010 13:07
Some good questions there, I have not had time to actally use any of this in a project so its good that you bring these issues to my attention.

1) I will look into this, seems to make sense that you should be able to clear the contact pair.

2) I would say it would, but I would need to try it, although that may not be ideal for certain situations so I will try to address (1) asap.

3) I will look into this today also.

Do your entities not hold a reference to their ID numbers?
Also, you might be able to wrap the contact report functions so they take your entities and give you a simpler interface with contact reports.

I was looking to release this tonight but they are some important issues you have raised so I will look into this first, official release may well be tomorrow night. Thanks for helping me JTK.


EDIT: New version will have FulcrumPhy::releaseContactPair(), also I just did a quick test and controllers do work with contact reports phew.
There should be more functions in the release after this one for contacts, for instance, getting the point of contact, setting up group contacts etc. But you need to draw the line somewhere and release it so you guys can use it and test it for me

JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 31st May 2010 13:57 Edited at: 31st May 2010 14:08
So what is the signature for releasePair()? It may be too late, but I would like to be able to pass an ID and say remove that ID from all contact pairs;

removeFromContactList( playerID, 0 );

Otherwise, I'll have to keep track of every combination I setup manually myself; possible but...

Thanks for considering,

JTK

Edit: In the example above,

0 = Remove All,
1 = Remove those added with setContactPair( playerID, objA );
2 = Remove those added with setContactPair( objA, playerID );

Not sure if there's a difference between the two types of calls or not, but if there is I'd like the extra control...

Again, it may be too late for this but I have to ask if it's still up in the air...
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 31st May 2010 15:26


Since you are the only person waiting on the next release as far as I know then I will look into any features you need before I release it.

I can see how these proposed new commands would be very useful, I will check how contact groups work first as this could be the answer, if its not then I will look at what else the PhysX SDK offers on this.

JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 31st May 2010 20:00
Ok. If it'll help you understand my dilema, here's how my objects are related:

First off, I have two namespaces within the project:

namespace TOOLBOX:: - houses the lower level wrapper classes that encapsulate the GDK's functionality. During the encapsulation process, the various ID's required are assigned/maintained internally. This way, the programmer using the TOOLBOX:: doesn't need to be concerned with ID's and their management.

The TOOLBOX:: contains several classes:

CEntityObject: Base class that encapsulates the GDK's dbObject suite of commands (most but not all are encapsulated).

CEntity : public CEntityObject : Inherited class that is really a "collection" of CEntityObject's stored in an std::vector<> to represent various animation states.

There are a few other classes within the TOOLBOX:: namespace, but the ones above are the main classes of concern. NOTE: Physics is not built into any of the TOOLBOX:: classes (except for an ISingleton access to the Fulcrum_Physics object - I really don't care for globals LOL )

namespace CAPT_OOZE:: - holds the Capt. Ooze Specific sub-classes.

CPlayer : ... public CEntity - The player object. Remember that CEntity holds other CEntityObject pointers internally via an std::vector<>. In this way, a player is not a single object (or more specifically ID) but a collection of objects that are used to represent his/her various animation states (Boot, Shield, Glove, Kite, Spring etc.)

CLitterBug : ... public CEntity - One of the LitterBugs of the game. Again, a Litterbug object does not define a single object but a collection of several objects that represent the various states (in our case IDLE, ATTACK, MOVE, DIE etc.)

Now, the way it's setup currently, when we change from one state to another, a call to SetCurrentObject(new_state) must be made. This is where I manipulate the physics aspsects (controllers/actors [and soon to be contact-pairs]). Since each "entity" has several "objects" to represent its states, I can't just create a new physics-actor that provides support for all of the states. The SwapObject() method may work for actors (I haven't tried), but with CPlayer being a controller, I have found out that it doesn't work (I first reported that it does but was incorrect)...

So, instead, at present - everytime I call SetCurrentObject(), I have to release the controller/actor and recreate a new one for the newly assigned object (state)... No big deal, works like a charm as I have it now...

Are you with me so far?

CPlayer has 9-states. That's 9-different CEntityObject pointers stored within it std::vector<>
CLitterbug has 5-states. That's 5-different CEntityObject pointers stored within its std::vector<>

There are, at present, 28 different CLitterbug types (Babe, Amazon, Ninja etc) however, only about 15 are being used presently (testing). There are, however, a total of 48 different instances of the various litterbugs in the game-level as it stands now...

So that's, 9 * 5 * 48 = 2160 contact-pairs that would need to be setup at load time... I do know each Object-ID at load time.

All that background for this:

So, assuming Physics-ID will always be the same as Object-ID, can I setup a contact-pair even before the actor/controller is even "created"?


JTK

NOTE: The attached .PNG file shows the entire class hierarchy of the Capt.Ooze game. It may look complicated, but it's really not! It is a large file though, you'll have to Zoom in/out to get a feel for the entire structure...

Attachments

Login to view attachments
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 31st May 2010 21:11
You will not be able to setup contact pairs for actors/controllers that don't exist.
You may be able to setup all your actors/controllers at the start and enable/disable collisions as you show/hide your objects. When your object changes state you would need to enable collision for the controller and teleport it to the new position. If we are lucky, once collision is disabled, the contacts should not be reported, but that would need testing.
Does that sound right, I may not have completely understood?

I may look into the swapObject() command again to see if it can be done with controllers.

I once posted to ask if you should use different objects for different animations or one large file, I'm starting to think the one large file option may cause less headaches. Did you ever try the append object function? although your whole system is based on multiple objects so it might not be worth the hassle to go back and implement a new system.

Also, what did you do your class diagrams on and is it free?

JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 31st May 2010 21:55
Quote: "
I once posted to ask if you should use different objects for different animations or one large file, I'm starting to think the one large file option may cause less headaches.

...

Did you ever try the append object function?
"


That would be a fine option, until you use a non-GDK (Dark-Matter) object. Dark-Matter does seem to enforce the Limb-Name/Number requirements of dbAppendObject() command, but what happens when I use some 3rd party model that doesn't follow those rules? That's what I was thinking when I designed it this way...

I suppose I could create all actors/controllers at start-up but *wow* that's gonna complicate things even more... Maybe I'll just wait until you have a chance to look at swapObject() - so much simpler that way...

Quote: "
although your whole system is based on multiple objects so it might not be worth the hassle to go back and implement a new system.
"


That's the beauty of the design (OOP), I can find the lowest level of abstraction that would need to be changed and change it there (in this case, it's probably at the CEntity level) - but once changed at that level, those changes would carry forward. NOTE: I'm already considering this as an option...

Quote: "
Also, what did you do your class diagrams on and is it free?
"


I'm using the VC++ Team Suite edition (the company I worked for purchased a license for me to work at home too) and it comes with it. Unfortunately, I'm no longer with that company, but I got to keep my license (part of the termination package when they had to cut-back). I don't know if it comes with the Express edition (probably not). Needless to say, I'm not looking into upgrading to VC-2010 any time soon... I like it cause I can just tell VC++ to "draw me a class diagram" based on the code in the project and it does it...

There is, apparently, a free UML editor - Haliop references it in another thread... Wish I could remember which one it was, I'd post a link here - but alas, I don't...
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 31st May 2010 22:29
I have just changed the swap function so it also works with controllers, it was quite simple but you have to remember that once you swap to a new object, the controller is also referenced with this new ID, I cant see this as being a problem in fact it may be easier this way. If you do try and call a function, like moveController() with the old ID then you will get an exception.

Quote: "I can just tell VC++ to "draw me a class diagram" based on the code in the project and it does it... "


This is very cool, I have a free UML editor(violet) but your one draws nicer looking diagrams .

JTK
14
Years of Service
User Offline
Joined: 10th Feb 2010
Location:
Posted: 31st May 2010 22:42 Edited at: 31st May 2010 22:53
Quote: "
I have just changed the swap function so it also works with controllers, it was quite simple but you have to remember that once you swap to a new object, the controller is also referenced with this new ID...
"


First, how will this affect the contact-pairs? Or do I still need to worry about how I'm setting them up?

And, when can I expect the update for testing?

JTK

EDIT:

Ok, after reading it, I can see how that could be a bit confusing so let me rephrase:

Now that SwapObject() will work with controllers, knowing that the old-id is no longer valid, does the new-id swapped out replace the old-id's in contact-pair settings? Or do I still need to removefromContactList(old-id) and setcontactpair(new-id)?

Is that a better form of the question...?
Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 1st Jun 2010 00:11 Edited at: 1st Jun 2010 00:28
At the moment, the contact will still be recognised but it will return the ID's that the contact pair was initially set up with, this is not a design choice its just the way it is at the moment.
I'm sure I could change this and I think I will, it should really return the new ID for the actor.

I could release this soon as it is now, or I could change it, but as time is limited it could put it back a day or two.


While testing this out I have come across some other issues

Firstly, I could not setup a contact pair with a triangle mesh actor.
Also, contacts are only recorded between controllers and dynamic actors if the dynamic actor hits the controller and not the other way around.

I need to investigate these issues, will any of these affect your project?


EDIT: I have changed it so the contact will return the new ID number, note that you do not have to setup another contact pair, just using swapObject() is enough. So, if I'm right, for your situation, you would setup one contact pair for your initial controller, when you use swapObject() the controller stays the same but it will now control a new model and the new models ID number is returned in any contact as that is the new ID for moving the controller.
Does that sound OK?
If so, then its just a matter of the new issues I discovered and whether they will affect you at the moment?

Login to post a reply

Server time is: 2024-04-19 10:31:40
Your offset time is: 2024-04-19 10:31:40