Upload project files
This commit is contained in:
21
Runtime/Cloner/Distribution/LinearDistribution.cs
Normal file
21
Runtime/Cloner/Distribution/LinearDistribution.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using Unity.Mathematics;
|
||||
|
||||
namespace Misaki.ArtTool
|
||||
{
|
||||
public static partial class Distribution
|
||||
{
|
||||
public static void LinearDistribution(int index, LinearDistributionSetting setting, out float4x4 localMatrix, out bool isValid)
|
||||
{
|
||||
var pointIndex = (uint)index + setting.indexOffset;
|
||||
var localPosition = pointIndex * setting.positionSpacing;
|
||||
var localEulerRotation = pointIndex * setting.rotationSpacing;
|
||||
var localScale = 1.0f - (pointIndex * (1.0f - setting.scaleSpacing));
|
||||
|
||||
localPosition = math.mul(float3x3.EulerXYZ(math.radians(setting.stepRotation * pointIndex)), localPosition);
|
||||
var localRotation = math.mul(quaternion.EulerXYZ(math.radians(localEulerRotation)), quaternion.EulerXYZ(math.radians(setting.stepRotation * pointIndex)));
|
||||
|
||||
localMatrix = float4x4.TRS(localPosition, localRotation, localScale);
|
||||
isValid = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user