|
|
ackphysx.dll community version
#385098
10/12/11 22:57
10/12/11 22:57
|
Joined: Jul 2001
Posts: 6,904
HeelX
OP
Senior Expert
|
OP
Senior Expert
Joined: Jul 2001
Posts: 6,904
|
Hi, as some may have noticed, I needed to modify the ackphysx.dll to add some things which were not yet implemented, like prismatic joints ( see here ). I made it working under Visual Studio 2005 and since I am working on a project that relies on PhysX, I am currently developing it further. I hosted it over at SourceForge, because since JCL released the source of the ackphysx.dll for free, I do so, too: PhysX for A8 SourceForge pageIf you want just the updated ackphysx.dll and the header, just go to https://sourceforge.net/projects/a8physx...0header%20file/ and download the latest archive. If you just want to get the whole source, checkout with SVN via http://svn.code.sf.net/p/a8physx/code/ You can also contribute new features if you like, for this you have to have a user account on SourceForge and then you can checkout and commit via SVN from/to https://svn.code.sf.net/p/a8physx/codeHere are the current list of additions / bugfixes / whatever: -new: prismatic joints -fixed: inverted axis used for limits on slider/prismatic joints - pXcon_getposition returned radians instead of degrees (fixed) - added: BOOL pXconGetPrismaticLimits (ENTITY* e, VECTOR* vInit, VECTOR* vLimitForw, VECTOR* vLimitBackw), which fetches the position, in which the prismatic (!) constraint has been formed (vInit), the position, where the forward limit point has been set (vLimitForw) and where the backward limit point is (vLimitBackw). Returns false, if anything went wrong. - bugfix: pXcon_add has been changed for PH_PRISMATIC joints, so that the global anchor is -always- defined for the position of the 1st entity. This way, the anchor is correctly returned with pXconGetPrismaticLimits and pXcon_getposition, so that is settled on the joint axis. - added: helper function NxToVec, which transfers a NxVec3 correctly from PhysX domain into world space VECTOR, corresponding to PhX.NXSize - added: helper function NxForVec, which transfers a VETCOR correctly from Gamestudio domain into world space PhysX NxVec3, corresponding to PhX.NXSize (this will replace in a long term NxforVEC, which doesn't scale by PhX.NXSize). I want to underline that I am doing this for free and that the dll can, and most likely will not correspond with the official ackphysx.dll  so don't expect that you can just copy over this one and everything works, please read the changelog to get to know what features went in and what changed  I post updates here, have fun! Kind regards, -Christian
Last edited by HeelX; 10/12/11 23:03.
|
|
|
Re: ackphysx.dll community version
[Re: HeelX]
#385113
10/13/11 07:00
10/13/11 07:00
|
Joined: Mar 2006
Posts: 1,993 Karlsruhe
PadMalcom
Serious User
|
Serious User
Joined: Mar 2006
Posts: 1,993
Karlsruhe
|
This is really nice, we can only hope that OPGroup picks up all the good features and finally implements it into the official dll. Btw, I'm really looking forward to your current project! AND I'm happy that you solve the physx-problems yourself, so more time for my new WED 
|
|
|
Re: ackphysx.dll community version
[Re: 3run]
#385118
10/13/11 08:33
10/13/11 08:33
|
Joined: Jul 2001
Posts: 6,904
HeelX
OP
Senior Expert
|
OP
Senior Expert
Joined: Jul 2001
Posts: 6,904
|
This is really nice, we can only hope that OPGroup picks up all the good features and finally implements it into the official dll. Well, as long as I did no errors, you can of course also try this one  One question, will this work with A7? I don't know... theoretically, yes, since both entity structs under A7 and A8 have a void* body; attribute for PhysX. But I think there are some reasons, why the physX_open function terminates, when not A8 is used. I guess it is related to on_level_load and on_ent_remove, are there existent in A7? It would be great if you could try it out. Download the current dll and the current header and try to modify the functions in ackphysx.h...? If it is just the events, I guess we can work it out by providing replacement functions for level_load, ent_remove and so on that trigger the same events.
Last edited by HeelX; 10/13/11 08:34.
|
|
|
Re: ackphysx.dll community version
[Re: HeelX]
#385120
10/13/11 08:48
10/13/11 08:48
|
Joined: Feb 2009
Posts: 3,207 Germany, Magdeburg
Rei_Ayanami
Expert
|
Expert
Joined: Feb 2009
Posts: 3,207
Germany, Magdeburg
|
Well, you will need to recompile the dll, because there is a version check in one function (something like
If(v(version) < _VAR(8)) return _VAR(0);
(line 48 / physX_load() )
Last edited by Rei_Ayanami; 10/13/11 09:06.
|
|
|
Re: ackphysx.dll community version
[Re: Rei_Ayanami]
#385170
10/13/11 22:03
10/13/11 22:03
|
Joined: Jul 2001
Posts: 6,904
HeelX
OP
Senior Expert
|
OP
Senior Expert
Joined: Jul 2001
Posts: 6,904
|
- added constraint type identifiers and marked the old ones as deprecated (still valid): PH_SPHERICAL for PH_BALL, PH_REVOLUTE for PH_HINGE, PH_CYLINDRICAL for PH_SLIDER and PH_DISTANCE for PH_ROPE - added constraint types for (yet unsupported): PH_FIXED, PH_POINTINPLANE, PH_POINTONLINE, PH_PULLEY (commented in the Lite-C header; available internally) - added internal DLL function pXconGetJointData to remove overhead for joint functions; will reduce code in the future - added internal DLL function int pXconGetType (ENTITY* e, int* refType) to retrieve constraint type in DLL scope (int); supports the unsupported constraints also (upward compatibility!) - added external DLL function var pXconGetType (ENTITY* e), which returns the constraint type in Lite-C scope (var)
Last edited by HeelX; 10/13/11 22:03.
|
|
|
Re: ackphysx.dll community version
[Re: HeelX]
#386246
10/31/11 15:01
10/31/11 15:01
|
Joined: Jul 2001
Posts: 6,904
HeelX
OP
Senior Expert
|
OP
Senior Expert
Joined: Jul 2001
Posts: 6,904
|
LITE-C: - new: pXentScaleMass scales the mass of an entity by a scale factor
- new: pXentIsWheel returns, if an entity is a wheel or not
- new: pXconGetChassis (ENTITY* e) returns the chassis entity of an entity e that was assigned to the chassis entity with a wheel constraint
- bugfix: each new added wheel/joint constraint to an entity was saved as a to-1 associations, so, old constraints were overwritten
- new: pXconNumJoints/-Wheel returns the number of associated joints/wheels of an entity
- new: pXconGetJoint/-Wheel.. functions return joints/wheels of an entity
- new: pXconRemoveJoint/-Wheel... functions removes and releases joints/wheels of an entity
INTERNAL: - the JointUserData class got it's own cpp/h file
- static JointUserData::fromEntity (ENTITY* e) returns the joint user data of an entity
- JointUserData holds now unlimited joint & wheel constraints, with getter and setter functions
- all legacy functions that accessed the Joint or Wheel member of JointUserData were refactored to get and use the first Joint/Wheel, but..
- pXcon_remove releases all joints of an actor, of course, and
- if pXcon_remove is used on a wheel, the association is removed in the chassis entity as well
- void *Joint & *Wheel were removed from the JointUserData class
- new helper: pXconReleaseJoint releases an NxJoint* joint (all associations remain)
- new helper: pXconReleaseWheel releases a NxWheelShape* wheel (all associations remain)
download just the new dll and the header (ackphysx.20111031.dll.h.rar) or checkout via SVN from http://svn.code.sf.net/p/a8physx/code/
|
|
|
Re: ackphysx.dll community version
[Re: HeelX]
#386248
10/31/11 15:15
10/31/11 15:15
|
Joined: Dec 2008
Posts: 1,218 Germany
Rackscha
Serious User
|
Serious User
Joined: Dec 2008
Posts: 1,218
Germany
|
Good work  . I know you just started with it but are you planning on going to implement things like destruction in the future?
MY Website with news of my projects: (for example my current Muliplayer Bomberman, GenesisPrecompiler for LiteC and TileMaster, an easy to use Tile editor) Sparetime-Development
|
|
|
|