Switch points generation from managed thread to unmanaged thread; Change Spline to NativeSpline; Add converter for DistributionMode and update cloner editor ui; Add MeshData type for object distribution calculation; Add ObjectDistributionSetting and ObjectDistributionCalculation(Vertex and Edge Mode);
This commit is contained in:
@@ -11,7 +11,6 @@ namespace Misaki.ArtTool
|
||||
public static void Initialize()
|
||||
{
|
||||
var boolToDisplayGroup = new ConverterGroup("BoolToDisplayConvertor");
|
||||
|
||||
boolToDisplayGroup.AddConverter((ref bool v) => BoolToDisplayConverter.ConvertTo(v));
|
||||
boolToDisplayGroup.AddConverter((ref StyleEnum<DisplayStyle> v) => BoolToDisplayConverter.ConvertBack(v));
|
||||
|
||||
@@ -19,7 +18,6 @@ namespace Misaki.ArtTool
|
||||
|
||||
|
||||
var inverseBoolToDisplayGroup = new ConverterGroup("InverseBoolToDisplayConverter");
|
||||
|
||||
inverseBoolToDisplayGroup.AddConverter((ref bool v) => InverseBoolToDisplayConverter.ConvertTo(v));
|
||||
inverseBoolToDisplayGroup.AddConverter((ref StyleEnum<DisplayStyle> v) => InverseBoolToDisplayConverter.ConvertBack(v));
|
||||
|
||||
@@ -27,7 +25,6 @@ namespace Misaki.ArtTool
|
||||
|
||||
|
||||
var float2ToVector2Group = new ConverterGroup("Float2ToVector2Converter");
|
||||
|
||||
float2ToVector2Group.AddConverter((ref float2 v) => Float2ToVector2Converter.ConvertTo(v));
|
||||
float2ToVector2Group.AddConverter((ref Vector2 v) => Float2ToVector2Converter.ConvertBack(v));
|
||||
|
||||
@@ -35,11 +32,50 @@ namespace Misaki.ArtTool
|
||||
|
||||
|
||||
var float3ToVector3Group = new ConverterGroup("Float3ToVector3Converter");
|
||||
|
||||
float3ToVector3Group.AddConverter((ref float3 v) => Float3ToVector3Converter.ConvertTo(v));
|
||||
float3ToVector3Group.AddConverter((ref Vector3 v) => Float3ToVector3Converter.ConvertBack(v));
|
||||
|
||||
ConverterGroups.RegisterConverterGroup(float3ToVector3Group);
|
||||
|
||||
|
||||
var int2ToVector2IntGroup = new ConverterGroup("int2ToVector2IntConverter");
|
||||
int2ToVector2IntGroup.AddConverter((ref int2 v) => Int2ToVector2IntConverter.ConvertTo(v));
|
||||
int2ToVector2IntGroup.AddConverter((ref Vector2Int v) => Int2ToVector2IntConverter.ConvertBack(v));
|
||||
|
||||
ConverterGroups.RegisterConverterGroup(int2ToVector2IntGroup);
|
||||
|
||||
|
||||
var int3ToVector3IntGroup = new ConverterGroup("int3ToVector3IntConverter");
|
||||
int3ToVector3IntGroup.AddConverter((ref int3 v) => Int3ToVector3IntConverter.ConvertTo(v));
|
||||
int3ToVector3IntGroup.AddConverter((ref Vector3Int v) => Int3ToVector3IntConverter.ConvertBack(v));
|
||||
|
||||
ConverterGroups.RegisterConverterGroup(int3ToVector3IntGroup);
|
||||
|
||||
// Converter in ui-toolkit does not support converter parameters right now, we have to register all the types one by one
|
||||
var objectModeToDisplayStyleGroup = new ConverterGroup("ObjectModeToDisplayStyleConverter");
|
||||
objectModeToDisplayStyleGroup.AddConverter((ref DistributionMode v) => DistributionModeToDisplayStyleConverter.ObjectModeConvertTo(v));
|
||||
|
||||
var splineModeToDisplayStyleGroup = new ConverterGroup("SplineModeToDisplayStyleConverter");
|
||||
splineModeToDisplayStyleGroup.AddConverter((ref DistributionMode v) => DistributionModeToDisplayStyleConverter.SplineModeConvertTo(v));
|
||||
|
||||
var linearModeToDisplayStyleGroup = new ConverterGroup("LinearModeToDisplayStyleConverter");
|
||||
linearModeToDisplayStyleGroup.AddConverter((ref DistributionMode v) => DistributionModeToDisplayStyleConverter.LinearModeConvertTo(v));
|
||||
|
||||
var gridModeToDisplayStyleGroup = new ConverterGroup("GridModeToDisplayStyleConverter");
|
||||
gridModeToDisplayStyleGroup.AddConverter((ref DistributionMode v) => DistributionModeToDisplayStyleConverter.GridModeConvertTo(v));
|
||||
|
||||
var radialModeToDisplayStyleGroup = new ConverterGroup("RadialModeToDisplayStyleConverter");
|
||||
radialModeToDisplayStyleGroup.AddConverter((ref DistributionMode v) => DistributionModeToDisplayStyleConverter.RadialModeConvertTo(v));
|
||||
|
||||
var honeycombModeToDisplayStyleGroup = new ConverterGroup("HoneycombModeToDisplayStyleConverter");
|
||||
honeycombModeToDisplayStyleGroup.AddConverter((ref DistributionMode v) => DistributionModeToDisplayStyleConverter.HoneycombModeConvertTo(v));
|
||||
|
||||
ConverterGroups.RegisterConverterGroup(objectModeToDisplayStyleGroup);
|
||||
ConverterGroups.RegisterConverterGroup(splineModeToDisplayStyleGroup);
|
||||
ConverterGroups.RegisterConverterGroup(linearModeToDisplayStyleGroup);
|
||||
ConverterGroups.RegisterConverterGroup(gridModeToDisplayStyleGroup);
|
||||
ConverterGroups.RegisterConverterGroup(radialModeToDisplayStyleGroup);
|
||||
ConverterGroups.RegisterConverterGroup(honeycombModeToDisplayStyleGroup);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,67 @@
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Misaki.ArtTool
|
||||
{
|
||||
public struct DistributionModeToDisplayStyleConverter
|
||||
{
|
||||
public static StyleEnum<DisplayStyle> ObjectModeConvertTo(DistributionMode mode)
|
||||
{
|
||||
if (mode == DistributionMode.Object)
|
||||
{
|
||||
return DisplayStyle.Flex;
|
||||
}
|
||||
|
||||
return DisplayStyle.None;
|
||||
}
|
||||
|
||||
public static StyleEnum<DisplayStyle> SplineModeConvertTo(DistributionMode mode)
|
||||
{
|
||||
if (mode == DistributionMode.Spline)
|
||||
{
|
||||
return DisplayStyle.Flex;
|
||||
}
|
||||
|
||||
return DisplayStyle.None;
|
||||
}
|
||||
|
||||
public static StyleEnum<DisplayStyle> LinearModeConvertTo(DistributionMode mode)
|
||||
{
|
||||
if (mode == DistributionMode.Linear)
|
||||
{
|
||||
return DisplayStyle.Flex;
|
||||
}
|
||||
|
||||
return DisplayStyle.None;
|
||||
}
|
||||
|
||||
public static StyleEnum<DisplayStyle> GridModeConvertTo(DistributionMode mode)
|
||||
{
|
||||
if (mode == DistributionMode.Grid)
|
||||
{
|
||||
return DisplayStyle.Flex;
|
||||
}
|
||||
|
||||
return DisplayStyle.None;
|
||||
}
|
||||
|
||||
public static StyleEnum<DisplayStyle> RadialModeConvertTo(DistributionMode mode)
|
||||
{
|
||||
if (mode == DistributionMode.Radial)
|
||||
{
|
||||
return DisplayStyle.Flex;
|
||||
}
|
||||
|
||||
return DisplayStyle.None;
|
||||
}
|
||||
|
||||
public static StyleEnum<DisplayStyle> HoneycombModeConvertTo(DistributionMode mode)
|
||||
{
|
||||
if (mode == DistributionMode.Honeycomb)
|
||||
{
|
||||
return DisplayStyle.Flex;
|
||||
}
|
||||
|
||||
return DisplayStyle.None;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
31
Runtime/Cloner/Helper/Converter/IntToVectorIntConverter.cs
Normal file
31
Runtime/Cloner/Helper/Converter/IntToVectorIntConverter.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using Unity.Mathematics;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Misaki.ArtTool
|
||||
{
|
||||
public struct Int2ToVector2IntConverter
|
||||
{
|
||||
public static Vector2Int ConvertTo(int2 value)
|
||||
{
|
||||
return new Vector2Int(value.x, value.y);
|
||||
}
|
||||
|
||||
public static int2 ConvertBack(Vector2Int value)
|
||||
{
|
||||
return new int2(value.x, value.y);
|
||||
}
|
||||
}
|
||||
|
||||
public struct Int3ToVector3IntConverter
|
||||
{
|
||||
public static Vector3Int ConvertTo(int3 value)
|
||||
{
|
||||
return new Vector3Int(value.x, value.y, value.z);
|
||||
}
|
||||
|
||||
public static int3 ConvertBack(Vector3Int value)
|
||||
{
|
||||
return new int3(value.x, value.y, value.z);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c271b5a6b3fadff498bc8f938e501eee
|
||||
Reference in New Issue
Block a user