public override Transform CalculateTransform(Rhino.Display.RhinoViewport viewport, Point3d point) { Point3d basePoint; if (!TryGetBasePoint(out basePoint)) return Transform.Identity; double len2 = (point - basePoint).Length; double len1 = (RefPoint - basePoint).Length; if (Math.Abs(len1) < 0.000001 || Math.Abs(len2) < 0.000001) return Transform.Identity; Scale = len2 / len1; Plane plane = viewport.ConstructionPlane(); plane.Origin = basePoint; return Transform.Scale(plane, Scale, Scale, Scale); }
public Transform CalculateTransform( Rhino.Display.RhinoViewport viewport, double d ) { Point3d basePoint; if (!TryGetBasePoint(out basePoint)) return Transform.Identity; Plane plane = viewport.ConstructionPlane(); plane.Origin = basePoint; Vector3d v = RefPoint - basePoint; double len1 = v.Length; if (Math.Abs(len1) < 0.000001) return Transform.Identity; v.Unitize(); v = v * d; double len2 = v.Length; if (Math.Abs(len2) < 0.000001) return Transform.Identity; Scale = len2 / len1; return Transform.Scale(plane, Scale, Scale, Scale); }