/// <summary> /// Set a capability for a model. /// </summary> /// <param name="self">Element model to affect</param> /// <param name="capability">Capability to set</param> /// <param name="active">true to set the capability, false to remove it</param> public static void SetCapability(this IGraphElementModel self, Capabilities capability, bool active) { if (!(self.Capabilities is IList <Capabilities> capabilities)) { return; } if (active) { if (!self.HasCapability(capability)) { capabilities.Add(capability); } } else { capabilities.Remove(capability); } }
/// <summary> /// Tests if a model has the capability to be moved. /// </summary> /// <param name="self">Model to test</param> /// <returns>True if it has the capability, false otherwise.</returns> public static bool IsMovable(this IGraphElementModel self) { return(self.HasCapability(Capabilities.Movable)); }