/// <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(); }
// 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)); }
// 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; }
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; } }
/// <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> }
// Use this for initialization void Start() { numOfLizards++; world = GameObject.Find("ErosionSim").GetComponent <ErosionSim>(); //treeStuff = GameObject.Find("TreeStuff").GetComponent<TreeStuff>(); }
// Use this for initialization void Start() { world = GameObject.Find("ErosionSim").GetComponent <ErosionSim>(); }