コード例 #1
0
        static void Main(string[] args)
        {
            C3mbs _mmmbs = new C3mbs();
            string animatScenarioFile = "jaxdolphin.sce";

            animatScenarioFile =  "jax3species.sce";
            mbsRESULT mbsResult;
            mbsCONFIG config = _mmmbs.GetConfiguration();
            mbsRUNSTATE runState;

           //load the .sce file
           if (mbsRESULT.OK != (mbsResult = _mmmbs.LoadScenario(animatScenarioFile)))
               Console.WriteLine("LoadScenario Error:" + _mmmbs.MbsResultToString(mbsResult));
           //make sure we're in durationless mode.
           config.durationLess = true;
           _mmmbs.SetConfiguration(config);

           //get species count
           int speciesCount = _mmmbs.GetSpeciesCount();

           //make a species list.
#if false
           SpeciesList = new SpeciesList();
           for (var i = 0; i <= speciesCount; i++)
           {
               SpeciesList.Add(new Species{SpeciesName = _mmmbs.GetSpeciesDisplayTitle(i),
                                   ReferenceCount = _mmmbs.GetIndivdualCount(i),});
           }
#endif
           //set up the position array from the values in the .sce file (not the ones in animatList, which doesn't exist yet..)
           int animatCount = _mmmbs.GetAnimatCount();
           var posArray = new mbsPosition[animatCount];

           //initialize the run, and wait until it's fully initialized.
           if(mbsRESULT.OK != (mbsResult = _mmmbs.InitializeRun()))
                Console.WriteLine("InitializeRun Error:" + _mmmbs.MbsResultToString(mbsResult));

           while ((runState = _mmmbs.GetRunState()) == mbsRUNSTATE.INITIALIZING)
           {
               //wait until initializing is done.
               Thread.Sleep(1);
           }

           //get the initial positions of every animat
           if(mbsRESULT.OK != (mbsResult = _mmmbs.GetAnimatCoordinates(posArray)))
               Console.WriteLine("Error Fetching Initial Animat Coordinates: " + _mmmbs.MbsResultToString(mbsResult));



           //bump the positions once, otherwise depths aren't set.
           if(mbsRESULT.OK != (mbsResult = _mmmbs.RunScenarioNumIterations(1)))
            Console.WriteLine("RunScenario Error:" + _mmmbs.MbsResultToString(mbsResult));

           //get the initial positions of every animat
           if (mbsRESULT.OK != (mbsResult = _mmmbs.GetAnimatCoordinates(posArray)))
            Console.WriteLine("Error Fetching Initial Animat Coordinates: " + _mmmbs.MbsResultToString(mbsResult));
        }