void RigidBody2D::RemoveConstraint2D(Constraint2D* constraint) { if (!constraint) return; WeakPtr<Constraint2D> constraintPtr(constraint); constraints_.Remove(constraintPtr); }
void RigidBody2D::AddConstraint2D(Constraint2D* constraint) { if (!constraint) return; WeakPtr<Constraint2D> constraintPtr(constraint); if (constraints_.Contains(constraintPtr)) return; constraints_.Push(constraintPtr); }
void ConstraintGear2D::SetOtherConstraint(Constraint2D* constraint) { ea::weak_ptr<Constraint2D> constraintPtr(constraint); if (constraintPtr == otherConstraint_) return; if (otherConstraint_) otherConstraint_->SetAttachedConstraint(nullptr); otherConstraint_ = constraintPtr; if (otherConstraint_) otherConstraint_->SetAttachedConstraint(this); RecreateJoint(); MarkNetworkUpdate(); }