// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
#pragma once
namespace physx
{
class PxRigidActor;
class PxTransform;
}
///
/// A base interface for all physical actors types/owners that can responds on transformation changed event.
///
class FLAXENGINE_API IPhysicsActor
{
public:
///
/// Finalizes an instance of the class.
///
virtual ~IPhysicsActor() = default;
///
/// Gets the rigid actor (PhysX object) may be null.
///
/// PhysX rigid actor or null if not using
virtual physx::PxRigidActor* GetRigidActor() = 0;
///
/// Called when actor's active transformation gets changed after the physics simulation step.
///
///
/// This event is called internally by the Physics service and should not be used by the others.
///
/// The current transformation.
virtual void OnActiveTransformChanged(const physx::PxTransform& transform) = 0;
};