//替换引用 public void replaceHandler(MClipElement toReplace, MClipElement toCompare) { MActorsManager MAM = form_Main.form_MAnimation.form_MActorList.actorsManager; //转移引用 for (int i1 = 0; i1 < MAM.Count(); i1++) { for (int i2 = 0; i2 < MAM[i1].Count(); i2++) { for (int i3 = 0; i3 < MAM[i1][i2].Count(); i3++) { for (int i4 = 0; i4 < MAM[i1][i2][i3].Count(); i4++) { for (int i5 = 0; i5 < MAM[i1][i2][i3][i4].Count(); i5++) { for (int i6 = 0; i6 < MAM[i1][i2][i3][i4][i5].Count(); i6++) { MFrameUnit unit = MAM[i1][i2][i3][i4][i5][i6]; if (unit is MFrameUnit_Bitmap) { MFrameUnit_Bitmap unitBitmap = (MFrameUnit_Bitmap)unit; if (unitBitmap.clipElement.Equals(toCompare)) { unitBitmap.clipElement = toReplace; } } } } } } } } }
//返回使用情况 public virtual String getUsedInfor() { String s = ""; int number = 0; MActorsManager MAM = null; if (clipsManager.Equals(clipsManager.form_Main.form_MapImagesManager.MClipsManager)) { MAM = clipsManager.form_Main.form_MAnimation.form_MActorList.actorsManager; } else if (clipsManager.Equals(clipsManager.form_Main.animClipsManagerForExport)) { MAM = clipsManager.form_Main.animActorsManagerExport; } if (MAM == null) { return(s); } for (int i1 = 0; i1 < MAM.Count(); i1++) { for (int i2 = 0; i2 < MAM[i1].Count(); i2++) { for (int i3 = 0; i3 < MAM[i1][i2].Count(); i3++) { for (int i4 = 0; i4 < MAM[i1][i2][i3].Count(); i4++) { for (int i5 = 0; i5 < MAM[i1][i2][i3][i4].Count(); i5++) { for (int i6 = 0; i6 < MAM[i1][i2][i3][i4][i5].Count(); i6++) { MFrameUnit unit = MAM[i1][i2][i3][i4][i5][i6]; if (unit is MFrameUnit_Bitmap) { MFrameUnit_Bitmap unitBitmap = (MFrameUnit_Bitmap)unit; if (unitBitmap.clipElement.Equals(this)) { s += "" + MAM[i1].name + "->" + MAM[i1][i2].name + "->" + MAM[i1][i2][i3].name + "->" + MAM[i1][i2][i3][i4].name + "->第" + MAM[i1][i2][i3][i4][i5].timeBegin + "帧" + "->第" + MAM[i1][i2][i3][i4][i5][i6].GetID() + "个单元" + "\n"; number++; } } } } } } } } s += "共被使用了" + number + "次\n"; return(s); }
//返回是用次数 public virtual int getUsedTime() { int number = 0; MActorsManager MAM = null; MClipsManager clipsManagerM = clipsManager.form_Main.form_MAnimation.form_MImgsList.MClipsManager; Console.WriteLine("m:" + clipsManagerM.GetHashCode() + ",c:" + clipsManager.GetHashCode()); if (clipsManager.Equals(clipsManagerM)) { MAM = clipsManager.form_Main.form_MAnimation.form_MActorList.actorsManager; } else if (clipsManager.Equals(clipsManager.form_Main.animClipsManagerForExport)) { MAM = clipsManager.form_Main.animActorsManagerExport; } if (MAM == null) { return(0); } for (int i1 = 0; i1 < MAM.Count(); i1++) { for (int i2 = 0; i2 < MAM[i1].Count(); i2++) { for (int i3 = 0; i3 < MAM[i1][i2].Count(); i3++) { for (int i4 = 0; i4 < MAM[i1][i2][i3].Count(); i4++) { for (int i5 = 0; i5 < MAM[i1][i2][i3][i4].Count(); i5++) { for (int i6 = 0; i6 < MAM[i1][i2][i3][i4][i5].Count(); i6++) { MFrameUnit unit = MAM[i1][i2][i3][i4][i5][i6]; if (unit is MFrameUnit_Bitmap) { MFrameUnit_Bitmap unitBitmap = (MFrameUnit_Bitmap)unit; if (unitBitmap.clipElement != null && unitBitmap.clipElement.Equals(this)) { number++; } } } } } } } } return(number); }
//增加导入切片(当点在当前编辑区内时) public void addClips(Point editPointSceen, List<MClipElement> baseClipElments) { Point editPointClient = glView.PointToClient(editPointSceen); editPointClient.Y = editPointClient.Y;//glView.Height - if (editPointClient.X >= 0 && editPointClient.Y >= 0 && editPointClient.X < glView.Width && editPointClient.Y < glView.Height) { MFrame frameEdit=form_MA.form_MTimeLine.getEditFrame(); if (frameEdit!=null) { if (baseClipElments.Count >0) { form_MA.historyManager.ReadyHistory(HistoryType.Action); int xMin = baseClipElments[0].clipRect.X; int xMax = baseClipElments[0].clipRect.X + baseClipElments[0].clipRect.Width; int yMin = baseClipElments[0].clipRect.Y; int yMax = baseClipElments[0].clipRect.Y + baseClipElments[0].clipRect.Height; for (int i = 1; i < baseClipElments.Count;i++ ) { MClipElement clip=baseClipElments[i]; if (xMin > clip.clipRect.X) { xMin = clip.clipRect.X; } if (xMax < clip.clipRect.X + clip.clipRect.Width) { xMax = clip.clipRect.X + clip.clipRect.Width; } if (yMin > clip.clipRect.Y) { yMin = clip.clipRect.Y; } if (yMax < clip.clipRect.Y + clip.clipRect.Height) { yMax = clip.clipRect.Y + clip.clipRect.Height; } } int widthAll = xMax - xMin; int heightAll = yMax - yMin; int xAll = (xMax + xMin )/ 2; int yAll = (yMax + yMin) / 2; foreach (MClipElement bClip in baseClipElments) { MFrameUnit_Bitmap fUnit = new MFrameUnit_Bitmap(); fUnit.SetParent(frameEdit); int offX = (bClip.clipRect.X + bClip.clipRect.Width / 2 - xAll) + (editPointClient.X - (getUICenterX())) / zoomLevel; int offY = -((bClip.clipRect.Y + bClip.clipRect.Height / 2) - yAll) + (editPointClient.Y - (getUICenterY())) / zoomLevel; fUnit.posX = offX; fUnit.posY = offY; fUnit.clipElement = bClip; frameEdit.Add(fUnit); } form_MA.historyManager.AddHistory(HistoryType.Action); this.UpdateRegion_EditAndFrameLevel(); form_MA.form_MTimeLine.updateTLFrameRegion(); } } } }