コード例 #1
0
ファイル: Variadic.cs プロジェクト: PtrMan/ai2
        public Variadic deepCopy()
        {
            Variadic result;

            result = new Variadic(type);
            result.valueInt = valueInt;
            result.valueVector2Float = valueVector2Float;
            result.valueFloat = valueFloat;
            result.valueBool = valueBool;

            if( type == EnumType.ARRAY )
            {
                result.valueArray = new List<Variadic>();

                foreach( Variadic iterationValue in valueArray )
                {
                    result.valueArray.Add(iterationValue.deepCopy());
                }
            }

            if( valueTree != null )
            {
                result.valueTree = valueTree.deepCopy();
            }

            return result;
        }
コード例 #2
0
        public Variadic deepCopy()
        {
            Variadic result;

            result                   = new Variadic(type);
            result.valueInt          = valueInt;
            result.valueVector2Float = valueVector2Float;
            result.valueFloat        = valueFloat;
            result.valueBool         = valueBool;

            if (type == EnumType.ARRAY)
            {
                result.valueArray = new List <Variadic>();

                foreach (Variadic iterationValue in valueArray)
                {
                    result.valueArray.Add(iterationValue.deepCopy());
                }
            }

            if (valueTree != null)
            {
                result.valueTree = valueTree.deepCopy();
            }

            return(result);
        }
コード例 #3
0
ファイル: Variadic.cs プロジェクト: PtrMan/ai2
        public static bool isEqual(Variadic a, Variadic b, double epsilon)
        {
            System.Diagnostics.Debug.Assert(a.type == b.type);

            switch( a.type )
            {
                case EnumType.BOOL:
                return a.valueBool == b.valueBool;

                case EnumType.FLOAT:
                return System.Math.Abs(a.valueFloat - b.valueFloat) < epsilon;

                case EnumType.INT:
                return a.valueInt == b.valueInt;

                default:
                throw new Exception("isEqual is not applicable to lists, vectors, etc.");
            }
        }
コード例 #4
0
        public static bool isEqual(Variadic a, Variadic b, double epsilon)
        {
            System.Diagnostics.Debug.Assert(a.type == b.type);

            switch (a.type)
            {
            case EnumType.BOOL:
                return(a.valueBool == b.valueBool);

            case EnumType.FLOAT:
                return(System.Math.Abs(a.valueFloat - b.valueFloat) < epsilon);

            case EnumType.INT:
                return(a.valueInt == b.valueInt);

            default:
                throw new Exception("isEqual is not applicable to lists, vectors, etc.");
            }
        }