From 137a60ccef739f59ff000d9cb0311f60a2ae6a06 Mon Sep 17 00:00:00 2001
From: Norite SC <162097313+cNori@users.noreply.github.com>
Date: Wed, 3 Apr 2024 06:34:22 +0200
Subject: [PATCH] will it explode ?
---
Source/Engine/Core/Math/Transform.cpp | 6 ++++++
Source/Engine/Core/Math/Transform.h | 27 +++++++--------------------
2 files changed, 13 insertions(+), 20 deletions(-)
diff --git a/Source/Engine/Core/Math/Transform.cpp b/Source/Engine/Core/Math/Transform.cpp
index 6195dad04..7a8c4cd3d 100644
--- a/Source/Engine/Core/Math/Transform.cpp
+++ b/Source/Engine/Core/Math/Transform.cpp
@@ -252,3 +252,9 @@ void Transform::Lerp(const Transform& t1, const Transform& t2, float amount, Tra
Quaternion::Slerp(t1.Orientation, t2.Orientation, amount, result.Orientation);
Float3::Lerp(t1.Scale, t2.Scale, amount, result.Scale);
}
+
+inline Transform Transform::AlignRotacionToNormalAndSnapToGrid(const Vector3& InPoint, const Vector3& InNormal, float InNormalOffset, const Transform& InRelativeTo, const Float3& InReturnScale, const Vector3& InGridSize)
+{
+ Quaternion rot = Quaternion::GetRotacionFromNormal(InNormal, InRelativeTo);
+ return Transform(Vector3::SnapToRotatedGridWithOffset(InPoint, InRelativeTo.Translation, Vector3(0, 0, InNormalOffset), rot, InGridSize), rot, InReturnScale);
+}
diff --git a/Source/Engine/Core/Math/Transform.h b/Source/Engine/Core/Math/Transform.h
index a54c356db..7d76f3432 100644
--- a/Source/Engine/Core/Math/Transform.h
+++ b/Source/Engine/Core/Math/Transform.h
@@ -304,11 +304,8 @@ public:
/// return scale
/// InRefrenceTransform
/// rotated and snaped transform
- static Transform AlignRotacionToNormalAndSnapToGrid(const Vector3& InPoint, const Vector3& InNormal, float InNormalOffset, const Transform& InRelativeTo, const Float3& InReturnScale, const Vector3& InGridSize)
- {
- Quaternion rot = Quaternion::GetRotacionFromNormal(InNormal, InRelativeTo);
- return Transform(Vector3::SnapToRotatedGridWithOffset(InPoint, InRelativeTo.Translation, Vector3(0, 0, InNormalOffset), rot, InGridSize), rot, InReturnScale);
- }
+ inline static Transform AlignRotacionToNormalAndSnapToGrid(const Vector3& InPoint, const Vector3& InNormal, float InNormalOffset, const Transform& InRelativeTo, const Float3& InReturnScale, const Vector3& InGridSize);
+
///
/// combines funcions
/// ,
@@ -321,11 +318,8 @@ public:
/// Realative transform
/// InRefrenceTransform
/// rotated and snaped transform with scale
- static Transform AlignRotacionToNormalAndSnapToGrid(const Vector3& InPoint, const Vector3& InNormal, float InNormalOffset, const Transform& InRelativeTo, const Vector3& InGridSize)
- {
- Quaternion rot = Quaternion::GetRotacionFromNormal(InNormal, InRelativeTo);
- return Transform(Vector3::SnapToRotatedGridWithOffset(InPoint, InRelativeTo.Translation, Vector3(0, 0, InNormalOffset), rot, InGridSize), rot, Float3::One);
- }
+ inline static Transform AlignRotacionToNormalAndSnapToGrid(const Vector3& InPoint, const Vector3& InNormal, float InNormalOffset, const Transform& InRelativeTo, const Vector3& InGridSize);
+
///
/// combines funcions
/// ,
@@ -339,11 +333,8 @@ public:
/// return scale
/// InRefrenceTransform
/// rotated and snaped transform
- static Transform AlignRotacionToNormalAndSnapToGrid(const Vector3& InPoint, const Vector3& InNormal, const Vector3& InNormalOffset, const Transform& InRelativeTo,const Float3& InReturnScale,const Vector3& InGridSize)
- {
- Quaternion rot = Quaternion::GetRotacionFromNormal(InNormal, InRelativeTo);
- return Transform(Vector3::SnapToRotatedGridWithOffset(InPoint, InRelativeTo.Translation, InNormalOffset, rot, InGridSize), rot, InReturnScale);
- }
+ inline static Transform AlignRotacionToNormalAndSnapToGrid(const Vector3& InPoint, const Vector3& InNormal, const Vector3& InNormalOffset, const Transform& InRelativeTo,const Float3& InReturnScale,const Vector3& InGridSize);
+
///
/// combines funcions
/// ,
@@ -356,11 +347,7 @@ public:
/// Realative transform
/// InRefrenceTransform
/// rotated and snaped transform with scale
- static Transform AlignRotacionToNormalAndSnapToGrid(const Vector3& InPoint,const Vector3& InNormal,const Vector3& InNormalOffset, const Transform& InRelativeTo,const Vector3& InGridSize)
- {
- Quaternion rot = Quaternion::GetRotacionFromNormal(InNormal, InRelativeTo);
- return Transform(Vector3::SnapToRotatedGridWithOffset(InPoint, InRelativeTo.Translation, InNormalOffset, rot, InGridSize), rot, Float3::One);
- }
+ inline static Transform AlignRotacionToNormalAndSnapToGrid(const Vector3& InPoint,const Vector3& InNormal,const Vector3& InNormalOffset, const Transform& InRelativeTo,const Vector3& InGridSize);
public:
FORCE_INLINE Transform operator*(const Transform& other) const