private void TermFormButton_Click(object sender, EventArgs e) { switch(m_behTermMdl) { case BEHTRANS_TERM_MODEL.T50_K_TERM: m_behTermMdl = BEHTRANS_TERM_MODEL.GAUSSIAN_TERM; break; case BEHTRANS_TERM_MODEL.GAUSSIAN_TERM: m_behTermMdl = BEHTRANS_TERM_MODEL.T50_K_TERM; break; default: m_behTermMdl = BEHTRANS_TERM_MODEL.T50_K_TERM; break; } SetTransitionFormulaText(); // Indicate a modification. SetModified(); }
//------------------// // Class Constructor //------------------// //public CBehavior() { m_spanMgr = new CSpanListMgr(); } /* The Current Behavior Count passed in must include this behavior being added*/ public CBehavior() { //Debug.Assert(CurrentBehaviorCnt >= 1); // Normal behavior transition. m_spanMgr = new CBehaviorTransitionSpanMgr(); m_spanMgr.AddSpan(); m_behTermMdl = BEHTRANS_TERM_MODEL.T50_K_TERM; // Flat Bottom Dive m_flatBottomDive.modelType = MODELTYPE.DISABLED; m_flatBottomDive.gauss.mean = MBSDEFAULTS.ASCENT_GAUSS_MEAN; m_flatBottomDive.gauss.std = MBSDEFAULTS.ASCENT_GAUSS_STD; m_flatBottomDive.gauss.coeff = MBSDEFAULTS.ASCENT_GAUSS_COEFF; m_flatBottomDive.randm.max = MBSDEFAULTS.ASCENT_RANDOM_MAX; m_flatBottomDive.randm.min = MBSDEFAULTS.ASCENT_RANDOM_MIN; m_flatBottomDive.randm.coeff = MBSDEFAULTS.ASCENT_RANDOM_COEFF; m_flatBottomDive.vectorMdl.vector.a = null; m_flatBottomDive.vectorMdl.step.a = 0; m_flatBottomDive.vectorMdl.termination.a = 0; // Diving Ascent m_ascent.modelType = MBSDEFAULTS.ASCENT_MODEL_TYPE; m_ascent.gauss.mean = MBSDEFAULTS.ASCENT_GAUSS_MEAN; m_ascent.gauss.std = MBSDEFAULTS.ASCENT_GAUSS_STD; m_ascent.gauss.coeff = MBSDEFAULTS.ASCENT_GAUSS_COEFF; m_ascent.randm.max = MBSDEFAULTS.ASCENT_RANDOM_MAX; m_ascent.randm.min = MBSDEFAULTS.ASCENT_RANDOM_MIN; m_ascent.randm.coeff = MBSDEFAULTS.ASCENT_RANDOM_COEFF; m_ascent.vectorMdl.vector.a = MBSDEFAULTS.ASCENT_RATE_VECTOR; m_ascent.vectorMdl.step.a = MBSDEFAULTS.ASCENT_RATE_STEP; m_ascent.vectorMdl.termination.a = MBSDEFAULTS.ASCENT_RATE_TERMINATE; // Diving Descent m_descent.modelType = MBSDEFAULTS.DESCENT_MODEL_TYPE; m_descent.gauss.mean = MBSDEFAULTS.DESCENT_GAUSS_MEAN; m_descent.gauss.std = MBSDEFAULTS.DESCENT_GAUSS_STD; m_descent.gauss.coeff = MBSDEFAULTS.DESCENT_GAUSS_COEFF; m_descent.randm.max = MBSDEFAULTS.DESCENT_RANDOM_MAX; m_descent.randm.min = MBSDEFAULTS.DESCENT_RANDOM_MIN; m_descent.randm.coeff = MBSDEFAULTS.DESCENT_RANDOM_COEFF; m_descent.vectorMdl.vector.a = MBSDEFAULTS.DESCENT_RATE_VECTOR; m_descent.vectorMdl.step.a = MBSDEFAULTS.DESCENT_RATE_STEP; m_descent.vectorMdl.termination.a = MBSDEFAULTS.DESCENT_RATE_TERMINATE; // Diving Depth m_depth.type = MBSDEFAULTS.DEPTH_MODEL_TYPE; m_depth.gauss.mean = MBSDEFAULTS.DEPTH_GAUSS_MEAN; m_depth.gauss.std = MBSDEFAULTS.DEPTH_GAUSS_STD; m_depth.randm.max = MBSDEFAULTS.DEPTH_RANDOM_MAX; m_depth.vectorMdl.vector.a = MBSDEFAULTS.DEPTH_VECTOR; m_depth.vectorMdl.step.a = MBSDEFAULTS.DEPTH_STEP; // Diving Reversals m_reverse.type = MBSDEFAULTS.REVERSALS_MODEL_TYPE; m_reverse.enabled = MBSDEFAULTS.REVERSALS_ENABLED; m_reverse.reversalDiveRateType = MBSDEFAULTS.REVERSALS_DIVE_RATE_TYPE; m_reverse.diveRate.mean = MBSDEFAULTS.REVERSALS_DIVE_RATE_GAUSS_MEAN; m_reverse.diveRate.std = MBSDEFAULTS.REVERSALS_DIVE_RATE_GAUSS_STD; m_reverse.diveRate.coeff = MBSDEFAULTS.REVERSALS_DIVE_RATE_GAUSS_TERMCOEFF; m_reverse.gauss.meanCnt = MBSDEFAULTS.REVERSALS_GAUSS_MEAN_COUNT; m_reverse.gauss.stdCnt = MBSDEFAULTS.REVERSALS_GAUSS_STD_COUNT; m_reverse.gauss.prob = MBSDEFAULTS.REVERSALS_GAUSS_PROBABILITY; m_reverse.gauss.meanTime = MBSDEFAULTS.REVERSALS_GAUSS_MEAN_TIME; m_reverse.gauss.stdTime = MBSDEFAULTS.REVERSALS_GAUSS_STD_TIME; m_reverse.randm.maxCnt = MBSDEFAULTS.REVERSALS_RANDOM_MAX_COUNT; m_reverse.randm.minCnt = MBSDEFAULTS.REVERSALS_RANDOM_MIN_COUNT; m_reverse.randm.prob = MBSDEFAULTS.REVERSALS_RANDOM_PROBABILITY; m_reverse.randm.meanTime = MBSDEFAULTS.REVERSALS_RANDOM_MEAN_TIME; m_reverse.randm.stdTime = MBSDEFAULTS.REVERSALS_RANDOM_STD_TIME; m_reverse.vector.probabilityElement.a = MBSDEFAULTS.REVERSALS_PROBABILITY0; m_reverse.vector.countVector.a = MBSDEFAULTS.REVERSALS_COUNT_VECTOR0; m_reverse.vector.durationVector.a = MBSDEFAULTS.REVERSALS_TIME_VECTOR0; m_reverse.vector.durationStepElement.a = MBSDEFAULTS.REVERSALS_TIME_STEP; // Diving Surface Interval m_surfintrvl.type = MBSDEFAULTS.SURFACE_INTERVAL_MODEL_TYPE; m_surfintrvl.gauss.mean = MBSDEFAULTS.SURFACE_INTERVAL_GAUSS_MEAN; m_surfintrvl.gauss.std = MBSDEFAULTS.SURFACE_INTERVAL_GAUSS_STD; m_surfintrvl.vectorMdl.vector.a = MBSDEFAULTS.SURFACE_INTERVAL_VECTOR0; m_surfintrvl.vectorMdl.step.a = MBSDEFAULTS.SURFACE_INTERVAL_STEP; // Travel Direction m_direction.type = MBSDEFAULTS.DIRECTION_MODEL_TYPE; m_direction.rndmWalk.coeff = MBSDEFAULTS.RANDOM_WALK_COEFFICENT; m_direction.correlatedRndmWalk.pert = MBSDEFAULTS.CORRELATED_RANDOM_WALK_PERTURBATION; m_direction.correlatedRndmWalk.coeff = MBSDEFAULTS.CORRELATED_RANDOM_WALK_COEFFICENT; m_direction.correlatedRndmWalkDirBias.pert = MBSDEFAULTS.CORRELATED_RANDOM_WALK_DIR_BIAS_PERTURBATION; m_direction.correlatedRndmWalkDirBias.biasDir = MBSDEFAULTS.CORRELATED_RANDOM_WALK_DIR_BIAS_DIRECTION_OF_BIAS; m_direction.correlatedRndmWalkDirBias.bias = MBSDEFAULTS.CORRELATED_RANDOM_WALK_DIR_BIAS_VALUE_OF_BIAS; m_direction.correlatedRndmWalkDirBias.arcStep = MBSDEFAULTS.CORRELATED_RANDOM_WALK_DIR_BIAS_ARC_STEP; m_direction.correlatedRndmWalkDirBias.coeff = MBSDEFAULTS.CORRELATED_RANDOM_WALK_DIR_BIAS_COEFFICENT; m_direction.matrix.SetDefaultModel(); // Travel Rate m_rate.modelType = MBSDEFAULTS.RATE_MODEL_TYPE; m_rate.gauss.mean = MBSDEFAULTS.TRAVEL_RATE_GAUSS_MEAN; m_rate.gauss.std = MBSDEFAULTS.TRAVEL_RATE_GAUSS_STD; m_rate.gauss.coeff = MBSDEFAULTS.TRAVEL_RATE_GAUSS_COEFF; m_rate.randm.max = MBSDEFAULTS.TRAVEL_RATE_RANDOM_MAX; m_rate.randm.min = MBSDEFAULTS.TRAVEL_RATE_RANDOM_MIN; m_rate.randm.coeff = MBSDEFAULTS.TRAVEL_RATE_RANDOM_COEFF; m_rate.vectorMdl.vector.a = MBSDEFAULTS.TRAVEL_RATE_VECTOR0; m_rate.vectorMdl.step.a = MBSDEFAULTS.TRAVEL_RATE_STEP; m_rate.vectorMdl.termination.a = MBSDEFAULTS.TRAVEL_RATE_TERMINATE; // General Environmental Attractor m_envInfPriority = MBSDEFAULTS.ENVINF_PRIORITY; ; m_envAttDirDepth.slopeEnabled = MBSDEFAULTS.ENVINFL_DEPTH_SHALLOW_ENABLED; m_envAttDirDepth.basinEnabled = MBSDEFAULTS.ENVINFL_DEPTH_DEEP_ENABLED; m_envAttDirDepth.shelfEnabled = MBSDEFAULTS.ENVINFL_DEPTH_SHELF_ENABLED; m_envAttDirDepth.shelfDepth = MBSDEFAULTS.ENVINFL_DEPTH_SHELF_BATHYDEPTH_METERS; m_envAttDirDepth.basinDepth = MBSDEFAULTS.ENVINFL_DEPTH_BASIN_BATHYDEPTH_METERS; m_envAttDirDepth.slopeDepth = MBSDEFAULTS.ENVINFL_DEPTH_SLOPE_BATHYDEPTH_METERS; m_envAttDirDepth.shelfSlope = MBSDEFAULTS.ENVINFL_DEPTH_SHELF_BATHYSLOPE_DEGREES; m_envAttDirDepth.basinSlope = MBSDEFAULTS.ENVINFL_DEPTH_BASIN_BATHYSLOPE_DEGREES; m_envAttDirDepth.slopeSlope = MBSDEFAULTS.ENVINFL_DEPTH_SLOPE_BATHYSLOPE_DEGREES; m_envAttDirTemp.coldEnabled = MBSDEFAULTS.ENVINFL_TEMP_COLD_ENABLED; m_envAttDirTemp.warmEnabled = MBSDEFAULTS.ENVINFL_TEMP_WARM_ENABLED; m_envAttDirTemp.frontEnabled = MBSDEFAULTS.ENVINFL_TEMP_FRONT_ENABLED; m_envAttDirTemp.cold = MBSDEFAULTS.ENVINFL_TEMP_COLD; m_envAttDirTemp.warm = MBSDEFAULTS.ENVINFL_TEMP_WARM; m_envAttDirTemp.front = MBSDEFAULTS.ENVINFL_TEMP_SHELF; // Depth Environmental Attractor Behavior Transition m_depthEnvAttctrBehTrans.vector.a = new double[1]; m_depthEnvAttctrBehTrans.vector.a[0] = 1; m_depthEnvAttctrBehTrans.element.a = MBSDEFAULTS.BEHAVIOR_TRANS_TERMINATION_COEFF; m_depthEnvAttctrBehTrans.meanTimeInBehMinuites = 60; m_depthEnvAttctrBehTrans.slopeCoeff_goesAway = 7; // Temperature environmental attractor behavior transition m_tempEnvAttctrBehTrans.vector.a = new double[1]; m_tempEnvAttctrBehTrans.vector.a[0] = 1; m_tempEnvAttctrBehTrans.element.a = MBSDEFAULTS.BEHAVIOR_TRANS_TERMINATION_COEFF; m_tempEnvAttctrBehTrans.meanTimeInBehMinuites = 60; m_tempEnvAttctrBehTrans.slopeCoeff_goesAway = 7; }
//------------------------------------------------------------------------------// // Class Constructors //------------------------------------------------------------------------------// public FormBehTrans(CSpanMgr SpanListMgr, BEHTRANS_TERM_MODEL BehavorTerminationMdl, int BehCount, string[] BehaviorNames, int BehIndex) { // This class constructor is for behavior transition matrices. m_displayType = MBSDEFAULTS.BITMAPDISPLAYTYPE.BEHAVIOR_TRANSITION; m_spanMgr = SpanListMgr; m_behTermMdl = BehavorTerminationMdl; // Set intial indicies m_behaviorIndex = BehIndex; m_activeSpanIndex = 0; // start at span index 0 m_activeMatrixRowIndex = 0;// start at row index 0 m_numBehaviorsDefined = BehCount; m_behaviorNameArray = BehaviorNames; ConstructForm(); SetTransitionFormulaText(); }