/// <summary> /// Initializes a new instance of the <see cref="MoveTextOperation"/> class /// using the data read from persistent storage. /// </summary> /// <param name="editDeserializer">The mechanism for reading back content.</param> internal MoveTextOperation(EditDeserializer editDeserializer) : base(editDeserializer) { m_Text = editDeserializer.ReadFeatureRef<TextFeature>(DataField.Text); m_OldPosition = editDeserializer.ReadPointGeometry(DataField.OldX, DataField.OldY); m_NewPosition = editDeserializer.ReadPointGeometry(DataField.NewX, DataField.NewY); if (editDeserializer.IsNextField(DataField.OldPolygonX)) m_OldPolPosition = editDeserializer.ReadPointGeometry(DataField.OldPolygonX, DataField.OldPolygonY); else m_OldPolPosition = null; }
/// <summary> /// Reads data that was previously written using <see cref="WriteData"/> /// </summary> /// <param name="editDeserializer">The mechanism for reading back content.</param> /// <param name="label">The polygon label that was modified</param> /// <param name="newPosition">The revised position of the reference point.</param> /// <param name="oldPosition">The original position of the reference point.</param> static void ReadData(EditDeserializer editDeserializer, out TextFeature label, out PointGeometry newPosition, out PointGeometry oldPosition) { label = editDeserializer.ReadFeatureRef <TextFeature>(DataField.Label); newPosition = editDeserializer.ReadPointGeometry(DataField.NewX, DataField.NewY); if (editDeserializer.IsNextField(DataField.OldX)) { oldPosition = editDeserializer.ReadPointGeometry(DataField.OldX, DataField.OldY); } else { oldPosition = null; } }
/// <summary> /// Initializes a new instance of the <see cref="MoveTextOperation"/> class /// using the data read from persistent storage. /// </summary> /// <param name="editDeserializer">The mechanism for reading back content.</param> internal MoveTextOperation(EditDeserializer editDeserializer) : base(editDeserializer) { m_Text = editDeserializer.ReadFeatureRef <TextFeature>(DataField.Text); m_OldPosition = editDeserializer.ReadPointGeometry(DataField.OldX, DataField.OldY); m_NewPosition = editDeserializer.ReadPointGeometry(DataField.NewX, DataField.NewY); if (editDeserializer.IsNextField(DataField.OldPolygonX)) { m_OldPolPosition = editDeserializer.ReadPointGeometry(DataField.OldPolygonX, DataField.OldPolygonY); } else { m_OldPolPosition = null; } }
/// <summary> /// Initializes a new instance of the <see cref="IntersectOperation"/> class /// using the data read from persistent storage. /// </summary> /// <param name="editDeserializer">The mechanism for reading back content.</param> protected IntersectOperation(EditDeserializer editDeserializer) : base(editDeserializer) { // If the data was produced via export from an old CEdit file, we'll have the absolute position if (editDeserializer.IsNextField(DataField.X)) CheckPosition = editDeserializer.ReadPointGeometry(DataField.X, DataField.Y); }
/// <summary> /// Initializes a new instance of the <see cref="IntersectOperation"/> class /// using the data read from persistent storage. /// </summary> /// <param name="editDeserializer">The mechanism for reading back content.</param> protected IntersectOperation(EditDeserializer editDeserializer) : base(editDeserializer) { // If the data was produced via export from an old CEdit file, we'll have the absolute position if (editDeserializer.IsNextField(DataField.X)) { CheckPosition = editDeserializer.ReadPointGeometry(DataField.X, DataField.Y); } }
/// <summary> /// Reads data that was previously written using <see cref="WriteData"/> /// </summary> /// <param name="editDeserializer">The mechanism for reading back content.</param> /// <param name="font">The text style</param> /// <param name="position">Position of the text's reference point</param> /// <param name="height">The height of the text, in meters on the ground.</param> /// <param name="width">The total width of the text, in meters on the ground.</param> /// <param name="rotation">Clockwise rotation from horizontal</param> static void ReadData(EditDeserializer editDeserializer, out IFont font, out PointGeometry position, out float height, out float width, out IAngle rotation) { if (editDeserializer.IsNextField(DataField.Font)) { int fontId = editDeserializer.ReadInt32(DataField.Font); font = EnvironmentContainer.FindFontById(fontId); } else { font = null; } position = editDeserializer.ReadPointGeometry(DataField.X, DataField.Y); width = (float)editDeserializer.ReadDouble(DataField.Width); height = (float)editDeserializer.ReadDouble(DataField.Height); rotation = editDeserializer.ReadRadians(DataField.Rotation); }
/// <summary> /// Reads data that was previously written using <see cref="WriteData"/> /// </summary> /// <param name="editDeserializer">The mechanism for reading back content.</param> /// <param name="label">The polygon label that was modified</param> /// <param name="newPosition">The revised position of the reference point.</param> /// <param name="oldPosition">The original position of the reference point.</param> static void ReadData(EditDeserializer editDeserializer, out TextFeature label, out PointGeometry newPosition, out PointGeometry oldPosition) { label = editDeserializer.ReadFeatureRef<TextFeature>(DataField.Label); newPosition = editDeserializer.ReadPointGeometry(DataField.NewX, DataField.NewY); if (editDeserializer.IsNextField(DataField.OldX)) oldPosition = editDeserializer.ReadPointGeometry(DataField.OldX, DataField.OldY); else oldPosition = null; }
/// <summary> /// Reads data that was previously written using <see cref="WriteData"/> /// </summary> /// <param name="editDeserializer">The mechanism for reading back content.</param> /// <param name="isTopological">Are we dealing with a polygon label</param> /// <param name="polPos">The label reference point (usually applies onlt to polygon labels). Null if it's /// identical to the position recorded via the geometry object.</param> /// <param name="geom">The geometry for the text.</param> static void ReadData(EditDeserializer editDeserializer, out bool isTopological, out PointGeometry polPos, out TextGeometry geom) { isTopological = editDeserializer.ReadBool(DataField.Topological); if (editDeserializer.IsNextField(DataField.PolygonX)) polPos = editDeserializer.ReadPointGeometry(DataField.PolygonX, DataField.PolygonY); else polPos = null; geom = editDeserializer.ReadPersistent<TextGeometry>(DataField.Type); }