فهرست منبع

Added BodyInterface::SetIsSensor/IsSensor functions

Fixes #1678
Jorrit Rouwe 1 ماه پیش
والد
کامیت
2bbc886de1
2فایلهای تغییر یافته به همراه22 افزوده شده و 0 حذف شده
  1. 16 0
      Jolt/Physics/Body/BodyInterface.cpp
  2. 6 0
      Jolt/Physics/Body/BodyInterface.h

+ 16 - 0
Jolt/Physics/Body/BodyInterface.cpp

@@ -991,6 +991,22 @@ bool BodyInterface::GetUseManifoldReduction(const BodyID &inBodyID) const
 		return true;
 		return true;
 }
 }
 
 
+void BodyInterface::SetIsSensor(const BodyID &inBodyID, bool inIsSensor)
+{
+	BodyLockWrite lock(*mBodyLockInterface, inBodyID);
+	if (lock.Succeeded())
+		lock.GetBody().SetIsSensor(inIsSensor);
+}
+
+bool BodyInterface::IsSensor(const BodyID &inBodyID) const
+{
+	BodyLockRead lock(*mBodyLockInterface, inBodyID);
+	if (lock.Succeeded())
+		return lock.GetBody().IsSensor();
+	else
+		return false;
+}
+
 void BodyInterface::SetCollisionGroup(const BodyID &inBodyID, const CollisionGroup &inCollisionGroup)
 void BodyInterface::SetCollisionGroup(const BodyID &inBodyID, const CollisionGroup &inCollisionGroup)
 {
 {
 	BodyLockWrite lock(*mBodyLockInterface, inBodyID);
 	BodyLockWrite lock(*mBodyLockInterface, inBodyID);

+ 6 - 0
Jolt/Physics/Body/BodyInterface.h

@@ -275,6 +275,12 @@ public:
 	bool						GetUseManifoldReduction(const BodyID &inBodyID) const;
 	bool						GetUseManifoldReduction(const BodyID &inBodyID) const;
 	///@}
 	///@}
 
 
+	///@name Sensor
+	///@{
+	void						SetIsSensor(const BodyID &inBodyID, bool inIsSensor);
+	bool						IsSensor(const BodyID &inBodyID) const;
+	///@}
+
 	///@name Collision group
 	///@name Collision group
 	///@{
 	///@{
 	void						SetCollisionGroup(const BodyID &inBodyID, const CollisionGroup &inCollisionGroup);
 	void						SetCollisionGroup(const BodyID &inBodyID, const CollisionGroup &inCollisionGroup);