Browse Source

Remove PhysX Dependency from plExcludeRegionMod

Adam Johnson 12 years ago
parent
commit
061f129e70
  1. 1
      Sources/Plasma/PubUtilLib/plModifier/CMakeLists.txt
  2. 6
      Sources/Plasma/PubUtilLib/plModifier/plExcludeRegionModifier.cpp
  3. 4
      Sources/Plasma/PubUtilLib/plPhysX/plPXPhysical.cpp
  4. 5
      Sources/Plasma/PubUtilLib/plPhysX/plPXPhysical.h

1
Sources/Plasma/PubUtilLib/plModifier/CMakeLists.txt

@ -4,7 +4,6 @@ include_directories("../../NucleusLib/inc")
include_directories("../../NucleusLib") include_directories("../../NucleusLib")
include_directories("../../PubUtilLib") include_directories("../../PubUtilLib")
include_directories(${PHYSX_INCLUDE_DIRS})
include_directories(${OPENAL_INCLUDE_DIR}) include_directories(${OPENAL_INCLUDE_DIR})
set(plModifier_SOURCES set(plModifier_SOURCES

6
Sources/Plasma/PubUtilLib/plModifier/plExcludeRegionModifier.cpp

@ -62,7 +62,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
//for hack //for hack
#include "plPhysX/plPXPhysical.h" #include "plPhysX/plPXPhysical.h"
#include "plPhysX/plPXPhysicalControllerCore.h" #include "plPhysX/plPXPhysicalControllerCore.h"
#include <NxCapsule.h>
static plPhysical* GetPhysical(plSceneObject* obj) static plPhysical* GetPhysical(plSceneObject* obj)
{ {
if (obj) if (obj)
@ -310,9 +310,7 @@ void plExcludeRegionModifier::IMoveAvatars()
for (int i=0;i<actualCount;i++) for (int i=0;i<actualCount;i++)
{ {
NxCapsule cap; if (phys->OverlapWithController(controllers[i]))
controllers[i]->GetWorldSpaceCapsule(cap);
if(phys->OverlapWithCapsule(cap))
{ {
plSceneObject* so = plSceneObject::ConvertNoRef(controllers[i]->GetOwner()->ObjectIsLoaded()); plSceneObject* so = plSceneObject::ConvertNoRef(controllers[i]->GetOwner()->ObjectIsLoaded());
const plArmatureMod* constAvMod = (plArmatureMod*)so->GetModifierByType(plArmatureMod::Index()); const plArmatureMod* constAvMod = (plArmatureMod*)so->GetModifierByType(plArmatureMod::Index());

4
Sources/Plasma/PubUtilLib/plPhysX/plPXPhysical.cpp

@ -1080,8 +1080,10 @@ void plPXPhysical::ExcludeRegionHack(bool cleared)
plPXPhysicalControllerCore::RebuildCache(); plPXPhysicalControllerCore::RebuildCache();
} }
bool plPXPhysical::OverlapWithCapsule(NxCapsule& cap) bool plPXPhysical::OverlapWithController(const plPXPhysicalControllerCore* controller)
{ {
NxCapsule cap;
controller->GetWorldSpaceCapsule(cap);
NxShape* shape = fActor->getShapes()[0]; NxShape* shape = fActor->getShapes()[0];
return shape->checkOverlapCapsule(cap); return shape->checkOverlapCapsule(cap);
} }

5
Sources/Plasma/PubUtilLib/plPhysX/plPXPhysical.h

@ -182,9 +182,8 @@ public:
// This weeds those out. // This weeds those out.
bool IsDynamic() const; bool IsDynamic() const;
//Hack to check if there is an overlap with the capsule //Hack to check if there is an overlap with the avatar controller
//this partially for exclude regions vs avatar capsule bool OverlapWithController(const class plPXPhysicalControllerCore* controller);
virtual bool OverlapWithCapsule(NxCapsule& cap);
virtual float GetMass() {return fMass;} virtual float GetMass() {return fMass;}
protected: protected:

Loading…
Cancel
Save