public SnappedSphere() { FeatureCurves = new FeatureCurve[1]; FeatureCurves[0] = ProjectionParallelCircle = new CircleFeatureCurve(); ProjectionParallelCircle.Normal = new TVec(0, 0, 1); ProjectionParallelCircle.NormalResult = new Vector3D(0, 0, 1); }
public SnappedBendedGenCylinder() { FeatureCurves = new FeatureCurve[2]; // top curve FeatureCurves[0] = TopFeatureCurve = new CircleFeatureCurve(); // bottom curve FeatureCurves[1] = BottomFeatureCurve = new CircleFeatureCurve(); }
public SnappedCuboid() { FeatureCurves = new FeatureCurve[6]; FeatureCurves[0] = TopPlane = new RectangleFeatureCurve(); FeatureCurves[1] = BotPlane = new RectangleFeatureCurve(); FeatureCurves[2] = LftPlane = new RectangleFeatureCurve(); FeatureCurves[3] = RgtPlane = new RectangleFeatureCurve(); FeatureCurves[4] = FrnPlane = new RectangleFeatureCurve(); FeatureCurves[5] = BakPlane = new RectangleFeatureCurve(); }
public SnappedCylindricalPrimitive() { FeatureCurves = new FeatureCurve[2]; // top curve FeatureCurves[0] = TopFeatureCurve = new CircleFeatureCurve(); // bottom curve FeatureCurves[1] = BottomFeatureCurve = new CircleFeatureCurve(); }
/// <summary> /// Checks weather two feature curves actually represent the same curve on the sketch (by /// checking which sketch curves they are snapped to). /// </summary> /// <param name="left">The first curve</param> /// <param name="right">The second curve</param> /// <returns><c>true</c> if and only if both <paramref name="left"/> and <paramref name="right"/> /// curves are snapped to the same object curve on the sketch.</returns> public static bool IsSameObjectCurve(this FeatureCurve left, FeatureCurve right) { Contract.Requires(left != null); Contract.Requires(right != null); Contract.Requires(left is CircleFeatureCurve || left is RectangleFeatureCurve); Contract.Requires(right is CircleFeatureCurve || right is RectangleFeatureCurve); var leftCircle = left as CircleFeatureCurve; var rightCircle = right as CircleFeatureCurve; if (leftCircle != null && rightCircle != null) { return(leftCircle.SnappedTo != null && rightCircle.SnappedTo != null && leftCircle.SnappedTo == rightCircle.SnappedTo); } return(false); // TODO: Check this for rectangles too. }
/// <summary> /// Checks if a feature curve is free, that is the opposite of snapped. /// </summary> /// <param name="featureCurve">The feature curve to check</param> /// <returns>The opposite of the <see cref="FeatureCurve.IsSnapped"/> method</returns> public static bool IsFree(this FeatureCurve featureCurve) { Contract.Requires(featureCurve != null); return(!featureCurve.IsSnapped()); }