public void AddGraphic(Function3D func) { if (IsGraphicExists(func.ID)) { return; } functions[functionsCount++] = new Function3D(func.ID, func.GraphicFunction); }
private void Awake() { //get the Function3D component attatched or generate if null. function3D = gameObject.GetComponent <Function3D>(); if (function3D == null) { //Generate and set parameters of function3D to x y z. function3D = gameObject.AddComponent <Function3D>(); function3D.parameters = new List <string>() { "x", "y", "z" }; } }
private void Start() { function3D = objectWithFunction3D.GetComponent <Function3D>(); ErrorText = gameObject.GetComponent <TextMeshProUGUI>(); }
static Flap() { a_a6 = new Function2D(a_a6_ar, a_a6_a_a6); lamda1 = new Function2D(lamda1_c_cf, lamda1_lamda1); lamda2_planeFlap = new Function2D(lamda2_planeFlap_delta, lamda2_planeFlap_lamda2); lamda2_splitFlap_tc012 = new Function2D(lamda2_splitFlap_tc012_delta, lamda2_splitFlap_tc012_lamda2); lamda2_splitFlap_tc021 = new Function2D(lamda2_splitFlap_tc021_delta, lamda2_splitFlap_tc021_lamda2); lamda2_splitFlap_lamda2 = (new Function2D[] { lamda2_splitFlap_tc012, lamda2_splitFlap_tc021 }); lamda2_splitFlap = new Function3D(lamda2_splitFlap_t_c, lamda2_splitFlap_lamda2); lamda2_slottedFlap_tc012 = new Function2D(lamda2_slottedFlap_tc012_delta, lamda2_slottedFlap_tc012_lamda2); lamda2_slottedFlap_tc021 = new Function2D(lamda2_slottedFlap_tc021_delta, lamda2_slottedFlap_tc021_lamda2); lamda2_slottedFlap_lamda2 = (new Function2D[] { lamda2_slottedFlap_tc012, lamda2_slottedFlap_tc021 }); lamda2_slottedFlap = new Function3D(lamda2_slottedFlap_t_c, lamda2_slottedFlap_lamda2); mu1_tc012 = new Function2D(mu1_tc012_c_cf, mu1_tc012_mu1); mu1_tc021 = new Function2D(mu1_tc021_c_cf, mu1_tc021_mu1); mu1_tc030 = new Function2D(mu1_tc030_c_cf, mu1_tc030_mu1); mu1_mu1 = (new Function2D[] { mu1_tc012, mu1_tc021, mu1_tc030 }); mu1 = new Function3D(mu1_t_c, mu1_mu1); delta1_pFsP_tc012 = new Function2D(delta1_pFsF_tc012_c_cf, delta1_pFsF_tc012_delta1); delta1_pFsP_tc021 = new Function2D(delta1_pFsF_tc021_c_cf, delta1_pFsF_tc021_delta1); delta1_pFsP_tc030 = new Function2D(delta1_pFsF_tc030_c_cf, delta1_pFsF_tc030_delta1); delta1_pFsF_delta1 = (new Function2D[] { delta1_pFsP_tc012, delta1_pFsP_tc021, delta1_pFsP_tc030 }); delta1_pFsF = new Function3D(delta1_pFsF_t_c, delta1_pFsF_delta1); delta1_slottedFlap_tc012030 = new Function2D( delta1_slottedFlap_tc012030_c_cf, delta1_slottedFlap_tc012030_delta1); delta1_slottedFlap_tc021 = new Function2D( delta1_slottedFlap_tc021_c_cf, delta1_slottedFlap_tc021_delta1); delta1_slottedFlap_delta1 = (new Function2D[] { delta1_slottedFlap_tc012030, delta1_slottedFlap_tc021, delta1_slottedFlap_tc012030 }); delta1_slottedFlap = new Function3D(delta1_slottedFlap_t_c, delta1_slottedFlap_delta1); delta2_planeFlap = new Function2D(delta2_planeFlap_delta, delta2_planeFlap_delta2); delta2_splitFlap_tc012 = new Function2D(delta2_splitFlap_tc012_delta, delta2_splitFlap_tc012_delta2); delta2_splitFlap_tc021 = new Function2D(delta2_splitFlap_tc021_delta, delta2_splitFlap_tc021_delta2); delta2_splitFlap_tc030 = new Function2D(delta2_splitFlap_tc030_delta, delta2_splitFlap_tc030_delta2); delta2_splitFlap_delta2 = (new Function2D[] { delta2_splitFlap_tc012, delta2_splitFlap_tc021, delta2_splitFlap_tc030 }); delta2_splitFlap = new Function3D(delta2_splitFlap_t_c, delta2_splitFlap_delta2); delta2_slottedFlap_tc012 = new Function2D( delta2_slottedFlap_tc012_delta, delta2_slottedFlap_tc012_delta2); delta2_slottedFlap_tc021 = new Function2D( delta2_slottedFlap_tc021_delta, delta2_slottedFlap_tc021_delta2); delta2_slottedFlap_tc030 = new Function2D( delta2_slottedFlap_tc030_delta, delta2_slottedFlap_tc030_delta2); delta2_slottedFlap_delta2 = (new Function2D[] { delta2_slottedFlap_tc012, delta2_slottedFlap_tc021, delta2_slottedFlap_tc030 }); delta2_slottedFlap = new Function3D(delta2_slottedFlap_t_c, delta2_slottedFlap_delta2); ka_cfc1 = new Function2D(ka_cfc1_delta, ka_cfc1_ka); ka_cfc2 = new Function2D(ka_cfc2_delta, ka_cfc2_ka); ka_cfc3 = new Function2D(ka_cfc3_delta, ka_cfc3_ka); ka_cfc4 = new Function2D(ka_cfc4_delta, ka_cfc4_ka); ka_ka = (new Function2D[] { ka_cfc1, ka_cfc2, ka_cfc3, ka_cfc4 }); ka = new Function3D(ka_cfc, ka_ka); }
public void draw(string function) { string s = sub(function, 0, function.IndexOf("=")); Debug.Log(s); string f = sub(function, function.IndexOf("=") + 1, function.Length); Debug.Log(f); IObj obj = null; if (f.Contains(",")) { f = sub(f, 1, f.Length - 1); string[] comp = f.Split(','); if (s.Contains("(x,y,z)")) { GameObject gameObject = Instantiate(vectorField3DObject, transform.position + Vector3.up, Quaternion.identity) as GameObject; gameObject.transform.localScale = new Vector3(10, 10, 10); VectorField3D vectorField3D = gameObject.GetComponent <VectorField3D>(); vectorField3D.sex = comp[0]; vectorField3D.sey = comp[1]; vectorField3D.sez = comp[2]; obj = vectorField3D; //vectorField3D.update(); } else if (s.Contains("(x,y)")) { GameObject gameObject = Instantiate(vectorField2DObject, transform.position + Vector3.up, Quaternion.identity) as GameObject; gameObject.transform.localScale = new Vector3(10, 10, 10); VectorField2D vectorField2D = gameObject.GetComponent <VectorField2D>(); Debug.Log("vector2d"); Debug.Log(comp[0]); Debug.Log(comp[1]); vectorField2D.sex = comp[0]; vectorField2D.sey = comp[1]; obj = vectorField2D; //vectorField2D.update(); } } else { Debug.Log(function); Regex r = new Regex("([a-zA-Z0-9]*?)\\^\\((.+?)\\)"); Match m = r.Match(function); if (m.Success) { function = r.Replace(function, "Pow($1,$2)"); Debug.Log(m.Groups[1]); Debug.Log(m.Groups[2]); } Debug.Log(function); if (s.Contains("(x,y)")) { GameObject gameObject = Instantiate(function3DObject, transform.position + Vector3.up, Quaternion.identity) as GameObject; gameObject.transform.localScale = new Vector3(10, 10, 10); Function3D function3D = gameObject.GetComponent <Function3D>(); function3D.function = f; function3D.start(); function3D.compile(); obj = function3D; //function3D.update(); } else if (s.Contains("(x)")) { GameObject gameObject = Instantiate(function2DObject, transform.position + Vector3.up, Quaternion.identity) as GameObject; gameObject.transform.localScale = new Vector3(100, 100, 100); Function2D function2D = gameObject.GetComponent <Function2D>(); Debug.Log("2D"); function2D.function = f; obj = function2D; //function2D.update(); } } if (obj != null) { Debug.Log("Queue"); main.unassigned.Enqueue(obj); Debug.Log(main.unassigned.Count); } }
public static Vector3 Morph(float u, float v, float t, Function3D from, Function3D to, float progress) { return(Vector3.LerpUnclamped( from(u, v, t), to(u, v, t), SmoothStep(0f, 1f, progress))); }
public static Vector3 numDerivative3D(float t, Function3D delegate3D) { return(new Vector3(numDerivative(t, delegate3D.xExpr), numDerivative(t, delegate3D.yExpr), numDerivative(t, delegate3D.zExpr))); }
public static Vector3 numDerivative3D(Vector3 vector, Function3D delegate3D) { return(new Vector3(numDerivative(vector.x, delegate3D.xExpr), numDerivative(vector.y, delegate3D.yExpr), numDerivative(vector.z, delegate3D.zExpr))); }