/// <summary> /// Initializes a new instance of the <see cref="PointFeature"/> class (with geometry that /// isn't shared with any other point), and records it as part of the map model. /// </summary> /// <param name="f">Basic information about the feature.</param> /// <param name="g">The geometry for the point (may be null)</param> internal PointFeature(IFeature f, PointGeometry g) : base(f) { if (g == null) m_Geom = null; else m_Geom = new Node(this, g); }
/// <summary> /// Creates a new <c>PointFeature</c> with geometry that isn't shared /// with any other point. /// </summary> /// <param name="creator">The operation that created the feature (not null)</param> /// <param name="id">The internal ID of this feature within the project that created it.</param> /// <param name="e">The entity type for the feature (not null)</param> /// <param name="g">The geometry for the point (may be null)</param> internal PointFeature(Operation creator, InternalIdValue id, IEntity e, PointGeometry g) : base(creator, id, e, null) { if (g == null) m_Geom = null; else m_Geom = new Node(this, g); }
/// <summary> /// Initializes a new instance of the <see cref="PointFeature"/> class /// using the data read from persistent storage. /// </summary> /// <param name="editDeserializer">The mechanism for reading back content.</param> internal PointFeature(EditDeserializer editDeserializer) : base(editDeserializer) { long x, y; ReadData(editDeserializer, out x, out y); m_Geom = new Node(this, new PointGeometry(x, y)); }
/// <summary> /// Defines the position of this point to refer to an existing node. /// </summary> /// <param name="value">The position to assign</param> internal void SetNode(Node value) { m_Geom = value; }
/// <summary> /// Defines the position of this point as a new un-shared position. /// </summary> /// <param name="ctx">The context in which the assignment is being made. May be null, but do /// so with care - an editing context is vital when dealing with the propagation of updates. /// </param> /// <param name="value">The position to assign (not null).</param> internal void ApplyPointGeometry(EditingContext ctx, PointGeometry value) { if (value == null) throw new ArgumentNullException(); if (ctx != null) ctx.RegisterChange(this); m_Geom = new Node(this, value); }