public void RevertChanges()
{
Clear("");
if(spriteMesh && spriteMeshData)
{
pivotPoint = spriteMeshData.pivotPoint;
rect = SpriteMeshUtils.GetRect(spriteMesh.sprite);
m_TexVertices = spriteMeshData.vertices.ToList();
nodes = m_TexVertices.ConvertAll( v => Node.Create(m_TexVertices.IndexOf(v)) );
boneWeights = spriteMeshData.boneWeights.ToList();
edges = spriteMeshData.edges.ToList().ConvertAll( e => Edge.Create(nodes[e.index1],nodes[e.index2]) );
holes = spriteMeshData.holes.ToList().ConvertAll( h => new Hole(h) );
indices = spriteMeshData.indices.ToList();
bindPoses = spriteMeshData.bindPoses.ToList().ConvertAll( b => b.Clone() as BindInfo );
CreateBlendShapeCache(spriteMeshData);
if(boneWeights.Count != nodes.Count)
{
boneWeights = nodes.ConvertAll( n => BoneWeight.Create() );
}
m_DirtyVertices = true;
}
}