void RigidBody::ApplyImpulse(const float3& impulse, const float3& position) { // Cannot modify server-authoritative physics object if (!HasAuthority()) return; // If impulse is very small, do not wake up the body and apply if (impulse.LengthSq() < cImpulseThresholdSq) return; if (!impl->body) CreateBody(); if (impl->body) { Activate(); if (position.Equals(float3::zero)) impl->body->applyCentralImpulse(impulse); else impl->body->applyImpulse(impulse, position); } }
bool Triangle::IsDegenerate(const float3 &a, const float3 &b, const float3 &c, float epsilon) { return a.Equals(b, epsilon) || a.Equals(c, epsilon) || b.Equals(c, epsilon); }