private static ISolidEntity RevolveCore(Curve profile, Point axisOrigin, Vector axisDirection, double startAngle, double sweepAngle) { if (profile == null) { throw new ArgumentNullException("profile"); } if (axisOrigin == null) { throw new ArgumentNullException("axisOrigin"); } if (axisDirection == null) { throw new ArgumentNullException("axisDirection"); } if (!profile.IsPlanar) { throw new System.ArgumentException(string.Format(Properties.Resources.InvalidArguments, "profile"), "profile"); } if (GeometryExtension.Equals(axisDirection.Length, 0.0)) { throw new System.ArgumentException(string.Format(Properties.Resources.InvalidArguments, "axisDirection"), "axisDirection"); } if (GeometryExtension.Equals(sweepAngle, 0.0)) { throw new System.ArgumentException(string.Format(Properties.Resources.InvalidArguments, "sweepAngle"), "sweepAngle"); } ISolidEntity entity = HostFactory.Factory.SolidByRevolve(profile.CurveEntity, axisOrigin.PointEntity, axisDirection.IVector, startAngle, sweepAngle); if (entity == null) { throw new InvalidOperationException(string.Format(Properties.Resources.OperationFailed, "Solid.Revolve")); } return(entity); }
/// <summary> /// /// </summary> /// <param name="other"></param> /// <returns></returns> public bool IsPerpendicular(Vector other) { if (other == null) { throw new System.ArgumentNullException("other"); } var normalizedThis = Normalize(); var normalizedOther = other.Normalize(); var dotProd = normalizedThis.Dot(normalizedOther); return(GeometryExtension.Equals(Math.Abs(dotProd), 0.0)); }
internal static bool EqualsTo(this IPointEntity thisValue, IPointEntity value) { if (Object.ReferenceEquals(thisValue, value)) { return(true); } if (null == thisValue || null == value) { return(false); } return(GeometryExtension.Equals(thisValue.X, value.X) && GeometryExtension.Equals(thisValue.Y, value.Y) && GeometryExtension.Equals(thisValue.Z, value.Z)); }
/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> public override bool Equals(object obj) { if (Object.ReferenceEquals(this, obj)) { return(true); } Vector vec = obj as Vector; if (null == vec) { return(false); } return(GeometryExtension.Equals(vec.X, X) && GeometryExtension.Equals(vec.Y, Y) && GeometryExtension.Equals(vec.Z, Z)); }
/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> protected override bool Equals(DesignScriptEntity obj) { if (base.Equals(obj)) { return(true); } var arc = obj as Arc; if (arc == null) { return(false); } return(CenterPoint.Equals(arc.CenterPoint) && Normal.Equals(arc.Normal) && GeometryExtension.Equals(Radius, arc.Radius)); }
/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> protected override bool Equals(DesignScriptEntity obj) { if (base.Equals(obj)) { return(true); } var other = obj as Circle; if (obj == null || other == null) { return(false); } return(CenterPoint.Equals(other.CenterPoint) && GeometryExtension.Equals(Radius, other.Radius) && Normal.Equals(other.Normal)); }
/// <summary> /// /// </summary> /// <param name="obj"></param> /// <returns></returns> protected override bool Equals(DesignScriptEntity obj) { if (base.Equals(obj)) { return(true); } var pt = obj as Point; if (pt == null) { return(false); } else { return(GeometryExtension.Equals(X, pt.X) && GeometryExtension.Equals(Y, pt.Y) && GeometryExtension.Equals(Z, pt.Z)); } }
public static bool LessThanOrEqualTo(this Double thisValue, Double value) { return(thisValue < value || GeometryExtension.Equals(thisValue, value)); }
public static bool EqualsTo(this Double thisValue, Double value) { return(GeometryExtension.Equals(thisValue, value)); }
internal bool IsZeroVector() { return(GeometryExtension.Equals(X, 0.0) && GeometryExtension.Equals(Y, 0.0) && GeometryExtension.Equals(Z, 0.0)); }