public override int GetHashCode() { unchecked { return((CentrePoint.GetHashCode() * 397) ^ Radius.GetHashCode()); } }
public override void Transform(Matrix4x4 transformationMatrixIn) { CentrePoint.Transform(transformationMatrixIn); StartPoint.Transform(transformationMatrixIn); Radius = GeometricArithmeticModule.ABSMeasure(StartPoint, CentrePoint); Update(); }
public override EntityObject GetAsDXFEntity() { return(new Arc( CentrePoint.GetAsDXFVector(), Radius, StartAngle / Math.PI * 180, EndAngle / Math.PI * 180 )); }
public override netDxf.Entities.EntityObject GetAsDXFEntity(string layer) { return(new netDxf.Entities.Circle( CentrePoint.GetAsDXFVector(), Radius ) { Layer = new netDxf.Tables.Layer(layer) }); }
public override EntityObject GetAsDXFEntity(string layer) { return(new Arc( CentrePoint.GetAsDXFVector(), Radius, StartAngle / Math.PI * 180, EndAngle / Math.PI * 180 ) { Layer = new netDxf.Tables.Layer(layer) }); }
public override void WriteXml(XmlWriter writer) { writer.WriteStartElement(GetType().ToString()); WriteXmlBaseImpl(writer); writer.WriteElementString(nameof(Width), Width.ToString()); writer.WriteElementString(nameof(Height), Height.ToString()); CentrePoint.WriteXml(writer); writer.WriteEndElement(); }
public override void Transform(Matrix4x4 transformationMatrixIn) { // transform centre point CentrePoint.Transform(transformationMatrixIn); StartPoint.Transform(transformationMatrixIn); // use updated centre point to calculate major and minor axes var res = GeometricArithmeticModule.CalculateMajorMinorAxis(CentrePoint, StartPoint, StartAngle); // update details MajorAxis = res.MajorAxis; MinorAxis = res.MinorAxis; Update(); }
public override void WriteXml(XmlWriter writer) { writer.WriteStartElement(GetType().ToString()); base.WriteXml(writer); writer.WriteAttributeString(nameof(IsClosed), IsClosed.ToString()); CentrePoint.WriteXml(writer); writer.WriteStartElement(nameof(Points)); foreach (var point in Points) { point.WriteXml(writer); } writer.WriteEndElement(); writer.WriteEndElement(); }
public bool IsPointOnCircle(Point startPoint) { double distance = CentrePoint.DistanceTo(startPoint); return(Math.Abs(Radius - distance) <= SelkieConstants.EpsilonDistance); }
public override netDxf.Entities.EntityObject GetAsDXFEntity() { return(new netDxf.Entities.Circle( CentrePoint.GetAsDXFVector(), Radius )); }
public void ShuntPosition() { CentrePoint = CentrePoint.ShuntedBy(-Speed, 0); }