/// <summary> /// manipulates the level set sign for level set no. <paramref name="LevSetIdx"/> /// </summary> public void SetSign(int LevSetIdx, LevelsetSign sign) { int oldSign = (int)GetSign(LevSetIdx) + 1; int bs = 1; for (int i = 0; i < LevSetIdx; i++) { bs *= 3; } int newSign = (int)sign + 1; lsSig += (newSign - oldSign) * bs; }
/// <summary> /// true, if <paramref name="cd"/> is contained in this /// </summary> public bool IsContained(LevelSetSignCode cd, int NoOfSignificant_LevSets) { for (int i = 0; i < NoOfSignificant_LevSets; i++) { LevelsetSign ls_i = GetSign(i); if (ls_i == LevelsetSign.Both) { continue; } LevelsetSign sg = cd.GetSign(i) ? LevelsetSign.Positive : LevelsetSign.Negative; if (sg != ls_i) { return(false); } } return(true); }