61 lines
1.7 KiB
C#
61 lines
1.7 KiB
C#
|
// Magica Cloth 2.
|
|||
|
// Copyright (c) 2024 MagicaSoft.
|
|||
|
// https://magicasoft.jp
|
|||
|
using System;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
namespace MagicaCloth2
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// VirtualMeshの共有部分と固有部分を1つにまとめた情報
|
|||
|
/// </summary>
|
|||
|
public class VirtualMeshContainer : IDisposable
|
|||
|
{
|
|||
|
public VirtualMesh shareVirtualMesh;
|
|||
|
public VirtualMesh.UniqueSerializationData uniqueData;
|
|||
|
|
|||
|
public VirtualMeshContainer()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
public VirtualMeshContainer(VirtualMesh vmesh)
|
|||
|
{
|
|||
|
shareVirtualMesh = vmesh;
|
|||
|
uniqueData = null;
|
|||
|
}
|
|||
|
|
|||
|
public void Dispose()
|
|||
|
{
|
|||
|
shareVirtualMesh?.Dispose();
|
|||
|
}
|
|||
|
|
|||
|
//=========================================================================================
|
|||
|
public bool hasUniqueData => uniqueData != null;
|
|||
|
|
|||
|
//=========================================================================================
|
|||
|
public int GetTransformCount()
|
|||
|
{
|
|||
|
if (hasUniqueData)
|
|||
|
return uniqueData.transformData.transformArray.Length;
|
|||
|
else
|
|||
|
return shareVirtualMesh.TransformCount;
|
|||
|
}
|
|||
|
|
|||
|
public Transform GetTransformFromIndex(int index)
|
|||
|
{
|
|||
|
if (hasUniqueData)
|
|||
|
return uniqueData.transformData.transformArray[index];
|
|||
|
else
|
|||
|
return shareVirtualMesh.transformData.GetTransformFromIndex(index);
|
|||
|
}
|
|||
|
|
|||
|
public Transform GetCenterTransform()
|
|||
|
{
|
|||
|
if (hasUniqueData)
|
|||
|
return uniqueData.transformData.transformArray[shareVirtualMesh.centerTransformIndex];
|
|||
|
else
|
|||
|
return shareVirtualMesh.GetCenterTransform();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|