Ejemplo n.º 1
0
        public void Open(string s)
        {
            TextModel filemodel = new TextModel();
            MassClass massclass = new MassClass(Num, s);

            StringMass    = massclass.StringMass();
            LengthMass    = massclass.LengthMass();
            LengthAllMass = massclass.LengthAllMass();
        }
Ejemplo n.º 2
0
    private void letsupdate()
    {
        for (int i = 0; i < InMass.Count; i++)
        {
            if ((i % num_node) < (num_node / 2))
            {
                InMass [i].massaddForce(new Vector3(-(addingforce), 0, 0));
            }
            else
            {
                InMass[i].massaddForce(new Vector3(addingforce, 0, 0));
            }
            InMass [i].massupdate();
            //			Debug.Log ("MassForce = " + InMass [i].massforce);
        }

        for (int i = 0; i < InSpring.Count; i++)
        {
            SpringClass spring = InSpring [i];

            if (spring.cutted == false)
            {
                MassClass m1 = spring.m1;
                MassClass m2 = spring.m2;
                spring.updateValues();

                Vector3 dir12    = spring.springdir;
                float   o_length = spring.original_spring_length;
                float   n_length = spring.new_spring_length;
                float   cte      = stifness * (n_length - o_length);

                Vector3 force1;
                force1.x = cte * dir12.x;
                force1.y = cte * dir12.y;
                force1.z = cte * dir12.z;

                Vector3 force2 = -force1;

                m1.massforce.x = -force1.x - damp * m1.velocity.x;
                m1.massforce.y = -force1.y - damp * m1.velocity.y;
                m1.massforce.z = -force1.z - damp * m1.velocity.z;

                m2.massforce.x = -force2.x - damp * m2.velocity.x;
                m2.massforce.y = -force2.y - damp * m2.velocity.y;
                m2.massforce.z = -force2.z - damp * m2.velocity.z;

                m1.massupdate();
                m2.massupdate();

                if (n_length > spring.threashold)
                {
                    spring.cut();
                }
            }
        }
    }
Ejemplo n.º 3
0
    public void init()
    {
        rand = Random.Range(0, 6);
        switch (rand)
        {
        case 0:
            massClass = MassClass.Asteroidan;
            mass      = Random.Range(0f, 0.00001f);
            radius    = Random.Range(0f, 0.03f);
            break;

        case 1:
            massClass = MassClass.Mercurian;
            mass      = Random.Range(0.00001f, 0.1f);
            radius    = Random.Range(0.03f, 0.7f);
            break;

        case 2:
            massClass = MassClass.Subterran;
            mass      = Random.Range(0.1f, 0.5f);
            radius    = Random.Range(0.5f, 1.2f);
            break;

        case 3:
            massClass = MassClass.Terran;
            mass      = Random.Range(0.5f, 2f);
            radius    = Random.Range(0.8f, 1.9f);
            break;

        case 4:
            massClass = MassClass.Superterran;
            mass      = Random.Range(2f, 10f);
            radius    = Random.Range(1.3f, 3.3f);
            break;

        case 5:
            massClass = MassClass.Neptunian;
            mass      = Random.Range(10f, 50f);
            radius    = Random.Range(2.1f, 5.7f);
            break;

        case 6:
            massClass = MassClass.Jovian;
            mass      = Random.Range(50f, 5000f);
            radius    = Random.Range(3.5f, 27f);
            break;

        default:
            break;
        }
    }
Ejemplo n.º 4
0
    public PlanetaryObject(Transform sun, Transform planet, MassClass massClass)
    {
        _worldUnits = 0.005f;
        _sun        = sun;
        _planet     = planet;
        _massClass  = massClass;
        _mass       = Random.Range((float)_massClass.minMass, (float)_massClass.maxMass);
        _radius     = Random.Range((float)_massClass.minRadius, (float)_massClass.maxRadius);

        _planet.position = Vector3.left * ((float)_radius * 5);
        Vector3 newScale = new Vector3(_worldUnits, _worldUnits, _worldUnits) * (float)_mass;

        _planet.localScale = new Vector3(1f, 1f, 1f) + newScale;
    }
Ejemplo n.º 5
0
        public void Open(string file)
        {
            string       s         = "";
            FileModel    filemodel = new FileModel();
            StreamReader sr        = new StreamReader(file);

            while (sr.EndOfStream != true)
            {
                s = sr.ReadLine();
            }
            MassClass massclass = new MassClass(Num, s);

            StringMass    = massclass.StringMass();
            LengthMass    = massclass.LengthMass();
            LengthAllMass = massclass.LengthAllMass();
            sr.Close();
        }
Ejemplo n.º 6
0
    public IPlanetarySystem Create(double mass)
    {
        List <IPlanetaryObject> planetaryObjects = new List <IPlanetaryObject>();
        GameObject sun = Instantiate(planet, Vector3.zero, Quaternion.identity);

        double currentMass = 0f;

        while (currentMass <= mass)
        {
            MassClassEnum   currentMassClass = (MassClassEnum)UnityEngine.Random.Range(0, massClasses.Count);
            MassClass       massClass        = massClasses[currentMassClass];
            GameObject      newPlanet        = Instantiate(planet, Vector3.zero, Quaternion.identity);
            PlanetaryObject planetaryObject  = new PlanetaryObject(sun.transform, newPlanet.transform, massClass);
            planetaryObjects.Add(planetaryObject);

            currentMass += planetaryObject.mass;
        }
        Debug.Log(planetaryObjects.Count);
        return(new PlanetarySystem(planetaryObjects));
    }
Ejemplo n.º 7
0
 public SpringClass(MassClass newMass1, MassClass newMass2, float t_hold)
 {
     m1         = newMass1;
     m2         = newMass2;
     threashold = t_hold;
 }