Ejemplo n.º 1
0
    /// <summary>
    /// This procedure contains the user code. Input parameters are provided as regular arguments,
    /// Output parameters as ref arguments. You don't have to assign output parameters,
    /// they will have a default value.
    /// </summary>
    private void RunScript(List <Point3d> P, Mesh M, double step, double eInd, double eMax, bool reset, bool go, ref object Me, ref object Pos, ref object Trails)
    {
        if (reset || er == null)
        {
            er  = new ErosionSim(M, P, step);
            pts = new Point3d[P.Count];
            trs = new Polyline[P.Count];
        }


        if (go)
        {
            // updates our Particles (only if they are alive)
            er.maxSpeed     = step;
            er.erosionIndex = eInd;
            er.erosionMax   = eMax;

            er.update();
            //foreach(Particle a in parts) if (a.alive) a.update(M1, step, eInd, eMax);

            // expiring solution forces the component to update
            Component.ExpireSolution(true);
        }

        // extracts positions and trails
        for (int i = 0; i < er.parts.Count; i++)
        {
            pts[i] = er.parts[i].pos;
            trs[i] = er.parts[i].trail.IsValid ? er.parts[i].trail : null;
        }

        Pos    = pts;
        Trails = trs;
        Me     = er.extractMesh();
    }
Ejemplo n.º 2
0
 // Use this for initialization
 void Start()
 {
     openTrees.Add(this.gameObject);
     transform.Rotate(270, 0, 0);
     world = GameObject.Find("ErosionSim").GetComponent <ErosionSim>();
     y     = world.getHeight(((this.transform.position.x + 256) / 511), ((this.transform.position.z + 256) / 511));
 }
Ejemplo n.º 3
0
 // constructor (public if we use it from RunScript)
 public Particle(ErosionSim er, Point3d pos)
 {
     this.er  = er;
     this.pos = pos;
     vel      = Vector3d.Zero;
     trail    = new Polyline();
     trail.Add(pos);
     alive = true;
 }
Ejemplo n.º 4
0
 void Start()
 {
     world = GameObject.Find("ErosionSim").GetComponent <ErosionSim>();
     if (this.CompareTag("Egg"))
     {
         y  = world.getHeight(((this.transform.position.x + 256) / 511), ((this.transform.position.z + 256) / 511));
         y += 2f;
     }
 }
Ejemplo n.º 5
0
    /// <summary>
    /// This procedure contains the user code. Input parameters are provided as regular arguments,
    /// Output parameters as ref arguments. You don't have to assign output parameters,
    /// they will have a default value.
    /// </summary>
    private void RunScript(List <Point3d> P, Mesh M, double step, double eInd, double eMax, bool go, bool reset, ref object Me, ref object Pos, ref object Trails)
    {
        // <Custom code>

        // reset or initialization
        if (reset || erosion == null || P.Count != erosion.parts.Count)
        {
            erosion = new ErosionSim(M, P);
        }

        if (go)
        {
            // update live variables
            erosion.step         = step;
            erosion.erosionIndex = eInd;
            erosion.erosionMax   = eMax;

            // update System
            erosion.Update();

            // expire solution
            Component.ExpireSolution(true);
        }
        // data extraction for output
        pts = new Point3d[P.Count];
        trs = new Polyline[P.Count];

        for (int i = 0; i < erosion.parts.Count; i++)
        {
            pts[i] = erosion.parts[i].pos;
            if (erosion.parts[i].trail.IsValid)
            {
                trs[i] = erosion.parts[i].trail;
            }
            else
            {
                trs[i] = null;
            }
        }

        Me     = erosion.extractMesh();
        Pos    = pts;
        Trails = trs;

        // </Custom code>
    }
Ejemplo n.º 6
0
 // Use this for initialization
 void Start()
 {
     numOfLizards++;
     world = GameObject.Find("ErosionSim").GetComponent <ErosionSim>();
     //treeStuff = GameObject.Find("TreeStuff").GetComponent<TreeStuff>();
 }
Ejemplo n.º 7
0
 // Use this for initialization
 void Start()
 {
     world = GameObject.Find("ErosionSim").GetComponent <ErosionSim>();
 }