internal override Geometry TransformBy(ICoordinateSystemEntity csEntity) { //Let the default code handle orthogonal transform. if (csEntity.IsScaledOrtho()) { return(base.TransformBy(csEntity)); } using (IPointEntity origin = Origin.PointEntity.CopyAndTransform(CoordinateSystem.WCS.CSEntity, csEntity) as IPointEntity) { using (IPointEntity pt = Origin.PointEntity.CopyAndTranslate(Normal.IVector) as IPointEntity) { using (IPointEntity transformPt = pt.CopyAndTransform(CoordinateSystem.WCS.CSEntity, csEntity) as IPointEntity) { Vector normal = origin.GetVectorTo(transformPt).Normalize(); return(Plane.ByOriginNormal(origin.ToPoint(false, null), normal, Size)); } } } }
public static double DistanceTo(this IPointEntity fromPoint, IPointEntity toPoint) { return(fromPoint.GetVectorTo(toPoint).GetLength()); }