示例#1
0
        /// <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;
        }
示例#2
0
        /// <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);
        }