diff --git a/Source/Engine/Physics/Colliders/BoxCollider.cpp b/Source/Engine/Physics/Colliders/BoxCollider.cpp index fde3b4632..b80b68de0 100644 --- a/Source/Engine/Physics/Colliders/BoxCollider.cpp +++ b/Source/Engine/Physics/Colliders/BoxCollider.cpp @@ -1,7 +1,6 @@ // Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. #include "BoxCollider.h" -#include "Engine/Serialization/Serialization.h" #include "Engine/Physics/PhysicsBackend.h" BoxCollider::BoxCollider(const SpawnParams& params) @@ -116,24 +115,6 @@ bool BoxCollider::IntersectsItself(const Ray& ray, Real& distance, Vector3& norm return _bounds.Intersects(ray, distance, normal); } -void BoxCollider::Serialize(SerializeStream& stream, const void* otherObj) -{ - // Base - Collider::Serialize(stream, otherObj); - - SERIALIZE_GET_OTHER_OBJ(BoxCollider); - - SERIALIZE_MEMBER(Size, _size); -} - -void BoxCollider::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) -{ - // Base - Collider::Deserialize(stream, modifier); - - DESERIALIZE_MEMBER(Size, _size); -} - void BoxCollider::UpdateBounds() { // Cache bounds diff --git a/Source/Engine/Physics/Colliders/BoxCollider.h b/Source/Engine/Physics/Colliders/BoxCollider.h index 0cc0e7be9..5bcc21b45 100644 --- a/Source/Engine/Physics/Colliders/BoxCollider.h +++ b/Source/Engine/Physics/Colliders/BoxCollider.h @@ -12,6 +12,7 @@ API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Colliders/Box Collider\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API BoxCollider : public Collider { + API_AUTO_SERIALIZATION(); DECLARE_SCENE_OBJECT(BoxCollider); private: Float3 _size; @@ -49,8 +50,6 @@ public: void OnDebugDrawSelected() override; #endif bool IntersectsItself(const Ray& ray, Real& distance, Vector3& normal) override; - void Serialize(SerializeStream& stream, const void* otherObj) override; - void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) override; protected: // [Collider] diff --git a/Source/Engine/Physics/Colliders/CapsuleCollider.cpp b/Source/Engine/Physics/Colliders/CapsuleCollider.cpp index 98346b0a9..20f28e883 100644 --- a/Source/Engine/Physics/Colliders/CapsuleCollider.cpp +++ b/Source/Engine/Physics/Colliders/CapsuleCollider.cpp @@ -1,7 +1,6 @@ // Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. #include "CapsuleCollider.h" -#include "Engine/Serialization/Serialization.h" CapsuleCollider::CapsuleCollider(const SpawnParams& params) : Collider(params) @@ -81,26 +80,6 @@ bool CapsuleCollider::IntersectsItself(const Ray& ray, Real& distance, Vector3& return _orientedBox.Intersects(ray, distance, normal); } -void CapsuleCollider::Serialize(SerializeStream& stream, const void* otherObj) -{ - // Base - Collider::Serialize(stream, otherObj); - - SERIALIZE_GET_OTHER_OBJ(CapsuleCollider); - - SERIALIZE_MEMBER(Radius, _radius); - SERIALIZE_MEMBER(Height, _height); -} - -void CapsuleCollider::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) -{ - // Base - Collider::Deserialize(stream, modifier); - - DESERIALIZE_MEMBER(Radius, _radius); - DESERIALIZE_MEMBER(Height, _height); -} - void CapsuleCollider::UpdateBounds() { // Cache bounds diff --git a/Source/Engine/Physics/Colliders/CapsuleCollider.h b/Source/Engine/Physics/Colliders/CapsuleCollider.h index 5ae53cf53..8eff1c164 100644 --- a/Source/Engine/Physics/Colliders/CapsuleCollider.h +++ b/Source/Engine/Physics/Colliders/CapsuleCollider.h @@ -13,6 +13,7 @@ API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Colliders/Capsule Collider\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API CapsuleCollider : public Collider { + API_AUTO_SERIALIZATION(); DECLARE_SCENE_OBJECT(CapsuleCollider); private: float _radius; @@ -58,8 +59,6 @@ public: void OnDebugDrawSelected() override; #endif bool IntersectsItself(const Ray& ray, Real& distance, Vector3& normal) override; - void Serialize(SerializeStream& stream, const void* otherObj) override; - void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) override; protected: // [Collider] diff --git a/Source/Engine/Physics/Colliders/CharacterController.cpp b/Source/Engine/Physics/Colliders/CharacterController.cpp index 41ee95d04..9b36a92ff 100644 --- a/Source/Engine/Physics/Colliders/CharacterController.cpp +++ b/Source/Engine/Physics/Colliders/CharacterController.cpp @@ -5,7 +5,6 @@ #include "Engine/Physics/Physics.h" #include "Engine/Physics/PhysicsBackend.h" #include "Engine/Physics/PhysicsScene.h" -#include "Engine/Serialization/Serialization.h" #include "Engine/Engine/Time.h" #define CC_MIN_SIZE 0.001f @@ -387,33 +386,3 @@ void CharacterController::OnPhysicsSceneChanged(PhysicsScene* previous) DeleteController(); CreateController(); } - -void CharacterController::Serialize(SerializeStream& stream, const void* otherObj) -{ - // Base - Collider::Serialize(stream, otherObj); - - SERIALIZE_GET_OTHER_OBJ(CharacterController); - - SERIALIZE_MEMBER(StepOffset, _stepOffset); - SERIALIZE_MEMBER(SlopeLimit, _slopeLimit); - SERIALIZE_MEMBER(NonWalkableMode, _nonWalkableMode); - SERIALIZE_MEMBER(Radius, _radius); - SERIALIZE_MEMBER(Height, _height); - SERIALIZE_MEMBER(MinMoveDistance, _minMoveDistance); - SERIALIZE_MEMBER(UpDirection, _upDirection); -} - -void CharacterController::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) -{ - // Base - Collider::Deserialize(stream, modifier); - - DESERIALIZE_MEMBER(StepOffset, _stepOffset); - DESERIALIZE_MEMBER(SlopeLimit, _slopeLimit); - DESERIALIZE_MEMBER(NonWalkableMode, _nonWalkableMode); - DESERIALIZE_MEMBER(Radius, _radius); - DESERIALIZE_MEMBER(Height, _height); - DESERIALIZE_MEMBER(MinMoveDistance, _minMoveDistance); - DESERIALIZE_MEMBER(UpDirection, _upDirection); -} diff --git a/Source/Engine/Physics/Colliders/CharacterController.h b/Source/Engine/Physics/Colliders/CharacterController.h index 919deaafe..737d98728 100644 --- a/Source/Engine/Physics/Colliders/CharacterController.h +++ b/Source/Engine/Physics/Colliders/CharacterController.h @@ -12,6 +12,7 @@ API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Character Controller\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API CharacterController : public Collider, public IPhysicsActor { + API_AUTO_SERIALIZATION(); DECLARE_SCENE_OBJECT(CharacterController); public: /// @@ -198,8 +199,6 @@ public: #if USE_EDITOR void OnDebugDrawSelected() override; #endif - void Serialize(SerializeStream& stream, const void* otherObj) override; - void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) override; void CreateShape() override; void UpdateBounds() override; void AddMovement(const Vector3& translation, const Quaternion& rotation) override; diff --git a/Source/Engine/Physics/Colliders/Collider.cpp b/Source/Engine/Physics/Colliders/Collider.cpp index 6c292bf20..4326a033d 100644 --- a/Source/Engine/Physics/Colliders/Collider.cpp +++ b/Source/Engine/Physics/Colliders/Collider.cpp @@ -5,7 +5,6 @@ #if USE_EDITOR #include "Engine/Level/Scene/SceneRendering.h" #endif -#include "Engine/Serialization/Serialization.h" #include "Engine/Physics/PhysicsSettings.h" #include "Engine/Physics/Physics.h" #include "Engine/Physics/PhysicsBackend.h" @@ -292,30 +291,6 @@ void Collider::OnMaterialChanged() PhysicsBackend::SetShapeMaterial(_shape, Material.Get()); } -void Collider::Serialize(SerializeStream& stream, const void* otherObj) -{ - // Base - PhysicsColliderActor::Serialize(stream, otherObj); - - SERIALIZE_GET_OTHER_OBJ(Collider); - - SERIALIZE_MEMBER(IsTrigger, _isTrigger); - SERIALIZE_MEMBER(Center, _center); - SERIALIZE_MEMBER(ContactOffset, _contactOffset); - SERIALIZE(Material); -} - -void Collider::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) -{ - // Base - PhysicsColliderActor::Deserialize(stream, modifier); - - DESERIALIZE_MEMBER(IsTrigger, _isTrigger); - DESERIALIZE_MEMBER(Center, _center); - DESERIALIZE_MEMBER(ContactOffset, _contactOffset); - DESERIALIZE(Material); -} - void Collider::BeginPlay(SceneBeginData* data) { // Check if has no shape created (it means no rigidbody requested it but also collider may be spawned at runtime) diff --git a/Source/Engine/Physics/Colliders/Collider.h b/Source/Engine/Physics/Colliders/Collider.h index d3bae9407..bd17aa27a 100644 --- a/Source/Engine/Physics/Colliders/Collider.h +++ b/Source/Engine/Physics/Colliders/Collider.h @@ -17,6 +17,7 @@ class RigidBody; /// API_CLASS(Abstract) class FLAXENGINE_API Collider : public PhysicsColliderActor { + API_AUTO_SERIALIZATION(); DECLARE_SCENE_OBJECT_ABSTRACT(Collider); protected: Vector3 _center; @@ -196,8 +197,6 @@ private: public: // [PhysicsColliderActor] - void Serialize(SerializeStream& stream, const void* otherObj) override; - void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) override; RigidBody* GetAttachedRigidBody() const override; protected: diff --git a/Source/Engine/Physics/Colliders/MeshCollider.cpp b/Source/Engine/Physics/Colliders/MeshCollider.cpp index 94429ab7d..c29485a64 100644 --- a/Source/Engine/Physics/Colliders/MeshCollider.cpp +++ b/Source/Engine/Physics/Colliders/MeshCollider.cpp @@ -3,7 +3,6 @@ #include "MeshCollider.h" #include "Engine/Core/Math/Matrix.h" #include "Engine/Core/Math/Ray.h" -#include "Engine/Serialization/Serialization.h" #include "Engine/Physics/Physics.h" #include "Engine/Physics/PhysicsScene.h" #if USE_EDITOR || !BUILD_RELEASE @@ -117,24 +116,6 @@ bool MeshCollider::IntersectsItself(const Ray& ray, Real& distance, Vector3& nor return _box.Intersects(ray, distance, normal); } -void MeshCollider::Serialize(SerializeStream& stream, const void* otherObj) -{ - // Base - Collider::Serialize(stream, otherObj); - - SERIALIZE_GET_OTHER_OBJ(MeshCollider); - - SERIALIZE(CollisionData); -} - -void MeshCollider::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) -{ - // Base - Collider::Deserialize(stream, modifier); - - DESERIALIZE(CollisionData); -} - void MeshCollider::UpdateBounds() { // Cache bounds diff --git a/Source/Engine/Physics/Colliders/MeshCollider.h b/Source/Engine/Physics/Colliders/MeshCollider.h index a25f4d9c8..ab3b7047a 100644 --- a/Source/Engine/Physics/Colliders/MeshCollider.h +++ b/Source/Engine/Physics/Colliders/MeshCollider.h @@ -13,6 +13,7 @@ API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Colliders/Mesh Collider\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API MeshCollider : public Collider { + API_AUTO_SERIALIZATION(); DECLARE_SCENE_OBJECT(MeshCollider); public: /// @@ -33,8 +34,6 @@ public: void OnDebugDrawSelected() override; #endif bool IntersectsItself(const Ray& ray, Real& distance, Vector3& normal) override; - void Serialize(SerializeStream& stream, const void* otherObj) override; - void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) override; protected: // [Collider] diff --git a/Source/Engine/Physics/Colliders/SphereCollider.cpp b/Source/Engine/Physics/Colliders/SphereCollider.cpp index fa2fb1cca..92196eeae 100644 --- a/Source/Engine/Physics/Colliders/SphereCollider.cpp +++ b/Source/Engine/Physics/Colliders/SphereCollider.cpp @@ -1,7 +1,6 @@ // Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. #include "SphereCollider.h" -#include "Engine/Serialization/Serialization.h" SphereCollider::SphereCollider(const SpawnParams& params) : Collider(params) @@ -58,24 +57,6 @@ bool SphereCollider::IntersectsItself(const Ray& ray, Real& distance, Vector3& n return _sphere.Intersects(ray, distance, normal); } -void SphereCollider::Serialize(SerializeStream& stream, const void* otherObj) -{ - // Base - Collider::Serialize(stream, otherObj); - - SERIALIZE_GET_OTHER_OBJ(SphereCollider); - - SERIALIZE_MEMBER(Radius, _radius); -} - -void SphereCollider::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) -{ - // Base - Collider::Deserialize(stream, modifier); - - DESERIALIZE_MEMBER(Radius, _radius); -} - void SphereCollider::UpdateBounds() { // Cache bounds diff --git a/Source/Engine/Physics/Colliders/SphereCollider.h b/Source/Engine/Physics/Colliders/SphereCollider.h index 39f6fd63c..061372af4 100644 --- a/Source/Engine/Physics/Colliders/SphereCollider.h +++ b/Source/Engine/Physics/Colliders/SphereCollider.h @@ -11,6 +11,7 @@ API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Colliders/Sphere Collider\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API SphereCollider : public Collider { + API_AUTO_SERIALIZATION(); DECLARE_SCENE_OBJECT(SphereCollider); private: float _radius; @@ -38,8 +39,6 @@ public: void OnDebugDrawSelected() override; #endif bool IntersectsItself(const Ray& ray, Real& distance, Vector3& normal) override; - void Serialize(SerializeStream& stream, const void* otherObj) override; - void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) override; protected: // [Collider] diff --git a/Source/Engine/Physics/Colliders/SplineCollider.cpp b/Source/Engine/Physics/Colliders/SplineCollider.cpp index b85617da4..5c3c87335 100644 --- a/Source/Engine/Physics/Colliders/SplineCollider.cpp +++ b/Source/Engine/Physics/Colliders/SplineCollider.cpp @@ -5,7 +5,6 @@ #include "Engine/Core/Math/Matrix.h" #include "Engine/Core/Math/Ray.h" #include "Engine/Level/Actors/Spline.h" -#include "Engine/Serialization/Serialization.h" #include "Engine/Physics/Physics.h" #include "Engine/Physics/PhysicsBackend.h" #include "Engine/Physics/PhysicsScene.h" @@ -124,26 +123,6 @@ bool SplineCollider::IntersectsItself(const Ray& ray, Real& distance, Vector3& n return _box.Intersects(ray, distance, normal); } -void SplineCollider::Serialize(SerializeStream& stream, const void* otherObj) -{ - // Base - Collider::Serialize(stream, otherObj); - - SERIALIZE_GET_OTHER_OBJ(SplineCollider); - - SERIALIZE(CollisionData); - SERIALIZE_MEMBER(PreTransform, _preTransform) -} - -void SplineCollider::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) -{ - // Base - Collider::Deserialize(stream, modifier); - - DESERIALIZE(CollisionData); - DESERIALIZE_MEMBER(PreTransform, _preTransform); -} - void SplineCollider::OnParentChanged() { if (_spline) diff --git a/Source/Engine/Physics/Colliders/SplineCollider.h b/Source/Engine/Physics/Colliders/SplineCollider.h index bea1059d8..794e90e4e 100644 --- a/Source/Engine/Physics/Colliders/SplineCollider.h +++ b/Source/Engine/Physics/Colliders/SplineCollider.h @@ -15,6 +15,7 @@ class Spline; /// API_CLASS() class FLAXENGINE_API SplineCollider : public Collider { + API_AUTO_SERIALIZATION(); DECLARE_SCENE_OBJECT(SplineCollider); private: Spline* _spline = nullptr; @@ -61,8 +62,6 @@ public: void OnDebugDrawSelected() override; #endif bool IntersectsItself(const Ray& ray, Real& distance, Vector3& normal) override; - void Serialize(SerializeStream& stream, const void* otherObj) override; - void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) override; void OnParentChanged() override; void EndPlay() override;