public static void AddAxisAlignedCubePropertyComparer() { PropertyComparer <AxisAlignedCube> axisAlignedCubePropertyComparer = new PropertyComparer <AxisAlignedCube>(); mPropertyComparers.Add(typeof(AxisAlignedCube), axisAlignedCubePropertyComparer); axisAlignedCubePropertyComparer.AddMemberWatching <float>("X"); axisAlignedCubePropertyComparer.AddMemberWatching <float>("Y"); axisAlignedCubePropertyComparer.AddMemberWatching <float>("Z"); axisAlignedCubePropertyComparer.AddMemberWatching <float>("ScaleX"); axisAlignedCubePropertyComparer.AddMemberWatching <float>("ScaleY"); axisAlignedCubePropertyComparer.AddMemberWatching <float>("ScaleZ"); }
static UndoManager() { // These should be moved into their own constructors that the user can call depending on what undos they need #region Set the members to watch for Sprites PropertyComparer <Sprite> spritePropertyComparer = new PropertyComparer <Sprite>(); mPropertyComparers.Add(typeof(Sprite), spritePropertyComparer); spritePropertyComparer.AddMemberWatching <float>("X"); spritePropertyComparer.AddMemberWatching <float>("Y"); spritePropertyComparer.AddMemberWatching <float>("Z"); spritePropertyComparer.AddMemberWatching <float>("ScaleX"); spritePropertyComparer.AddMemberWatching <float>("ScaleY"); spritePropertyComparer.AddMemberWatching <float>("RotationX"); spritePropertyComparer.AddMemberWatching <float>("RotationY"); spritePropertyComparer.AddMemberWatching <float>("RotationZ"); spritePropertyComparer.AddMemberWatching <float>("RelativeX"); spritePropertyComparer.AddMemberWatching <float>("RelativeY"); spritePropertyComparer.AddMemberWatching <float>("RelativeZ"); spritePropertyComparer.AddMemberWatching <float>("RelativeRotationX"); spritePropertyComparer.AddMemberWatching <float>("RelativeRotationY"); spritePropertyComparer.AddMemberWatching <float>("RelativeRotationZ"); #endregion #region Set the members to watch for SpriteFrames PropertyComparer <SpriteFrame> spriteFramePropertyComparer = new PropertyComparer <SpriteFrame>(); mPropertyComparers.Add(typeof(SpriteFrame), spriteFramePropertyComparer); spriteFramePropertyComparer.AddMemberWatching <float>("X"); spriteFramePropertyComparer.AddMemberWatching <float>("Y"); spriteFramePropertyComparer.AddMemberWatching <float>("Z"); spriteFramePropertyComparer.AddMemberWatching <float>("ScaleX"); spriteFramePropertyComparer.AddMemberWatching <float>("ScaleY"); spriteFramePropertyComparer.AddMemberWatching <float>("RotationX"); spriteFramePropertyComparer.AddMemberWatching <float>("RotationY"); spriteFramePropertyComparer.AddMemberWatching <float>("RotationZ"); spriteFramePropertyComparer.AddMemberWatching <float>("RelativeX"); spriteFramePropertyComparer.AddMemberWatching <float>("RelativeY"); spriteFramePropertyComparer.AddMemberWatching <float>("RelativeZ"); spriteFramePropertyComparer.AddMemberWatching <float>("RelativeRotationX"); spriteFramePropertyComparer.AddMemberWatching <float>("RelativeRotationY"); spriteFramePropertyComparer.AddMemberWatching <float>("RelativeRotationZ"); #endregion #region Set the members to watch for Polygons PolygonPropertyComparer polygonPropertyComparer = new PolygonPropertyComparer(); mPropertyComparers.Add(typeof(Polygon), polygonPropertyComparer); polygonPropertyComparer.AddMemberWatching <float>("X"); polygonPropertyComparer.AddMemberWatching <float>("Y"); polygonPropertyComparer.AddMemberWatching <float>("Z"); polygonPropertyComparer.AddMemberWatching <float>("RotationZ"); #endregion #region Set the members to watch for AxisAlignedRectangles PropertyComparer <AxisAlignedRectangle> axisAlignedRectanglePropertyComparer = new PropertyComparer <AxisAlignedRectangle>(); mPropertyComparers.Add(typeof(AxisAlignedRectangle), axisAlignedRectanglePropertyComparer); axisAlignedRectanglePropertyComparer.AddMemberWatching <float>("X"); axisAlignedRectanglePropertyComparer.AddMemberWatching <float>("Y"); axisAlignedRectanglePropertyComparer.AddMemberWatching <float>("Z"); axisAlignedRectanglePropertyComparer.AddMemberWatching <float>("ScaleX"); axisAlignedRectanglePropertyComparer.AddMemberWatching <float>("ScaleY"); #endregion #region Set the members to watch for Circles PropertyComparer <Circle> circlePropertyComparer = new PropertyComparer <Circle>(); mPropertyComparers.Add(typeof(Circle), circlePropertyComparer); circlePropertyComparer.AddMemberWatching <float>("X"); circlePropertyComparer.AddMemberWatching <float>("Y"); circlePropertyComparer.AddMemberWatching <float>("Z"); circlePropertyComparer.AddMemberWatching <float>("Radius"); #endregion #region Set the members to watch for Spheres PropertyComparer <Sphere> spherePropertyComparer = new PropertyComparer <Sphere>(); mPropertyComparers.Add(typeof(Sphere), spherePropertyComparer); spherePropertyComparer.AddMemberWatching <float>("X"); spherePropertyComparer.AddMemberWatching <float>("Y"); spherePropertyComparer.AddMemberWatching <float>("Z"); spherePropertyComparer.AddMemberWatching <float>("Radius"); #endregion #region Set the members to watch for Texts PropertyComparer <Text> textPropertyComparer = new PropertyComparer <Text>(); mPropertyComparers.Add(typeof(Text), textPropertyComparer); textPropertyComparer.AddMemberWatching <float>("X"); textPropertyComparer.AddMemberWatching <float>("Y"); textPropertyComparer.AddMemberWatching <float>("Z"); textPropertyComparer.AddMemberWatching <float>("RotationZ"); #endregion #region Set the members to watch for PositionedModels PropertyComparer <PositionedModel> positionedModelPropertyComparer = new PropertyComparer <PositionedModel>(); mPropertyComparers.Add(typeof(PositionedModel), positionedModelPropertyComparer); positionedModelPropertyComparer.AddMemberWatching <float>("X"); positionedModelPropertyComparer.AddMemberWatching <float>("Y"); positionedModelPropertyComparer.AddMemberWatching <float>("Z"); positionedModelPropertyComparer.AddMemberWatching <float>("RotationZ"); #endregion #region Set the members to watch for SpriteGrids mPropertyComparers.Add(typeof(SpriteGrid), new SpriteGridPropertyComparer()); #endregion }