Beispiel #1
0
 public void AddGraphic(Function3D func)
 {
     if (IsGraphicExists(func.ID))
     {
         return;
     }
     functions[functionsCount++] = new Function3D(func.ID, func.GraphicFunction);
 }
Beispiel #2
0
 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>();
 }
Beispiel #4
0
 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);
 }
Beispiel #5
0
    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);
        }
    }
Beispiel #6
0
 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)));
 }
Beispiel #7
0
 public static Vector3 numDerivative3D(float t, Function3D delegate3D)
 {
     return(new Vector3(numDerivative(t, delegate3D.xExpr), numDerivative(t, delegate3D.yExpr), numDerivative(t, delegate3D.zExpr)));
 }
Beispiel #8
0
 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)));
 }