Ignore:
Timestamp:
Jul 15, 2012, 1:17:00 PM (10 years ago)
Author:
touky
Message:

Added Collision group & mask support.
+ weird racist test : the primitives only collide with their same type.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/PhysicObject.h

    r1621 r1631  
    2727                m_mesh.Compile("[sc#ddd afcb60 1 60 -.1]");
    2828                vec3 BoxSize = vec3(60.f, 1.f, 60.f);
     29                m_physics.SetCollisionChannel(0, 0xFF);
    2930                m_physics.SetShapeToBox(BoxSize);
    3031                m_physics.SetMass(.0f);
     
    8687                m_mesh.Compile(MeshRand[RandValue]);
    8788                vec3 BoxSize = vec3(2.0f);
     89                int ColGroup = 1;
    8890                if (RandValue < SphereLimit)
     91                {
    8992                        m_physics.SetShapeToBox(BoxSize);
     93                        ColGroup += 0;
     94                }
    9095                else if (RandValue < ConeLimit)
     96                {
    9197                        m_physics.SetShapeToSphere(BoxSize.x * 2.f);
     98                        ColGroup += 1;
     99                }
    92100                else if (RandValue < CylLimit)
     101                {
    93102                        m_physics.SetShapeToCone(BoxSize.x, BoxSize.y);
     103                        ColGroup += 2;
     104                }
    94105                else if (RandValue < CapsLimit)
     106                {
    95107                        m_physics.SetShapeToCylinder(BoxSize);
     108                        ColGroup += 3;
     109                }
    96110                else
     111                {
    97112                        m_physics.SetShapeToCapsule(BoxSize.x, BoxSize.y);
     113                        ColGroup += 4;
     114                }
    98115
     116                m_physics.SetCollisionChannel(ColGroup, (1<<ColGroup)|(1));
    99117                m_physics.SetMass(base_mass);
    100118                m_physics.SetTransform(base_location);
Note: See TracChangeset for help on using the changeset viewer.