public static MultiVector CreatePoint(MultiVector v) { if (IPNS.GetGeometricEntity(v) != GeometricEntity.Vector) { throw new InvalidEntityException(); } return(v + 0.5 * MultiVector.ScalarProduct(v, v) * Basis.E8 + Basis.E0); }
public static void GetPointParams(MultiVector obj, out MultiVector x) { MultiVector temp; double r; IPNS.GetSphereParams(obj, out temp, out r); if (r != 0.0) { throw new InvalidEntityException(); } x = temp; }
public static MultiVector CreateSphere(double e1, double e2, double e3, double r) { return(IPNS.CreatePoint(e1, e2, e3) - 0.5 * r * r * Basis.E8); }
public static MultiVector CreateCircle(MultiVector n, MultiVector c, double r) { double d = (double)MultiVector.ScalarProduct(c, n); return(IPNS.CreatePlane(n, d) ^ IPNS.CreateSphere(c, r)); }
public static MultiVector CreateSphere(MultiVector c, double r) { return(IPNS.CreatePoint(c) - 0.5 * r * r * Basis.E8); }