public void UpdateUVs () {
float u = RegionU, v = RegionV, width = RegionU2 - RegionU, height = RegionV2 - RegionV;
float[] regionUVs = this.regionUVs;
if (this.uvs == null || this.uvs.Length != regionUVs.Length) this.uvs = new float[regionUVs.Length];
float[] uvs = this.uvs;
if (RegionRotate) {
for (int i = 0, n = uvs.Length; i < n; i += 2) {
uvs[i] = u + regionUVs[i + 1] * width;
uvs[i + 1] = v + height - regionUVs[i] * height;
}
} else {
for (int i = 0, n = uvs.Length; i < n; i += 2) {
uvs[i] = u + regionUVs[i] * width;
uvs[i + 1] = v + regionUVs[i + 1] * height;
}
}
}
///<summary>Returns a new mesh with this mesh set as the <see cref="ParentMesh"/>. public MeshAttachment NewLinkedMesh() { MeshAttachment mesh = new MeshAttachment(Name); mesh.RendererObject = RendererObject; mesh.regionOffsetX = regionOffsetX; mesh.regionOffsetY = regionOffsetY; mesh.regionWidth = regionWidth; mesh.regionHeight = regionHeight; mesh.regionOriginalWidth = regionOriginalWidth; mesh.regionOriginalHeight = regionOriginalHeight; mesh.RegionDegrees = RegionDegrees; mesh.RegionRotate = RegionRotate; mesh.RegionU = RegionU; mesh.RegionV = RegionV; mesh.RegionU2 = RegionU2; mesh.RegionV2 = RegionV2; mesh.Path = Path; mesh.r = r; mesh.g = g; mesh.b = b; mesh.a = a; mesh.deformAttachment = deformAttachment; mesh.ParentMesh = parentMesh != null ? parentMesh : this; mesh.UpdateUVs(); return(mesh); }