/// <summary> /// /// </summary> /// <param name="size"></param> /// <returns></returns> public static IField3d <double> CreateBox(Vector3d size) { return(Create(p => DistanceFunctions.Box(p, size))); }
/// <summary> /// /// </summary> /// <param name="center"></param> /// <param name="radius"></param> /// <returns></returns> public static IField3d <double> CreateSphere(Vector3d center, double radius) { return(Create(p => DistanceFunctions.Sphere(p - center, radius))); }
/// <summary> /// /// </summary> /// <param name="f0"></param> /// <param name="f1"></param> /// <returns></returns> public static IField3d <double> CreateDifference(IField3d <double> f0, IField3d <double> f1) { return(Create(p => DistanceFunctions.Difference(f0.ValueAt(p), f1.ValueAt(p)))); }
/// <summary> /// /// </summary> /// <param name="f0"></param> /// <param name="f1"></param> /// <returns></returns> public static IField3d <double> CreateIntersection(IField3d <double> f0, IField3d <double> f1) { return(Create(p => DistanceFunctions.Intersection(f0.ValueAt(p), f1.ValueAt(p)))); }
/// <summary> /// /// </summary> /// <param name="start"></param> /// <param name="axis"></param> /// <param name="radius"></param> /// <returns></returns> public static IField3d <double> CreateCapsule(Vector3d start, Vector3d axis, double radius) { return(Create(p => DistanceFunctions.Capsule(p, start, axis, radius))); }