Преглед на файлове

Ability to copy a GroupFilterTable and ability to re-enable a sub group pair

jorrit преди 4 години
родител
ревизия
908806bef7
променени са 1 файла, в които са добавени 10 реда и са изтрити 0 реда
  1. 10 0
      Jolt/Physics/Collision/GroupFilterTable.h

+ 10 - 0
Jolt/Physics/Collision/GroupFilterTable.h

@@ -66,6 +66,9 @@ public:
 		mTable.resize(table_size, 0xff);
 	}
 
+	/// Copy constructor
+							GroupFilterTable(const GroupFilterTable &inRHS) : mNumSubGroups(inRHS.mNumSubGroups), mTable(inRHS.mTable) { }
+
 	/// Disable collision between two sub groups
 	void					DisableCollision(SubGroupID inSubGroup1, SubGroupID inSubGroup2)
 	{
@@ -73,6 +76,13 @@ public:
 		mTable[bit >> 3] &= (0xff ^ (1 << (bit & 0b111)));
 	}
 
+	/// Enable collision between two sub groups
+	void					EnableCollision(SubGroupID inSubGroup1, SubGroupID inSubGroup2)
+	{
+		int bit = GetBit(inSubGroup1, inSubGroup2);
+		mTable[bit >> 3] |= 1 << (bit & 0b111);
+	}
+
 	/// Checks if two CollisionGroups collide
 	virtual bool			CanCollide(const CollisionGroup &inGroup1, const CollisionGroup &inGroup2) const override
 	{