private void UpdateObjectOverMarker() { SECursor cursor = GameData.Cursor; float polygonScaleX = (float)mObjectOverMarker.Points[0].X; float polygonScaleY = (float)mObjectOverMarker.Points[0].Y; mModelOverHighlight.Visible = false; if (cursor.SpritesOver.Count != 0) { mObjectOverMarker.Visible = true; mObjectOverMarker.Position = cursor.SpritesOver[0].Position; mObjectOverMarker.RotationMatrix = cursor.SpritesOver[0].RotationMatrix; mObjectOverMarker.ScaleBy(cursor.SpritesOver[0].ScaleX / polygonScaleX, cursor.SpritesOver[0].ScaleY / polygonScaleY); } else if (cursor.SpriteFramesOver.Count != 0) { mObjectOverMarker.Visible = true; mObjectOverMarker.Position = cursor.SpriteFramesOver[0].Position; mObjectOverMarker.RotationMatrix = cursor.SpriteFramesOver[0].RotationMatrix; mObjectOverMarker.ScaleBy(cursor.SpriteFramesOver[0].ScaleX / polygonScaleX, cursor.SpriteFramesOver[0].ScaleY / polygonScaleY); } else if (cursor.PositionedModelsOver.Count != 0) { PositionedModel modelOver = cursor.PositionedModelsOver[0]; mModelOverHighlight.Visible = true; mModelOverHighlight.SetDataFrom(modelOver); mModelOverHighlight.Position = modelOver.Position; mModelOverHighlight.RotationMatrix = modelOver.RotationMatrix; mModelOverHighlight.ScaleX = modelOver.ScaleX; mModelOverHighlight.ScaleY = modelOver.ScaleY; mModelOverHighlight.ScaleZ = modelOver.ScaleZ; } else if (cursor.TextsOver.Count != 0) { mObjectOverMarker.Visible = true; mObjectOverMarker.Position = cursor.TextsOver[0].Position; mObjectOverMarker.Position.X = cursor.TextsOver[0].HorizontalCenter; mObjectOverMarker.Position.Y = cursor.TextsOver[0].VerticalCenter; mObjectOverMarker.RotationMatrix = cursor.TextsOver[0].RotationMatrix; mObjectOverMarker.ScaleBy(cursor.TextsOver[0].ScaleX / polygonScaleX, cursor.TextsOver[0].ScaleY / polygonScaleY); } else { mObjectOverMarker.Visible = false; } }
static void UpdateSelectionUI() { #region Handle Text, Sprite, and SpriteFrame selection #region Get the number of objects needed int numberOfRectangles = GameData.EditorLogic.CurrentSprites.Count + GameData.EditorLogic.CurrentSpriteFrames.Count;// + //GameData.EditorLogic.CurrentTexts.Count; #endregion #region Create and destroy to get the number needed while (numberOfRectangles < mCurrentSelectionRectangles.Count) { mCurrentSelectionRectangles[0].Destroy(); } while (numberOfRectangles > mCurrentSelectionRectangles.Count) { mCurrentSelectionRectangles.Add(new ScalableSelector()); } #endregion int currentIndex = 0; foreach (Sprite sprite in GameData.EditorLogic.CurrentSprites) { mCurrentSelectionRectangles[currentIndex].UpdateToObject(sprite, SpriteManager.Camera); currentIndex++; } foreach (SpriteFrame spriteFrame in GameData.EditorLogic.CurrentSpriteFrames) { mCurrentSelectionRectangles[currentIndex].UpdateToObject(spriteFrame, SpriteManager.Camera); currentIndex++; } //foreach (Text text in GameData.EditorLogic.CurrentTexts) //{ // mCurrentSelectionRectangles[currentIndex].UpdateToObject(text, SpriteManager.Camera); // currentIndex++; //} #endregion #region Handle PositionedModel selection mSelectedModelHighlight.Visible = GameData.EditorLogic.CurrentPositionedModels.Count > 0; if (mSelectedModelHighlight.Visible) { PositionedModel selectedModel = GameData.EditorLogic.CurrentPositionedModels[0]; mSelectedModelHighlight.SetDataFrom(selectedModel); mSelectedModelHighlight.Position = selectedModel.Position; mSelectedModelHighlight.RotationMatrix = selectedModel.RotationMatrix; mSelectedModelHighlight.ScaleX = selectedModel.ScaleX; mSelectedModelHighlight.ScaleY = selectedModel.ScaleY; mSelectedModelHighlight.ScaleZ = selectedModel.ScaleZ; } #endregion }