Пример #1
0
    /// <summary>
    /// 深拷贝
    /// </summary>
    /// <param name="envirParams"></param>
    public void DepthCopy(EnvironmentParams envirParams)
    {
        DailyMaxTemperature = envirParams.DailyMaxTemperature;
        DailyMinTemperature = envirParams.DailyMinTemperature;

        DailyMaxRelativeHumidity = envirParams.DailyMaxRelativeHumidity;
        DailyMinRelativeHumidity = envirParams.DailyMinRelativeHumidity;

        WaterContent    = envirParams.WaterContent;
        NutrientType    = envirParams.NutrientType;
        TemperatureType = envirParams.TemperatureType;
        SunshineType    = envirParams.SunshineType;


        WindSpeed = envirParams.WindSpeed;

        HaveInsects = envirParams.HaveInsects;

        PhotosyntheticModel = envirParams.PhotosyntheticModel;

        ChangeDay = envirParams.ChangeDay;
    }
Пример #2
0
    public static double SunShineSim(TreeModel treeModel, PhotosyntheticModels type)
    {
        double biomass = 0.0;

        switch (type)
        {
        case PhotosyntheticModels.LightResponse:
            Octree octree = Octree.Build(treeModel);
            biomass =
                octree == null?         //无模型,说明未出苗
                MaizeParams.SEED_BIOMASS : DailySunShineSimluation(treeModel, DateTime.Now, 119, 26, octree, 0.1f, 100, 100);
            if (octree != null)
            {
                octree.Clear();
            }
            break;

        default:
            GameObject go = treeModel.TreeModelInstance;

            if (go != null)
            {
                Mesh.AddBoxColliderInParent(go);
            }

            biomass =
                treeModel.GetLeafIndexes().Count != 0 ?         //无叶片,说明未出苗
                BeerRule.BiomassCal(treeModel) / FunctionSim.ComputeDaysInGC(treeModel) : MaizeParams.SEED_BIOMASS;
            break;
        }

        if (biomass != MaizeParams.SEED_BIOMASS)
        {
            biomass *= EnvironmentEffect.TemperatureStressFactor(treeModel) * EnvironmentEffect.WaterStressFactor(treeModel) * EnvironmentEffect.SunshineStress(treeModel);
        }

        return(biomass);
    }