// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved. #pragma once #include "Engine/Level/Actor.h" #include "Engine/Physics/Types.h" #include "IPhysicsActor.h" /// /// A base class for all physical actors. /// /// API_CLASS(Abstract) class FLAXENGINE_API PhysicsActor : public Actor, public IPhysicsActor { DECLARE_SCENE_OBJECT_ABSTRACT(PhysicsActor); protected: Vector3 _cachedScale; bool _isUpdatingTransform; public: /// /// Gets the native PhysX actor object. /// /// The PhysX actor. virtual PxActor* GetPhysXActor() = 0; /// /// Updates the bounding box. /// void UpdateBounds(); public: // [Actor] bool IntersectsItself(const Ray& ray, float& distance, Vector3& normal) override; // [IPhysicsActor] void OnActiveTransformChanged(const PxTransform& transform) override; protected: // [Actor] void OnTransformChanged() override; };