Show
Ignore:
Timestamp:
2010-03-05 10:12:21 (6 months ago)
Author:
kickvb
Message:

- Made the debug colliders be cleared when toggling mode of the dynamics debugger
- Added method to update the display of the dynamics debugger
- Added display of the static/kinematic colliders
- Added methods to choose the colors of the static/dynamic/kinematic colliders

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • CS/trunk/plugins/physics/dyndebug/dyndebug.h

    r33668 r33752  
    2626#include "csutil/leakguard.h" 
    2727#include "csutil/weakref.h" 
    28 #include "csutil/refarr.h" 
     28#include "csutil/list.h" 
     29#include "ivaria/bullet.h" 
    2930#include "ivaria/dynamicsdebug.h" 
    3031 
     
    4041{ 
    4142  class DynamicsDebugger; 
     43  class BoneKinematicCallback; 
    4244 
    4345  class DebuggerManager : public scfImplementation2<DebuggerManager, 
     
    7678    virtual void SetDynamicSystem (iDynamicSystem* system); 
    7779    virtual void SetDebugSector (iSector* sector); 
     80 
    7881    virtual void SetDebugDisplayMode (bool debugMode); 
     82    virtual void UpdateDisplay (); 
     83 
     84    virtual void SetStaticBodyMaterial (iMaterialWrapper* material); 
     85    virtual void SetDynamicBodyMaterial (iMaterialWrapper* material); 
     86    virtual void SetBodyStateMaterial (csBulletState state, 
     87                                       iMaterialWrapper* material); 
    7988 
    8089  private: 
     90    csRef<iMeshWrapper> CreateColliderMesh (iDynamicsSystemCollider* collider, 
     91                                            iMaterialWrapper* material); 
     92 
    8193    csRef<iMeshWrapper> CreateBoxMesh (csBox3 box, 
    8294                                       iMaterialWrapper* material, 
     
    108120    struct MeshData 
    109121    { 
    110       csRef<iMeshWrapper> mesh; 
    111       //csOrthoTransform transform; 
     122      csWeakRef<iRigidBody> rigidBody; 
     123      csRef<iMeshWrapper> originalMesh; 
     124      csRef<iMeshWrapper> debugMesh; 
     125      csRef<BoneKinematicCallback> callback; 
    112126    }; 
    113127 
     
    115129    csRef<iDynamicSystem> system; 
    116130    csRef<iSector> sector; 
    117     csRef<iMaterialWrapper> material; 
     131    csRef<iMaterialWrapper> materials[3]; 
    118132    bool debugMode; 
    119     csHash<MeshData, csPtrKey<iRigidBody> > storedMeshes; 
     133    csList<MeshData> storedMeshes; 
     134  }; 
     135 
     136 
     137  class BoneKinematicCallback : public scfImplementation1 
     138    <BoneKinematicCallback, iBulletKinematicCallback> 
     139  { 
     140  public: 
     141    BoneKinematicCallback (iMeshWrapper* mesh, 
     142                           iBulletKinematicCallback* callback); 
     143    ~BoneKinematicCallback (); 
     144 
     145    void GetBodyTransform (iRigidBody* body, csOrthoTransform& transform) const; 
     146 
     147  private: 
     148    csWeakRef<iMeshWrapper> mesh; 
     149    csRef<iBulletKinematicCallback> callback; 
     150 
     151    friend class DynamicsDebugger; 
    120152  }; 
    121153