remove not used

This commit is contained in:
ousttrue
2024-11-20 12:31:23 +09:00
parent 47a22c20d2
commit c8010a86d6
9 changed files with 11 additions and 161 deletions

View File

@@ -1,41 +0,0 @@
namespace RotateParticle
{
[System.Flags]
public enum CollisionGroupMask : uint
{
None = 0,
Group01 = 0x00000001,
Group02 = 0x00000002,
Group03 = 0x00000004,
Group04 = 0x00000008,
Group05 = 0x00000010,
Group06 = 0x00000020,
Group07 = 0x00000040,
Group08 = 0x00000080,
Group09 = 0x00000100,
Group10 = 0x00000200,
Group11 = 0x00000400,
Group12 = 0x00000800,
Group13 = 0x00001000,
Group14 = 0x00002000,
Group15 = 0x00004000,
Group16 = 0x00008000,
Group17 = 0x00010000,
Group18 = 0x00020000,
Group19 = 0x00040000,
Group20 = 0x00080000,
Group21 = 0x00100000,
Group22 = 0x00200000,
Group23 = 0x00400000,
Group24 = 0x00800000,
Group25 = 0x01000000,
Group26 = 0x02000000,
Group27 = 0x04000000,
Group28 = 0x08000000,
Group29 = 0x10000000,
Group30 = 0x20000000,
Group31 = 0x40000000,
Group32 = 0x80000000,
All = uint.MaxValue,
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 7ac7f1d83935aa84b9e80739be4ae02b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -27,9 +27,7 @@ namespace RotateParticle
// TODO: force / mass => accelaration
public float Mass;
public CollisionGroupMask CollisionMask;
public ParticleInitState(int index, Transform t, float radius, float mass, CollisionGroupMask collisionMask)
public ParticleInitState(int index, Transform t, float radius, float mass)
{
Index = index;
LocalPosition = t.localPosition;
@@ -38,7 +36,6 @@ namespace RotateParticle
BoneAxis = LocalPosition.normalized;
Radius = radius;
Mass = mass;
CollisionMask = collisionMask;
}
public override string ToString()

View File

@@ -1,81 +0,0 @@
using Unity.Collections;
using Unity.Jobs;
using UnityEngine;
namespace RotateParticle
{
public struct ParticleJob : IJob
{
public float DeltaTime;
public float Stiffness;
public float DragForce;
public Vector3 External;
public int Index;
public int ParentIndex;
public float Mass;
public Vector3 Rest;
public Vector3 CurrentPosition;
public Vector3 Prev;
public Quaternion ParentParentRotation;
public Quaternion InitParentLocalRotation;
public Vector3 InitBoneAxis;
public Vector3 ParentPosition;
public NativeArray<Vector3> NewPos;
public NativeArray<Quaternion> NewRot;
public void Execute()
{
var tr = Step();
if (tr.HasValue)
{
var (newPos, parentRot) = tr.Value;
NewPos[Index] = newPos;
NewRot[ParentIndex] = parentRot;
}
}
public (Vector3 NewPos, Quaternion ParentRotation)? Step()
{
if (Mass == 0)
{
return default;
}
var sqDt = DeltaTime * DeltaTime;
var f = (Rest - CurrentPosition) * Stiffness / sqDt;
// Debug.Log($"{rest}");
f += (External / sqDt);
var newPos = CurrentPosition + (CurrentPosition - Prev) * (1 - DragForce) + f * sqDt;
var parentRotation = CalcParentRotation(newPos, ParentParentRotation, InitParentLocalRotation, InitBoneAxis, ParentPosition);
return (newPos, parentRotation);
}
public static Quaternion CalcParentRotation(in Vector3 newPos,
in Quaternion parentparent,
in Quaternion initParentLocalRotation,
in Vector3 initBoneAxis,
in Vector3 parentPosition)
{
// 親の回転として結果を適用する(位置から回転を作る)
var restRotation = parentparent * initParentLocalRotation;
var r = CalcRotation(restRotation, initBoneAxis, newPos - parentPosition);
// _runtime = new ParticleRuntimeState(_runtime.CurrentPosition, transform.position);
return r;
}
static Quaternion CalcRotation(Quaternion restRotation, Vector3 boneAxis, Vector3 to)
{
Quaternion aimRotation = Quaternion.FromToRotation(restRotation * boneAxis, to);
return aimRotation * restRotation;
}
}
}

View File

@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 7127f077eba307343a5f5ce15213a595
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -12,19 +12,19 @@ namespace RotateParticle
public List<RotateParticle> _particles = new();
public List<Transform> _particleTransforms = new();
public Strand MakeParticleStrand(SimulationEnv env, Warp warp, CollisionGroupMask mask)
public Strand MakeParticleStrand(SimulationEnv env, Warp warp)
{
var strand = new Strand(mask);
var strand = new Strand();
// root kinematic
var particle_index = _MakeAParticle(null, env, warp.transform, 0, 0, strand.CollisionMask);
var particle_index = _MakeAParticle(null, env, warp.transform, 0, 0);
var joint = _particles[particle_index];
strand.Particles.Add(joint);
foreach (var particle in warp.Particles)
{
var child_index = _MakeAParticle(joint, env, particle.Transform,
particle.GetSettings(warp.BaseSettings).HitRadius, 1, strand.CollisionMask);
particle.GetSettings(warp.BaseSettings).HitRadius, 1);
var child = _particles[child_index];
strand.Particles.Add(child);
joint.Children.Add(child);
@@ -34,11 +34,11 @@ namespace RotateParticle
return strand;
}
int _MakeAParticle(RotateParticle parent, SimulationEnv env, Transform t, float radius, float mass, CollisionGroupMask collisionMask)
int _MakeAParticle(RotateParticle parent, SimulationEnv env, Transform t, float radius, float mass)
{
var index = _particles.Count;
_particleTransforms.Add(t);
_particles.Add(new RotateParticle(index, parent, env, t, radius, mass, collisionMask));
_particles.Add(new RotateParticle(index, parent, env, t, radius, mass));
return index;
}

View File

@@ -21,9 +21,9 @@ namespace RotateParticle
// 直前で接触があった
public bool HasCollide = false;
public RotateParticle(int index, RotateParticle parent, SimulationEnv env, Transform transform, float radius, float mass, CollisionGroupMask collisionMask)
public RotateParticle(int index, RotateParticle parent, SimulationEnv env, Transform transform, float radius, float mass)
{
Init = new ParticleInitState(index, transform, radius, mass, collisionMask);
Init = new ParticleInitState(index, transform, radius, mass);
State = new ParticleRuntimeState(env, transform);
Parent = parent;
}

View File

@@ -143,7 +143,7 @@ namespace RotateParticle
foreach (var warp in warps)
{
var strands = new List<Strand>();
var strand = _list.MakeParticleStrand(Env, warp, default);
var strand = _list.MakeParticleStrand(Env, warp);
strands.Add(strand);
_strands.AddRange(strands);
strandMap.Add(warp, strand);

View File

@@ -6,11 +6,8 @@ namespace RotateParticle
{
public class Strand
{
public CollisionGroupMask CollisionMask;
public Strand(CollisionGroupMask mask)
public Strand()
{
CollisionMask = mask;
}
public readonly List<RotateParticle> Particles = new();