// Copyright (C) 2009-present, Panagiotis Christopoulos Charitos and contributors. // All rights reserved. // Code licensed under the BSD License. // http://www.anki3d.org/LICENSE #pragma once #include #include namespace anki { /// @addtogroup physics /// @{ /// Wrapper on top of Jolt joints. class PhysicsJoint : public PhysicsObjectBase { ANKI_PHYSICS_COMMON_FRIENDS friend class PhysicsJointPtrDeleter; private: union { ClassWrapper m_base; ClassWrapper m_point; ClassWrapper m_hinge; }; PhysicsBodyPtr m_body1; PhysicsBodyPtr m_body2; PhysicsJoint() : PhysicsObjectBase(PhysicsObjectType::kJoint) { ANKI_ASSERT(&m_base == static_cast(&m_point)); ANKI_ASSERT(&m_base == static_cast(&m_hinge)); } ~PhysicsJoint() { m_base.destroy(); } }; /// @} } // end namespace anki