public void ArrayBufferWithOffsetConstructorWorks() {
			var buf = new ArrayBuffer(80);
			var arr = new Int32Array(buf, 16);
			Assert.IsTrue((object)arr is Int32Array);
			Assert.IsTrue(arr.Buffer == buf, "buffer");
			Assert.AreEqual(arr.Length, 16, "length");
		}
		public void CopyConstructorWorks() {
			 var source = new Int32Array(new[] { 3, 8, 4 });
			 var arr = new Int32Array(source);
			 Assert.IsTrue(arr != source, "New object");
			 Assert.IsTrue((object)arr is Int32Array, "is Int32Array");
			 AssertContent(arr, new[] { 3, 8, 4 }, "content");
		}
		private void AssertContent(Int32Array actual, int[] expected, string message) {
			if (actual.Length != expected.Length) {
				Assert.Fail(message + ": Expected length " + expected.Length + ", actual: " + actual.Length);
				return;
			}
			for (int i = 0; i < expected.Length; i++) {
				if (actual[i] != expected[i]) {
					Assert.Fail(message + ": Position " + i + ": expected " + expected[i] + ", actual: " + actual[i]);
					return;
				}
			}
			Assert.IsTrue(true, message);
		}
		public void TypePropertiesAreCorrect() {
			Assert.AreEqual(typeof(Int32Array).FullName, "Int32Array", "FullName");

			var interfaces = typeof(Int32Array).GetInterfaces();
			Assert.AreEqual(interfaces.Length, 3, "Interface count should be 3");
			Assert.IsTrue(interfaces.Contains(typeof(IEnumerable<int>)), "Interfaces should contain IEnumerable<int>");
			Assert.IsTrue(interfaces.Contains(typeof(ICollection<int>)), "Interfaces should contain ICollection<int>");
			Assert.IsTrue(interfaces.Contains(typeof(IList<int>)), "Interfaces should contain IList<int>");

			object arr = new Int32Array(0);
			Assert.IsTrue(arr is Int32Array, "Is Int32Array");
			Assert.IsTrue(arr is IEnumerable<int>, "Is IEnumerable<int>");
			Assert.IsTrue(arr is ICollection<int>, "Is ICollection<int>");
			Assert.IsTrue(arr is IList<int>, "Is IList<int>");
		}
Example #5
0
        public static IEnumerable <object[]> ArrayType_TestData()
        {
            _objectPrototype ??= new Function("return Object.prototype.toString;");
            yield return(new object[] { _objectPrototype.Call(), "Uint8Array", Uint8Array.From(new byte[10]) });

            yield return(new object[] { _objectPrototype.Call(), "Uint8ClampedArray", Uint8ClampedArray.From(new byte[10]) });

            yield return(new object[] { _objectPrototype.Call(), "Int8Array", Int8Array.From(new sbyte[10]) });

            yield return(new object[] { _objectPrototype.Call(), "Uint16Array", Uint16Array.From(new ushort[10]) });

            yield return(new object[] { _objectPrototype.Call(), "Int16Array", Int16Array.From(new short[10]) });

            yield return(new object[] { _objectPrototype.Call(), "Uint32Array", Uint32Array.From(new uint[10]) });

            yield return(new object[] { _objectPrototype.Call(), "Int32Array", Int32Array.From(new int[10]) });

            yield return(new object[] { _objectPrototype.Call(), "Float32Array", Float32Array.From(new float[10]) });

            yield return(new object[] { _objectPrototype.Call(), "Float64Array", Float64Array.From(new double[10]) });

            yield return(new object[] { _objectPrototype.Call(), "Array", new Array(10) });
        }
    public void AutoNext(IEvent ievent)
    {
        var table = Table.GetMissionBase(DataModel.MissionId);
        var type  = (eMissionMainType)table.ViewType;
        var state = MissionManager.Instance.GetMissionState(DataModel.MissionId);

        if (eMissionMainType.Daily == type ||
            eMissionMainType.Circle == type)
        {
            if (eMissionState.Finished == state)
            {
                MissionManager.Instance.CommitMission(DataModel.MissionId);
            }
            else
            {
                MissionManager.Instance.GoToMissionPlace(DataModel.MissionId);
            }
        }
        else if (eMissionMainType.SubStoryLine == type && -1 == table.NpcStart && eMissionState.Acceptable == state)
        {
            MissionManager.Instance.AcceptMission(DataModel.MissionId);
        }
        else if (eMissionMainType.SubStoryLine == type && -1 == table.FinishNpcId && eMissionState.Finished == state)
        {
            MissionManager.Instance.CommitMission(DataModel.MissionId);
        }
        else
        {
            MissionManager.Instance.GoToMissionPlace(DataModel.MissionId);
        }
        if (!PlayerDataManager.Instance.GetFlag(517))
        {
            var list = new Int32Array();
            list.Items.Add(517);
            PlayerDataManager.Instance.SetFlagNet(list);
        }
    }
    public IEnumerator RecycleCoroutine(int bagIndex)
    {
        using (new BlockingLayerHelper(0))
        {
            var TempEquipList = new Int32Array();
            TempEquipList.Items.Add(bagIndex);
            var msg = NetManager.Instance.RecoveryEquip(1, TempEquipList);
            yield return(msg.SendAndWaitUntilDone());

            if (msg.State == MessageState.Reply)
            {
                if (msg.ErrorCode == (int)ErrorCodes.OK)
                {
                    var e = new UIEvent_EquipCompare_Close();
                    EventDispatcher.Instance.DispatchEvent(e);
                    if (TempEquipList.Items.Count > 0)
                    {
                        var item = PlayerDataManager.Instance.GetItem((int)eBagType.Equip, bagIndex);
                        if (item != null)
                        {
                            PlatformHelper.UMEvent("EquipRecycle", item.ItemId.ToString());
                        }
                    }
                }
                else
                {
                    UIManager.Instance.ShowNetError(msg.ErrorCode);
                }
            }
            else
            {
                var e = new ShowUIHintBoard(220821);
                EventDispatcher.Instance.DispatchEvent(e);
            }
        }
    }
Example #8
0
        public void Int32Array_indexed_setter_alters_source_buffer_contents_according_to_set_endianness_when_specified()
        {
            byte[] buf    = new byte[] { 0x00, 0x01, 0x02, 0x03 };
            var    s32arr = new Int32Array(buf, 0, 0, !BitConverter.IsLittleEndian);

            s32arr[0] = -1430532899; // 0xAABBCCDD, stored as [0xAA, 0xBB, 0xCC, 0xDD] on big endian archs and [0xDD, 0xCC, 0xBB, 0xAA] on little endian archs.

            if (BitConverter.IsLittleEndian)
            {
                Assert.IsTrue(!s32arr.IsLittleEndian);
                Assert.AreEqual(buf[3], 0xDD);
                Assert.AreEqual(buf[2], 0xCC);
                Assert.AreEqual(buf[1], 0xBB);
                Assert.AreEqual(buf[0], 0xAA);
            }
            else
            {
                Assert.IsTrue(s32arr.IsLittleEndian);
                Assert.AreEqual(buf[0], 0xDD);
                Assert.AreEqual(buf[1], 0xCC);
                Assert.AreEqual(buf[2], 0xBB);
                Assert.AreEqual(buf[3], 0xAA);
            }
        }
Example #9
0
        private IEnumerator GetDungeonTotleCountCoroutine(Coroutine co, ObjPlayer player)
        {
            var ids = new Int32Array();

            ids.Items.Add(mFubenRecord.TotleExdata);
            var msg = SceneServer.Instance.LogicAgent.SSFetchExdata(player.ObjId, ids);

            yield return(msg.SendAndWaitUntilDone(co));

            if (msg.State != MessageState.Reply)
            {
                Logger.Error("SSFetchExdata return with state = {0}", msg.State);
                yield break;
            }
            if (msg.ErrorCode != (int)ErrorCodes.OK)
            {
                Logger.Error("SSFetchExdata return with err = {0}", msg.ErrorCode);
                yield break;
            }
            if (msg.Response.Items[0] == 0)
            {
                SpecialDrop = player.TypeId;
            }
        }
Example #10
0
        public void TypePropertiesAreCorrect_SPI_1559()
        {
            Assert.AreEqual("Int32Array", typeof(Int32Array).FullName, "FullName");

            var interfaces = typeof(Int32Array).GetInterfaces();

            Assert.AreEqual(1, interfaces.Length, "Interface count should be 5");
            Assert.True(interfaces.Contains(typeof(IEnumerable <int>)), "Interfaces should contain IEnumerable<int>");
            Assert.False(interfaces.Contains(typeof(ICollection <int>)), "Interfaces should contain ICollection<int>");
            Assert.False(interfaces.Contains(typeof(IList <int>)), "Interfaces should contain IList<int>");
            // Not JS API
            //Assert.True(interfaces.Contains(typeof(IReadOnlyCollection<int>)), "Interfaces should contain IReadOnlyCollection<int>");
            //Assert.True(interfaces.Contains(typeof(IReadOnlyList<int>)), "Interfaces should contain IReadOnlyList<int>");

            object arr = new Int32Array(0);

            Assert.True(arr is Int32Array, "Is Int32Array");
            Assert.True(arr is IEnumerable <int>, "Is IEnumerable<int>");
            Assert.False(arr is ICollection <int>, "Is ICollection<int>");
            Assert.False(arr is IList <int>, "Is IList<int>");
            // Not JS API
            //Assert.True(arr is IReadOnlyCollection<int>, "Is IReadOnlyCollection<int>");
            //Assert.True(arr is IReadOnlyList<int>, "Is IReadOnlyList<int>");
        }
Example #11
0
        public void LengthWorks()
        {
            var arr = new Int32Array(13);

            Assert.AreEqual(13, arr.Length, "Length");
        }
Example #12
0
 public static void MarshalInt32Array(Int32Array buffer)
 {
     intBuffer = buffer.ToArray();
 }
Example #13
0
    private IEnumerator SendCityOptRequestCoroutine(CityOperationType opt,
                                                    int buildingIdx,
                                                    List <int> param)
    {
        using (new BlockingLayerHelper(0))
        {
            var array = new Int32Array();
            if (null != param)
            {
                {
                    var __list7      = param;
                    var __listCount7 = __list7.Count;
                    for (var __i7 = 0; __i7 < __listCount7; ++__i7)
                    {
                        var value = __list7[__i7];
                        {
                            array.Items.Add(value);
                        }
                    }
                }
            }

            var msg = NetManager.Instance.CityOperationRequest((int)opt, buildingIdx, array);
            yield return(msg.SendAndWaitUntilDone());

            if (msg.State != MessageState.Reply)
            {
                Logger.Debug("SendBuildRequestCoroutine:MessageState.Timeout");
                yield break;
            }

            if (msg.ErrorCode != (int)ErrorCodes.OK)
            {
                var errorCode = (ErrorCodes)msg.ErrorCode;
                switch (errorCode)
                {
                case ErrorCodes.Error_LevelNoEnough:
                {
                    EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(200000108));
                }
                break;

                case ErrorCodes.Error_ResNoEnough:
                {
                    EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(200002002));
                }
                break;

                case ErrorCodes.Error_BuildCountMax:
                {
                    EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(200002801));
                }
                break;

                case ErrorCodes.Error_NeedCityLevelMore:
                {
                    EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(200002803));
                }
                break;

                case ErrorCodes.Error_CityCanotBuildMore:
                {
                    EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(300113));
                }
                break;

                default:
                    UIManager.Instance.ShowNetError(msg.ErrorCode);
                    break;
                }
                Logger.Debug("SendBuildRequestCoroutine error=[{0}]", msg.ErrorCode);

                EventDispatcher.Instance.DispatchEvent(new UIEvent_CityUpdateBuilding(buildingIdx));

                yield break;
            }
            switch (opt)
            {
            case CityOperationType.BUILD:
            {
                PlatformHelper.Event("city", "Build");
                //EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(300108));
            }
            break;

            case CityOperationType.UPGRADE:
            {
                PlatformHelper.Event("city", "Upgrade");
                EventDispatcher.Instance.DispatchEvent(new UIEvent_OnCityBuildingOptEvent(buildingIdx, opt));
                //EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(300107));
            }
            break;

            case CityOperationType.DESTROY:
            {
                //EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard("Destroy Ok"));

                var e          = new CityBuildingLevelupEvent(buildingIdx);
                var tbBuilding = Table.GetBuilding(GetBuildingByAreaId(buildingIdx).TypeId);
                e.HomeExp = Table.GetBuilding(tbBuilding.RemovedBuildID).GetMainHouseExp;
                EventDispatcher.Instance.DispatchEvent(e);
            }
            break;

            case CityOperationType.ASSIGNPET:
            case CityOperationType.ASSIGNPETINDEX:
            {
                EventDispatcher.Instance.DispatchEvent(new UIEvent_CityAssignPetEvent(buildingIdx));
            }
            break;
            }
        }
    }
Example #14
0
    public void Close()
    {
        var dic = new Dictionary <int, int>();

        if (Math.Abs(BackUpModel.AutoCombat.Hp - DataModel.AutoCombat.Hp) > 0.01)
        {
            dic.Add(59, (int)(DataModel.AutoCombat.Hp * 100));
        }
        if (Math.Abs(BackUpModel.AutoCombat.Mp - DataModel.AutoCombat.Mp) > 0.01)
        {
            dic.Add(60, (int)(DataModel.AutoCombat.Mp * 100));
        }

        BackUpModel.AutoCombat.Mp = DataModel.AutoCombat.Mp;

        var chgPick = false;
        var flag61  = 0;

        for (var i = 0; i < 8; i++)
        {
            if (BackUpModel.AutoCombat.Pickups[i] != DataModel.AutoCombat.Pickups[i])
            {
                chgPick = true;
                break;
            }
        }

        flag61 = 0;

        for (var i = 0; i < 8; i++)
        {
            if (DataModel.AutoCombat.Pickups[i])
            {
                flag61 = BitFlag.IntSetFlag(flag61, i);
            }
        }


        var chgRang = false;

        for (var i = 0; i < 3; i++)
        {
            if (BackUpModel.AutoCombat.Ranges[i] != DataModel.AutoCombat.Ranges[i])
            {
                chgRang = true;
                break;
            }
        }

        for (var i = 0; i < 3; i++)
        {
            if (DataModel.AutoCombat.Ranges[i])
            {
                if (i == 1)
                {
                    flag61 = BitFlag.IntSetFlag(flag61, 8);
                }
                else if (i == 2)
                {
                    flag61 = BitFlag.IntSetFlag(flag61, 9);
                }
            }
        }

        if (chgPick || chgRang)
        {
            dic.Add(61, flag61);
        }

        if (dic.Count > 0)
        {
            PlayerDataManager.Instance.SetExDataNet(dic);
        }

        var tureArray  = new Int32Array();
        var falseArray = new Int32Array();

        for (var i = 0; i < 4; i++)
        {
            if (DataModel.SystemSetting.Other[i] != BackUpModel.SystemSetting.Other[i])
            {
                if (DataModel.SystemSetting.Other[i])
                {
                    tureArray.Items.Add(480 + i);
                }
                else
                {
                    falseArray.Items.Add(480 + i);
                }
            }
        }


        //后添加的两个设置
        //又增加一个屏幕节能开关
        if (DataModel.SystemSetting.Other[4] != BackUpModel.SystemSetting.Other[4])
        {
            if (DataModel.SystemSetting.Other[4])
            {
                tureArray.Items.Add(488);
            }
            else
            {
                falseArray.Items.Add(488);
            }
        }

        if (DataModel.SystemSetting.Other[5] != BackUpModel.SystemSetting.Other[5])
        {
            if (DataModel.SystemSetting.Other[5])
            {
                tureArray.Items.Add(489);
            }
            else
            {
                falseArray.Items.Add(489);
            }
        }

        if (DataModel.SystemSetting.Other[6] != BackUpModel.SystemSetting.Other[6])
        {
            if (DataModel.SystemSetting.Other[6])
            {
                tureArray.Items.Add(490);
            }
            else
            {
                falseArray.Items.Add(490);
            }
        }


        if (tureArray.Items.Count > 0 || falseArray.Items.Count > 0)
        {
            PlayerDataManager.Instance.SetFlagNet(tureArray, falseArray);
        }
    }
Example #15
0
    public void SmithyOperation(int type)
    {
        switch (type)
        {
        // 铸造按钮按下
        case 0:
        {
            var castData = DataModel.SmithyCastData.SelectedProduct;
            var param    = new Int32Array();
            param.Items.Add(castData.State);     // 0:铸造功能
            param.Items.Add(CurFurnaceIndex);    // 熔炉id

            var state = castData.State;
            switch (state)
            {
            case 0:
            {
                param.Items.Add(mCurTbForgeId);         // 铸造id
            }
            break;

            case 1:
                //var needZS = DataModel.SmithyCastData.NeedDiamond;
                var content = GameUtils.GetDictionaryText(240900);
                var needZS  = ConsumeDiamond();
                content = string.Format(content, needZS);
                UIManager.Instance.ShowMessage(MessageBoxType.OkCancel, content, "",
                                               () => { UseBuildService(param); });
                return;

            case 2:
                break;
            }
            UseBuildService(param);
        }
        break;

        // 装备进阶按钮按下
        case 1:
        {
            if (!CheckSmithyEvoItem())
            {
                var e = new ShowUIHintBoard(300600);
                EventDispatcher.Instance.DispatchEvent(e);
                return;
            }
            var castData = DataModel.SmithyEvoData;
            var evoItems = castData.EvolveItems;
            var mainItem = evoItems[0];
            mMajorEquipBagId    = mainItem.BagId;
            mMajorEquipBagIndex = mainItem.Index;
            var param = new Int32Array();
            param.Items.Add(3);     // 0:铸造功能
            {
                // foreach(var evoItem in evoItems)
                var __enumerator5 = (evoItems).GetEnumerator();
                while (__enumerator5.MoveNext())
                {
                    var evoItem = __enumerator5.Current;
                    {
                        if (evoItem.ItemId != -1)
                        {
                            param.Items.Add(evoItem.BagId);
                            param.Items.Add(evoItem.Index);
                        }
                    }
                }
            }
            //mRefreshEvoUiAction = ResetEvoUI;
            //进阶后将获得新装备“[{0}]{1}[-]”\n点击[4BE127]确定[-]按钮继续
            var warnStr = GameUtils.GetDictionaryText(300608);
            var tbItem  = Table.GetItemBase(castData.EvolvedItemId);
            if (tbItem == null)
            {
                return;
            }
            warnStr = string.Format(warnStr, GameUtils.GetTableColorString(tbItem.Color), tbItem.Name);
            UIManager.Instance.ShowMessage(MessageBoxType.OkCancel, warnStr, "",
                                           () => { UseBuildService(param, AdvanceEquipManual); });
        }
        break;

        case 2:
        {
            DataModel.SmithyEvoData.IsShowEvoedEquip = false;
        }
        break;

        case 3:
        {
            EventDispatcher.Instance.DispatchEvent(new Close_UI_Event(UIConfig.SmithyUI));
            //var e2 = new Show_UI_Event(UIConfig.CityUI);
            //EventDispatcher.Instance.DispatchEvent(e2);
        }
        break;
        }
    }
Example #16
0
 public void UseBuildService(Int32Array param, Action onOk = null)
 {
     NetManager.Instance.StartCoroutine(UseBuildServiceCoroutine(param, onOk));
 }
		public void ForeachWorks() {
			var arr = new Int32Array(new[] { 3, 6, 2, 9, 5 });
			var l = new List<int>();
			foreach (var i in arr) {
				l.Add(i);
			}
			Assert.AreEqual(l, new[] { 3, 6, 2, 9, 5 });
		}
		public void ContainsWorks() {
			var arr = new Int32Array(new[] { 3, 6, 2, 9, 5 });
			Assert.IsTrue (arr.Contains(9), "9");
			Assert.IsFalse(arr.Contains(1), "1");
		}
		public void IndexOfWorks() {
			var arr = new Int32Array(new[] { 3, 6, 2, 9, 5 });
			Assert.AreEqual(arr.IndexOf(9), 3, "9");
			Assert.AreEqual(arr.IndexOf(1), -1, "1");
		}
		public void ByteLengthPropertyWorks() {
			var arr = new Int32Array(23);
			Assert.AreEqual(arr.ByteLength, 92, "Should be correct");
		}
		public void ByteOffsetPropertyWorks() {
			var buf = new ArrayBuffer(100);
			var arr = new Int32Array(buf, 32);
			Assert.AreEqual(arr.ByteOffset, 32, "Should be correct");
		}
		public void BufferPropertyWorks() {
			var buf = new ArrayBuffer(100);
			var arr = new Int32Array(buf);
			Assert.IsTrue(arr.Buffer == buf, "Should be correct");
		}
		public void GetEnumeratorWorks() {
			var arr = new Int32Array(new[] { 3, 6, 2, 9, 5 });
			var l = new List<int>();
			var enm = arr.GetEnumerator();
			while (enm.MoveNext()) {
				l.Add(enm.Current);
			}
			Assert.AreEqual(l, new[] { 3, 6, 2, 9, 5 });
		}
Example #24
0
        public static void CoreTypes()
        {
            var arr = new Uint8ClampedArray(50);

            Assert.Equal(50, arr.Length);
            Assert.Equal(TypedArrayTypeCode.Uint8ClampedArray, arr.GetTypedArrayType());

            var arr1 = new Uint8Array(50);

            Assert.Equal(50, arr1.Length);
            Assert.Equal(TypedArrayTypeCode.Uint8Array, arr1.GetTypedArrayType());

            var arr2 = new Uint16Array(50);

            Assert.Equal(50, arr2.Length);
            Assert.Equal(TypedArrayTypeCode.Uint16Array, arr2.GetTypedArrayType());

            var arr3 = new Uint32Array(50);

            Assert.Equal(50, arr3.Length);
            Assert.Equal(TypedArrayTypeCode.Uint32Array, arr3.GetTypedArrayType());

            var arr4 = new Int8Array(50);

            Assert.Equal(50, arr4.Length);
            Assert.Equal(TypedArrayTypeCode.Int8Array, arr4.GetTypedArrayType());

            var arr5 = new Int16Array(50);

            Assert.Equal(50, arr5.Length);
            Assert.Equal(TypedArrayTypeCode.Int16Array, arr5.GetTypedArrayType());

            var arr6 = new Int32Array(50);

            Assert.Equal(50, arr6.Length);
            Assert.Equal(TypedArrayTypeCode.Int32Array, arr6.GetTypedArrayType());

            var arr7 = new Float32Array(50);

            Assert.Equal(50, arr7.Length);
            Assert.Equal(TypedArrayTypeCode.Float32Array, arr7.GetTypedArrayType());

            var arr8 = new Float64Array(50);

            Assert.Equal(50, arr8.Length);
            Assert.Equal(TypedArrayTypeCode.Float64Array, arr8.GetTypedArrayType());

            var sharedArr40 = new SharedArrayBuffer(40);
            var sharedArr50 = new SharedArrayBuffer(50);

            var arr9 = new Uint8ClampedArray(sharedArr50);

            Assert.Equal(50, arr9.Length);

            var arr10 = new Uint8Array(sharedArr50);

            Assert.Equal(50, arr10.Length);

            var arr11 = new Uint16Array(sharedArr50);

            Assert.Equal(25, arr11.Length);

            var arr12 = new Uint32Array(sharedArr40);

            Assert.Equal(10, arr12.Length);

            var arr13 = new Int8Array(sharedArr50);

            Assert.Equal(50, arr13.Length);

            var arr14 = new Int16Array(sharedArr40);

            Assert.Equal(20, arr14.Length);

            var arr15 = new Int32Array(sharedArr40);

            Assert.Equal(10, arr15.Length);

            var arr16 = new Float32Array(sharedArr40);

            Assert.Equal(10, arr16.Length);

            var arr17 = new Float64Array(sharedArr40);

            Assert.Equal(5, arr17.Length);
        }
		public void SetNormalArrayWorks() {
			var arr = new Int32Array(4);
			arr.Set(new[] { 3, 6, 7 });
			AssertContent(arr, new[] { 3, 6, 7, 0 }, "Content");
		}
		public void SubarrayWithBeginAndEndWorks() {
			var source = new Int32Array(10);
			var arr = source.Subarray(3, 7);
			Assert.IsFalse(arr == source, "Should be a new array");
			Assert.IsTrue(arr.Buffer == source.Buffer, "Should be the same buffer");
			Assert.AreEqual(arr.ByteOffset, 12, "ByteOffset should be correct");
			Assert.AreEqual(arr.Length, 4, "Length should be correct");
		}
		public void LengthConstructorWorks() {
			var arr = new Int32Array(13);
			Assert.IsTrue((object)arr is Int32Array, "is Int32Array");
			Assert.AreEqual(arr.Length, 13, "Length");
		}
Example #28
0
    public IEnumerator UseBuildServiceCoroutine(Int32Array param, Action onOk)
    {
        using (new BlockingLayerHelper(0))
        {
            var tbBuilding = Table.GetBuilding(BuildingData.TypeId);

            var msg = NetManager.Instance.UseBuildService(BuildingData.AreaId, tbBuilding.ServiceId, param);
            yield return(msg.SendAndWaitUntilDone());

            if (msg.State == MessageState.Reply)
            {
                if (msg.ErrorCode == (int)ErrorCodes.OK)
                {
                    if (param.Items[0] == (int)ForgeState.NoBegin)
                    {
                        DataModel.SmithyCastData.SelectedProduct.State = (int)ForgeState.During;
                        if (FinishTimeCor == null)
                        {
                            FinishTimeCor = NetManager.Instance.StartCoroutine(RefleshFinishTime());
                        }
                        EventDispatcher.Instance.DispatchEvent(new SmithyOnPlayTweenAnim(param.Items[1]));
                        if (NeedItemShowCoroutine != null)
                        {
                            NetManager.Instance.StopCoroutine(NeedShowCoroutine());
                            NeedItemShowCoroutine = null;
                        }
                        NeedItemShowCoroutine = NetManager.Instance.StartCoroutine(NeedShowCoroutine());
                    }
                    else if (param.Items[0] == (int)ForgeState.During)
                    {
                        DataModel.SmithyCastData.SelectedProduct.State = (int)ForgeState.Complete;
                        AnalyseNotice();
                    }
                    else if (param.Items[0] == (int)ForgeState.Complete)
                    {
                        PlatformHelper.Event("city", "FurnaceComplete");
                        DataModel.SmithyCastData.SelectedProduct.State = (int)ForgeState.CanAdd;
                        var tbForged = Table.Getforged(BuildingData.Exdata[mCurFurnaceIndex]);
                        var tbserver = Table.GetBuildingService(tbBuilding.ServiceId);
                        if (tbForged != null)
                        {
                            var count = tbForged.NeedTime * tbserver.Param[4] / 10000;
                            //var ee = new UIEvent_SmithyFlyAnim(0, count);
                            //ee.Index = mCurFurnaceIndex;
                            //EventDispatcher.Instance.DispatchEvent(ee);
                        }
                        AnalyseNotice();
                    }
                    else if (param.Items[0] == 3) //装备进阶功能功能
                    {
                        var list = DataModel.SmithyEvoData.EvolveItems;
                        for (var i = 0; i < list.Count; i++)
                        {
                            if (list[i].ItemId != -1)
                            {
                                var equipLogic = Table.GetEquipBase(list[i].ItemId).EquipUpdateLogic;
                                var count      = Table.GetEquipUpdate(equipLogic).SuccessGetExp;
                                EventDispatcher.Instance.DispatchEvent(new UIEvent_SmithyFlyAnim(1, count));
                            }
                        }
                        mRefreshEvoUiAction = ResetEvoUI;
                    }
                    if (onOk != null)
                    {
                        onOk();
                    }
                }
                else
                {
                    UIManager.Instance.ShowNetError(msg.ErrorCode);
                    mRefreshEvoUiAction = null;
                }
            }
            else
            {
                var e = new ShowUIHintBoard(220821);
                EventDispatcher.Instance.DispatchEvent(e);
                mRefreshEvoUiAction = null;
            }
        }
    }
		public void IndexingWorks() {
			var arr = new Int32Array(3);
			arr[1] = 42;
			AssertContent(arr, new[] { 0, 42, 0 }, "Content");
			Assert.AreEqual(arr[1], 42, "[1]");
		}
Example #30
0
 /// <summary>
 /// Creates a new Int32Array out of the specified Int32Array.
 /// </summary>
 /// <param name="typedArray">Int32Array to use as initial contents to the new array.</param>
 public Int32Array(Int32Array typedArray)
 {
 }
		public void LengthWorks() {
			var arr = new Int32Array(13);
			Assert.AreEqual(arr.Length, 13, "Length");
		}
Example #32
0
    private IEnumerator UseBuildServiceCoroutine(int areaId, int serviceId, List <int> param)
    {
        using (new BlockingLayerHelper(0))
        {
            var array = new Int32Array();
            if (null != param)
            {
                {
                    var __list8      = param;
                    var __listCount8 = __list8.Count;
                    for (var __i8 = 0; __i8 < __listCount8; ++__i8)
                    {
                        var item = __list8[__i8];
                        {
                            array.Items.Add(item);
                        }
                    }
                }
            }
            var msg = NetManager.Instance.UseBuildService(areaId, serviceId, array);
            yield return(msg.SendAndWaitUntilDone());

            if (msg.State == MessageState.Reply)
            {
                if (msg.ErrorCode == (int)ErrorCodes.OK)
                {
                    var building = GetBuildingByAreaId(areaId);
                    var table    = Table.GetBuilding(building.TypeId);
                    var type     = (BuildingType)table.Type;
                    var count    = msg.Response.Data32[0];

                    if (BuildingType.LogPlace == type)
                    {
                        PlatformHelper.Event("city", "LogPlace");
                        if (count <= 0)
                        {
                            EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(300203));
                        }
                        else
                        {
                            var tbserver = Table.GetBuildingService(table.ServiceId);
                            var exp      = tbserver.Param[4] * count / 10000;
                            var str      = string.Format(GameUtils.GetDictionaryText(300200), count);
                            EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(str));
                            EventDispatcher.Instance.DispatchEvent(new CityGetResAnim(areaId, 0, 8, count));
                            if (exp > 0)
                            {
                                EventDispatcher.Instance.DispatchEvent(new CityGetResAnim(areaId, 1, 8, exp));
                            }
                        }
                        EventDispatcher.Instance.DispatchEvent(new CityBulidingNoticeAdd(areaId));
                        PlayerDataManager.Instance.NoticeData.LogPlaceComplete4 = false;

                        //刷新推送
                        NetManager.Instance.StartCoroutine(RefreshPush(11));
                    }
                    else if (BuildingType.Mine == type)
                    {
                        PlatformHelper.Event("city", "Mine");
                        if (count <= 0)
                        {
                            EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(300203));
                        }
                        else
                        {
                            var tbserver = Table.GetBuildingService(table.ServiceId);
                            var exp      = tbserver.Param[4] * count / 10000;
                            var str      = string.Format(GameUtils.GetDictionaryText(300201), count);
                            EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(str));
                            EventDispatcher.Instance.DispatchEvent(new CityGetResAnim(areaId, 0, 9, count));
                            if (exp > 0)
                            {
                                EventDispatcher.Instance.DispatchEvent(new CityGetResAnim(areaId, 1, 9, exp));
                            }
                        }
                        EventDispatcher.Instance.DispatchEvent(new CityBulidingNoticeAdd(areaId));
                        PlayerDataManager.Instance.NoticeData.MineComplete4 = false;

                        //刷新推送
                        NetManager.Instance.StartCoroutine(RefreshPush(10));
                    }
                    else if (BuildingType.MercenaryCamp == type)
                    {
                        if (0 == array.Items[0])
                        {
                            EventDispatcher.Instance.DispatchEvent(new UIEvent_SelectHatchingCell(-1));
                        }
                        else if (1 == array.Items[0])
                        {
                            //完成孵化
                            PlatformHelper.Event("city", "HatchingComplete");
                            EventDispatcher.Instance.DispatchEvent(new UIEvent_HatchingRoomEvent("NewPet", count));
                        }
                    }
                }
                else
                {
                    EventDispatcher.Instance.DispatchEvent(new UIEvent_ErrorTip((ErrorCodes)msg.ErrorCode));
                    UIManager.Instance.ShowNetError(msg.ErrorCode);
                    Logger.Error(".....UseBuildServiceCoroutine.......{0}.", msg.ErrorCode);
                }
            }
            else
            {
                Logger.Error(".....UseBuildServiceCoroutine.......{0}.", msg.State);
            }
        }
    }
Example #33
0
 /// <summary>
 /// Creates a new Int32Array out of the specified Int32Array.
 /// </summary>
 /// <param name="typedArray">Int32Array to use as initial contents to the new array.</param>
 public Int32Array(Int32Array typedArray)
 {
 }
Example #34
0
        public static void TestUseCase()
        {
            var isSpecialTypeName = BrowserHelper.IsPhantomJs();

            var v1       = new Float32Array(1);
            var thisType = "Float32Array";

            Assert.True(v1 != null, thisType + " created");
            var thisName = isSpecialTypeName ? "Object" : thisType;

            Assert.AreEqual(thisName, v1.GetType().FullName, thisType + " class name");

            var v2 = new Float64Array(1);

            thisType = "Float64Array";
            Assert.True(v2 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            Assert.AreEqual(thisName, v2.GetType().FullName, thisType + " class name");

            var v3 = new Int16Array(1);

            thisType = "Int16Array";
            Assert.True(v3 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            Assert.AreEqual(thisName, v3.GetType().FullName, thisType + " class name");

            var v4 = new Int32Array(1);

            thisType = "Int32Array";
            Assert.True(v4 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            Assert.AreEqual(thisName, v4.GetType().FullName, thisType + " class name");

            var v5 = new Int8Array(1);

            thisType = "Int8Array";
            Assert.True(v5 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            Assert.AreEqual(thisName, v5.GetType().FullName, thisType + " class name");

            var v6 = new Uint16Array(1);

            thisType = "Uint16Array";
            Assert.True(v6 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            Assert.AreEqual(thisName, v6.GetType().FullName, thisType + " class name");

            var v7 = new Uint32Array(1);

            thisType = "Uint32Array";
            Assert.True(v7 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            Assert.AreEqual(thisName, v7.GetType().FullName, thisType + " class name");

            var v8 = new Uint8Array(1);

            thisType = "Uint8Array";
            Assert.True(v8 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            Assert.AreEqual(thisName, v8.GetType().FullName, thisType + " class name");

            var v9 = new Uint8ClampedArray(1);

            thisType = "Uint8ClampedArray";
            Assert.True(v9 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            Assert.AreEqual(thisName, v9.GetType().FullName, thisType + " class name");
        }
Example #35
0
 private static void SetTypedArrayInt(JSObject obj)
 {
     int[] buffer = Enumerable.Repeat((int)0x20, 15).ToArray();
     obj.SetObjectProperty("typedArray", Int32Array.From(buffer));
 }
Example #36
0
        public static void TestUseCase(Assert assert)
        {
            var isToStringToTypeNameLogic = !BrowserHelper.IsChrome();

            assert.Expect(153);

            var v1 = new Float32Array(10);

            assert.Ok(v1 != null, "Float32Array created");

            v1[1] = 11;
            v1[5] = 5;
            v1[9] = 99;
            assert.Equal(v1[1], 11, "Float32Array indexier works 1");
            assert.Equal(v1[9], 99, "Float32Array indexier works 9");

            // Check just a select number of references inside the Prototype inheritance.
            assert.Ok(v1.Buffer != null, "Float32Array Buffer");
            assert.Equal(v1.ByteLength, 40, "Float32Array ByteLength");
            assert.Equal(v1.ByteOffset, 0, "Float32Array ByteOffset");
            assert.Equal(v1.Length, 10, "Float32Array Length");

            /*
             * Commented out. Reason: Only Firefox implements them.
             * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array
             * var mA = v1.Join();
             * v1.Reverse();
             * var mB = v1.Slice();
             * var mC = v1.Sort();
             */

            var expectedToStringFloat32Array1 = isToStringToTypeNameLogic ? "[object Float32Array]" : "0,11,0,0,0,5,0,0,0,99";

            assert.Equal(v1.ToLocaleString(), expectedToStringFloat32Array1, "Float32Array ToLocaleString");
            assert.Equal(v1.ToString(), expectedToStringFloat32Array1, "Float32Array ToString");

            // Some browsers do not support SubArray() with no parameters.
            // At least 'begin' must be provided.
            var subArray11 = v1.SubArray(1);
            var expectedToStringFloat32Array2 = isToStringToTypeNameLogic ? "[object Float32Array]" : "11,0,0,0,5,0,0,0,99";

            assert.Ok(subArray11 != null, "Float32Array SubArray1");
            assert.Equal(subArray11.Length, 9, "Float32Array SubArray1 Length");
            assert.Equal(subArray11.ToString(), expectedToStringFloat32Array2, "Float32Array SubArray1 ToString");
            assert.Equal(subArray11.ByteOffset, 4, "Float32Array SubArray1 ByteOffset");

            var subArray12 = subArray11.SubArray(2, 6);
            var expectedToStringFloat32Array3 = isToStringToTypeNameLogic ? "[object Float32Array]" : "0,0,5,0";

            assert.Ok(subArray12 != null, "Float32Array SubArray2");
            assert.Equal(subArray12.Length, 4, "Float32Array SubArray2 Length");
            assert.Equal(subArray12.ToString(), expectedToStringFloat32Array3, "Float32Array SubArray2 ToString");
            assert.Equal(subArray12.ByteOffset, 12, "Float32Array SubArray2 ByteOffset");

            var v2 = new Float64Array(10);

            assert.Ok(v2 != null, "Float64Array created");

            v2[1] = 11;
            v2[5] = 5;
            v2[9] = 99;
            assert.Equal(v2[1], 11, "Float64Array indexier works 1");
            assert.Equal(v2[9], 99, "Float64Array indexier works 9");

            assert.Ok(v2.Buffer != null, "Float64Array Buffer");
            assert.Equal(v2.ByteLength, 80, "Float64Array ByteLength");
            assert.Equal(v2.ByteOffset, 0, "Float64Array ByteOffset");
            assert.Equal(v2.Length, 10, "Float64Array Length");

            var expectedToStringFloat64Array1 = isToStringToTypeNameLogic ? "[object Float64Array]" : "0,11,0,0,0,5,0,0,0,99";

            assert.Equal(v2.ToLocaleString(), expectedToStringFloat64Array1, "Float64Array ToLocaleString");
            assert.Equal(v2.ToString(), expectedToStringFloat64Array1, "Float64Array ToString");

            var subArray21 = v2.SubArray(1);
            var expectedToStringFloat64Array2 = isToStringToTypeNameLogic ? "[object Float64Array]" : "11,0,0,0,5,0,0,0,99";

            assert.Ok(subArray21 != null, "Float64Array SubArray1");
            assert.Equal(subArray21.Length, 9, "Float64Array SubArray1 Length");
            assert.Equal(subArray21.ToString(), expectedToStringFloat64Array2, "Float64Array SubArray1 ToString");
            assert.Equal(subArray21.ByteOffset, 8, "Float64Array SubArray1 ByteOffset");

            var subArray22 = subArray21.SubArray(2, 6);
            var expectedToStringFloat64Array3 = isToStringToTypeNameLogic ? "[object Float64Array]" : "0,0,5,0";

            assert.Ok(subArray22 != null, "Float64Array SubArray2");
            assert.Equal(subArray22.Length, 4, "Float64Array SubArray2 Length");
            assert.Equal(subArray22.ToString(), expectedToStringFloat64Array3, "Float64Array SubArray2 ToString");
            assert.Equal(subArray22.ByteOffset, 24, "Float64Array SubArray2 ByteOffset");

            var v3 = new Int16Array(10);

            assert.Ok(v3 != null, "Int16Array created");

            v3[1] = 11;
            v3[5] = 5;
            v3[9] = 99;
            assert.Equal(v3[1], 11, "Int16Array indexier works 1");
            assert.Equal(v3[9], 99, "Int16Array indexier works 9");

            assert.Ok(v3.Buffer != null, "Int16Array Buffer");
            assert.Equal(v3.ByteLength, 20, "Int16Array ByteLength");
            assert.Equal(v3.ByteOffset, 0, "Int16Array ByteOffset");
            assert.Equal(v3.Length, 10, "Int16Array Length");

            var expectedToStringInt16Array1 = isToStringToTypeNameLogic ? "[object Int16Array]" : "0,11,0,0,0,5,0,0,0,99";

            assert.Equal(v3.ToLocaleString(), expectedToStringInt16Array1, "Int16Array ToLocaleString");
            assert.Equal(v3.ToString(), expectedToStringInt16Array1, "Int16Array ToString");

            var subArray31 = v3.SubArray(1);
            var expectedToStringInt16Array2 = isToStringToTypeNameLogic ? "[object Int16Array]" : "11,0,0,0,5,0,0,0,99";

            assert.Ok(subArray31 != null, "Int16Array SubArray1");
            assert.Equal(subArray31.Length, 9, "Int16Array SubArray1 Length");
            assert.Equal(subArray31.ToString(), expectedToStringInt16Array2, "Int16Array SubArray1 ToString");
            assert.Equal(subArray31.ByteOffset, 2, "Int16Array SubArray1 ByteOffset");

            var subArray32 = subArray31.SubArray(2, 6);
            var expectedToStringInt16Array3 = isToStringToTypeNameLogic ? "[object Int16Array]" : "0,0,5,0";

            assert.Ok(subArray32 != null, "Int16Array SubArray2");
            assert.Equal(subArray32.Length, 4, "Int16Array SubArray2 Length");
            assert.Equal(subArray32.ToString(), expectedToStringInt16Array3, "Int16Array SubArray2 ToString");
            assert.Equal(subArray32.ByteOffset, 6, "Int16Array SubArray2 ByteOffset");

            var v4 = new Int32Array(10);

            assert.Ok(v4 != null, "Int32Array created");

            v4[1] = 11;
            v4[5] = 5;
            v4[9] = 99;
            assert.Equal(v4[1], 11, "Int32Array indexier works 1");
            assert.Equal(v4[9], 99, "Int32Array indexier works 9");

            assert.Ok(v4.Buffer != null, "Int32Array Buffer");
            assert.Equal(v4.ByteLength, 40, "Int32Array ByteLength");
            assert.Equal(v4.ByteOffset, 0, "Int32Array ByteOffset");
            assert.Equal(v4.Length, 10, "Int32Array Length");

            var expectedToStringInt32Array1 = isToStringToTypeNameLogic ? "[object Int32Array]" : "0,11,0,0,0,5,0,0,0,99";

            assert.Equal(v4.ToLocaleString(), expectedToStringInt32Array1, "Int32Array ToLocaleString");
            assert.Equal(v4.ToString(), expectedToStringInt32Array1, "Int32Array ToString");

            var subArray41 = v4.SubArray(1);
            var expectedToStringInt32Array2 = isToStringToTypeNameLogic ? "[object Int32Array]" : "11,0,0,0,5,0,0,0,99";

            assert.Ok(subArray41 != null, "Int32Array SubArray1");
            assert.Equal(subArray41.Length, 9, "Int32Array SubArray1 Length");
            assert.Equal(subArray41.ToString(), expectedToStringInt32Array2, "Int32Array SubArray1 ToString");
            assert.Equal(subArray41.ByteOffset, 4, "Int32Array SubArray1 ByteOffset");

            var subArray42 = subArray41.SubArray(2, 6);
            var expectedToStringInt32Array3 = isToStringToTypeNameLogic ? "[object Int32Array]" : "0,0,5,0";

            assert.Ok(subArray42 != null, "Int32Array SubArray2");
            assert.Equal(subArray42.Length, 4, "Int32Array SubArray2 Length");
            assert.Equal(subArray42.ToString(), expectedToStringInt32Array3, "Int32Array SubArray2 ToString");
            assert.Equal(subArray42.ByteOffset, 12, "Int32Array SubArray2 ByteOffset");

            var v5 = new Int8Array(10);

            assert.Ok(v5 != null, "Int8Array created");

            v5[1] = 11;
            v5[5] = 5;
            v5[9] = 99;
            assert.Equal(v5[1], 11, "Int8Array indexier works 1");
            assert.Equal(v5[9], 99, "Int8Array indexier works 9");

            assert.Ok(v5.Buffer != null, "Int8Array Buffer");
            assert.Equal(v5.ByteLength, 10, "Int8Array ByteLength");
            assert.Equal(v5.ByteOffset, 0, "Int8Array ByteOffset");
            assert.Equal(v5.Length, 10, "Int8Array Length");

            var expectedToStringInt8Array1 = isToStringToTypeNameLogic ? "[object Int8Array]" : "0,11,0,0,0,5,0,0,0,99";

            assert.Equal(v5.ToLocaleString(), expectedToStringInt8Array1, "Int8Array ToLocaleString");
            assert.Equal(v5.ToString(), expectedToStringInt8Array1, "Int8Array ToString");

            var subArray51 = v5.SubArray(1);
            var expectedToStringInt8Array2 = isToStringToTypeNameLogic ? "[object Int8Array]" : "11,0,0,0,5,0,0,0,99";

            assert.Ok(subArray51 != null, "Int8Array SubArray1");
            assert.Equal(subArray51.Length, 9, "Int8Array SubArray1 Length");
            assert.Equal(subArray51.ToString(), expectedToStringInt8Array2, "Int8Array SubArray1 ToString");
            assert.Equal(subArray51.ByteOffset, 1, "Int8Array SubArray1 ByteOffset");

            var subArray52 = subArray51.SubArray(2, 6);
            var expectedToStringInt8Array3 = isToStringToTypeNameLogic ? "[object Int8Array]" : "0,0,5,0";

            assert.Ok(subArray52 != null, "Int8Array SubArray2");
            assert.Equal(subArray52.Length, 4, "Int8Array SubArray2 Length");
            assert.Equal(subArray52.ToString(), expectedToStringInt8Array3, "Int8Array SubArray2 ToString");
            assert.Equal(subArray52.ByteOffset, 3, "Int8Array SubArray2 ByteOffset");

            var v6 = new Uint16Array(10);

            assert.Ok(v6 != null, "Uint16Array created");

            v6[1] = 11;
            v6[5] = 5;
            v6[9] = 99;
            assert.Equal(v6[1], 11, "Uint16Array indexier works 1");
            assert.Equal(v6[9], 99, "Uint16Array indexier works 9");

            assert.Ok(v6.Buffer != null, "Uint16Array Buffer");
            assert.Equal(v6.ByteLength, 20, "Uint16Array ByteLength");
            assert.Equal(v6.ByteOffset, 0, "Uint16Array ByteOffset");
            assert.Equal(v6.Length, 10, "Uint16Array Length");

            var expectedToStringUint16Array1 = isToStringToTypeNameLogic ? "[object Uint16Array]" : "0,11,0,0,0,5,0,0,0,99";

            assert.Equal(v6.ToLocaleString(), expectedToStringUint16Array1, "Uint16Array ToLocaleString");
            assert.Equal(v6.ToString(), expectedToStringUint16Array1, "Uint16Array ToString");

            var subArray61 = v6.SubArray(1);
            var expectedToStringUint16Array2 = isToStringToTypeNameLogic ? "[object Uint16Array]" : "11,0,0,0,5,0,0,0,99";

            assert.Ok(subArray61 != null, "Uint16Array SubArray1");
            assert.Equal(subArray61.Length, 9, "Uint16Array SubArray1 Length");
            assert.Equal(subArray61.ToString(), expectedToStringUint16Array2, "Uint16Array SubArray1 ToString");
            assert.Equal(subArray61.ByteOffset, 2, "Uint16Array SubArray1 ByteOffset");

            var subArray62 = subArray61.SubArray(2, 6);
            var expectedToStringUint16Array3 = isToStringToTypeNameLogic ? "[object Uint16Array]" : "0,0,5,0";

            assert.Ok(subArray62 != null, "Uint16Array SubArray2");
            assert.Equal(subArray62.Length, 4, "Uint16Array SubArray2 Length");
            assert.Equal(subArray62.ToString(), expectedToStringUint16Array3, "Uint16Array SubArray2 ToString");
            assert.Equal(subArray62.ByteOffset, 6, "Uint16Array SubArray2 ByteOffset");

            var v7 = new Uint32Array(10);

            assert.Ok(v7 != null, "Uint32Array created");

            v7[1] = 11;
            v7[5] = 5;
            v7[9] = 99;
            assert.Equal(v7[1], 11, "Uint32Array indexier works 1");
            assert.Equal(v7[9], 99, "Uint32Array indexier works 9");

            assert.Ok(v7.Buffer != null, "Uint32Array Buffer");
            assert.Equal(v7.ByteLength, 40, "Uint32Array ByteLength");
            assert.Equal(v7.ByteOffset, 0, "Uint32Array ByteOffset");
            assert.Equal(v7.Length, 10, "Uint32Array Length");

            var expectedToStringUint32Array1 = isToStringToTypeNameLogic ? "[object Uint32Array]" : "0,11,0,0,0,5,0,0,0,99";

            assert.Equal(v7.ToLocaleString(), expectedToStringUint32Array1, "Uint32Array ToLocaleString");
            assert.Equal(v7.ToString(), expectedToStringUint32Array1, "Uint32Array ToString");

            var subArray71 = v7.SubArray(1);
            var expectedToStringUint32Array2 = isToStringToTypeNameLogic ? "[object Uint32Array]" : "11,0,0,0,5,0,0,0,99";

            assert.Ok(subArray71 != null, "Uint32Array SubArray1");
            assert.Equal(subArray71.Length, 9, "Uint32Array SubArray1 Length");
            assert.Equal(subArray71.ToString(), expectedToStringUint32Array2, "Uint32Array SubArray1 ToString");
            assert.Equal(subArray71.ByteOffset, 4, "Uint32Array SubArray1 ByteOffset");

            var subArray72 = subArray71.SubArray(2, 6);
            var expectedToStringUint32Array3 = isToStringToTypeNameLogic ? "[object Uint32Array]" : "0,0,5,0";

            assert.Ok(subArray72 != null, "Uint32Array SubArray2");
            assert.Equal(subArray72.Length, 4, "Uint32Array SubArray2 Length");
            assert.Equal(subArray72.ToString(), expectedToStringUint32Array3, "Uint32Array SubArray2 ToString");
            assert.Equal(subArray72.ByteOffset, 12, "Uint32Array SubArray2 ByteOffset");

            var v8 = new Uint8Array(10);

            assert.Ok(v8 != null, "Uint8Array created");

            v8[1] = 11;
            v8[5] = 5;
            v8[9] = 99;
            assert.Equal(v8[1], 11, "Uint8Array indexier works 1");
            assert.Equal(v8[9], 99, "Uint8Array indexier works 9");

            assert.Ok(v8.Buffer != null, "Uint8Array Buffer");
            assert.Equal(v8.ByteLength, 10, "Uint8Array ByteLength");
            assert.Equal(v8.ByteOffset, 0, "Uint8Array ByteOffset");
            assert.Equal(v8.Length, 10, "Uint8Array Length");

            var expectedToStringUint8Array1 = isToStringToTypeNameLogic ? "[object Uint8Array]" : "0,11,0,0,0,5,0,0,0,99";

            assert.Equal(v8.ToLocaleString(), expectedToStringUint8Array1, "Uint8Array ToLocaleString");
            assert.Equal(v8.ToString(), expectedToStringUint8Array1, "Uint8Array ToString");

            var subArray81 = v8.SubArray(1);
            var expectedToStringUint8Array2 = isToStringToTypeNameLogic ? "[object Uint8Array]" : "11,0,0,0,5,0,0,0,99";

            assert.Ok(subArray81 != null, "Uint8Array SubArray1");
            assert.Equal(subArray81.Length, 9, "Uint8Array SubArray1 Length");
            assert.Equal(subArray81.ToString(), expectedToStringUint8Array2, "Uint8Array SubArray1 ToString");
            assert.Equal(subArray81.ByteOffset, 1, "Uint8Array SubArray1 ByteOffset");

            var subArray82 = subArray81.SubArray(2, 6);
            var expectedToStringUint8Array3 = isToStringToTypeNameLogic ? "[object Uint8Array]" : "0,0,5,0";

            assert.Ok(subArray82 != null, "Uint8Array SubArray2");
            assert.Equal(subArray82.Length, 4, "Uint8Array SubArray2 Length");
            assert.Equal(subArray82.ToString(), expectedToStringUint8Array3, "Uint8Array SubArray2 ToString");
            assert.Equal(subArray82.ByteOffset, 3, "Uint8Array SubArray2 ByteOffset");

            var v9 = new Uint8ClampedArray(10);

            assert.Ok(v9 != null, "Uint8ClampedArray created");

            v9[1] = 11;
            v9[5] = 5;
            v9[9] = 99;
            assert.Equal(v9[1], 11, "Uint8ClampedArray indexier works 1");
            assert.Equal(v9[9], 99, "Uint8ClampedArray indexier works 9");

            assert.Ok(v9.Buffer != null, "Uint8ClampedArray Buffer");
            assert.Equal(v9.ByteLength, 10, "Uint8ClampedArray ByteLength");
            assert.Equal(v9.ByteOffset, 0, "Uint8ClampedArray ByteOffset");
            assert.Equal(v9.Length, 10, "Uint8ClampedArray Length");

            var expectedToStringUint8ClampedArray1 = isToStringToTypeNameLogic ? "[object Uint8ClampedArray]" : "0,11,0,0,0,5,0,0,0,99";

            assert.Equal(v9.ToLocaleString(), expectedToStringUint8ClampedArray1, "Uint8ClampedArray ToLocaleString");
            assert.Equal(v9.ToString(), expectedToStringUint8ClampedArray1, "Uint8ClampedArray ToString");

            var subArray91 = v9.SubArray(1);
            var expectedToStringUint8ClampedArray2 = isToStringToTypeNameLogic ? "[object Uint8ClampedArray]" : "11,0,0,0,5,0,0,0,99";

            assert.Ok(subArray91 != null, "Uint8ClampedArray SubArray1");
            assert.Equal(subArray91.Length, 9, "Uint8ClampedArray SubArray1 Length");
            assert.Equal(subArray91.ToString(), expectedToStringUint8ClampedArray2, "Uint8ClampedArray SubArray1 ToString");
            assert.Equal(subArray91.ByteOffset, 1, "Uint8ClampedArray SubArray1 ByteOffset");

            var subArray92 = subArray91.SubArray(2, 6);
            var expectedToStringUint8ClampedArray3 = isToStringToTypeNameLogic ? "[object Uint8ClampedArray]" : "0,0,5,0";

            assert.Ok(subArray92 != null, "Uint8ClampedArray SubArray2");
            assert.Equal(subArray92.Length, 4, "Uint8ClampedArray SubArray2 Length");
            assert.Equal(subArray92.ToString(), expectedToStringUint8ClampedArray3, "Uint8ClampedArray SubArray2 ToString");
            assert.Equal(subArray92.ByteOffset, 3, "Uint8ClampedArray SubArray2 ByteOffset");
        }
Example #37
0
 public void Visit(Int32Array array) => CreateBuffers(array);
Example #38
0
        public void ByteLengthPropertyWorks()
        {
            var arr = new Int32Array(23);

            Assert.AreEqual(92, arr.ByteLength, "Should be correct");
        }
Example #39
0
 public void Uniform4iv(WebGLUniformLocation location, Int32Array v)
 {
 }
Example #40
0
        public static Int32Array Int32ArrayFrom()
        {
            var array = new int[50];

            return(Int32Array.From(array));
        }
Example #41
0
        bool Merge3DFace(vdPolyface vdp)
        {
            int                   II       = int.MaxValue;
            Int32Array            i32      = vdp.FaceList;
            Dictionary <int, int> deleteID = new Dictionary <int, int>();

            Dictionary <int, int> kk1 = new Dictionary <int, int>();
            Dictionary <int, int> kk2 = new Dictionary <int, int>();

            //合并三角形
            #region 合并三角形
            for (int i = 0; i < i32.Count; i = i + 5)
            {
                if (i32[i + 4] != II && i32[i] == i32[i + 3]) //一定是没有被合并过的,说明是三角形
                {
                    int i1 = i32[i];
                    int i2 = i32[i + 1];
                    int i3 = i32[i + 2];
                    kk1.Clear();
                    kk1.Add(i1, i1);
                    kk1.Add(i2, i2);
                    kk1.Add(i3, i3);

                    for (int j = i + 5; j < i32.Count; j = j + 5)
                    {
                        if (i32[j + 4] != II && i32[j] == i32[j + 3])   //剔除已经处理过的
                        {
                            int j1 = i32[j];
                            int j2 = i32[j + 1];
                            int j3 = i32[j + 2];

                            //kk2.Clear();
                            //kk2.Add(j1, j1);
                            //kk2.Add(j2, j2);
                            //kk2.Add(j3, j3);


                            int k1 = 0;
                            int k2 = 0;
                            int k3 = 0;
                            int k4 = 0;

                            //找到公共边
                            if ((i1 == j1 || i1 == j2 || i1 == j3) && (i2 == j1 || i2 == j2 || i2 == j3))
                            {
                                k1 = i3;
                                k2 = i1;
                                k4 = i2;
                            }
                            else if ((i2 == j1 || i2 == j2 || i2 == j3) && (i3 == j1 || i3 == j2 || i3 == j3))
                            {
                                k1 = i1;
                                k2 = i2;
                                k4 = i3;
                            }
                            else if ((i1 == j1 || i1 == j2 || i1 == j3) && (i3 == j1 || i3 == j2 || i3 == j3))
                            {
                                k1 = i2;
                                k2 = i3;
                                k4 = i1;
                            }
                            else
                            {
                                continue;
                            }

                            if (!kk1.ContainsKey(j1))
                            {
                                k3 = j1;
                            }

                            if (!kk1.ContainsKey(j2))
                            {
                                k3 = j2;
                            }

                            if (!kk1.ContainsKey(j3))
                            {
                                k3 = j3;
                            }

                            //检查是否共面

                            gPoints gps3 = new gPoints();
                            //gps3.Add(vdp.VertexList[i1 - 1]);
                            //gps3.Add(vdp.VertexList[i2 - 1]);
                            //gps3.Add(vdp.VertexList[i3 - 1]);

                            gps3.Add(vdp.VertexList[k1 - 1]);
                            gps3.Add(vdp.VertexList[k2 - 1]);
                            gps3.Add(vdp.VertexList[k4 - 1]);


                            Vector vec = gps3.GetNormal();

                            // 导出时,下面计算dist的方法有异常OutOfRange异常抛出,特加以下判断
                            if (k3 > vdp.VertexList.Count || k1 > vdp.VertexList.Count || k3 <= 0 || k1 <= 0)
                            {
                                continue;
                            }

                            double dist = Globals.DistancePointToPlane(vdp.VertexList[k3 - 1], vec,
                                                                       vdp.VertexList[k1 - 1]);
                            if (Math.Abs(dist) > Globals.VD_ZERO6)
                            {
                                continue;
                            }

                            //判断是否是凹多边形   凹多边形有显示问题

                            ////判断是否构成了三角形
                            gps3.InsertAt(3, vdp.VertexList[k3 - 1]);

                            //gPoints gps4=gps3.Clone() as gPoints;
                            //gps3.makeClosed();
                            //gps4.makeClosed();
                            //gps4.RemoveInLinePoints();

                            //if (gps3.Count != gps4.Count) continue;


                            double area1 = GetArea3D(gps3[0], gps3[1], gps3[2]);
                            double area2 = GetArea3D(gps3[3], gps3[1], gps3[2]);
                            double area3 = GetArea3D(gps3[0], gps3[1], gps3[3]);
                            double area4 = GetArea3D(gps3[0], gps3[2], gps3[3]);

                            double area = Math.Max(area3, area4);
                            if (area1 + area2 <= area)  //凹多边形
                            {
                                continue;
                            }


                            i32[i]     = k4;
                            i32[i + 1] = k1;
                            i32[i + 2] = k2;
                            i32[i + 3] = k3;//这里放到第3个点经常出现问题


                            i32[j + 4] = II;
                            break;
                        }
                    }
                }
            }
            #endregion
            #region 生成新的polyface
            Int32Array iii32 = new Int32Array();
            for (int i = 0; i < vdp.FaceList.Count; i = i + 5)
            {
                if (vdp.FaceList[i + 4] != II)
                {
                    iii32.Add(i32[i]);
                    iii32.Add(i32[i + 1]);
                    iii32.Add(i32[i + 2]);
                    iii32.Add(i32[i + 3]);
                    iii32.Add(i32[i + 4]);
                }
            }
            vdp.FaceList = iii32;
            vdp.Invalidate();
            #endregion
            return(true);
        }
Example #42
0
    private void OnEvent_Operate(IEvent ievent)
    {
        var e = ievent as MyArtifactOpEvent;

        if (e == null)
        {
            return;
        }

        switch (e.Idx)
        {
        case 0:
        {
            DataModel.Page       = 0;
            DataModel.TogglePack = 0;
        }
        break;

        case 1:
        {
            DataModel.Page       = 1;
            DataModel.TogglePack = 1;
        }
        break;

        case 2:
        {
            if (DataModel.Page == 0)
            {
                EventDispatcher.Instance.DispatchEvent(new Close_UI_Event(UIConfig.MyArtifactUI));
            }
            else
            {
                DataModel.Page       = 0;
                DataModel.TogglePack = 0;
                DataModel.SaveEffect = false;
                DataModel.RandEffect = false;
            }
        }
        break;

        case 3:
        {
            DataModel.RandEffect = false;
            DataModel.RandEffect = true;
            var bagItem = DataModel.CurrentEquip;
            RequestRandSkill(bagItem.BagId, bagItem.Index);
        }
        break;

        case 4:
        {
            var bagItem = DataModel.CurrentEquip;
            UseEquipSkill(bagItem.BagId, bagItem.Index, true);
        }
        break;

        case 5:
        {
            var bagItem = DataModel.CurrentEquip;
            UseEquipSkill(bagItem.BagId, bagItem.Index, false);
        }
        break;

        case 6:
        {
            if (DataModel.Page == 2)
            {
                DataModel.AdvanceSelectPack = 1;
            }
            else
            {
                DataModel.TogglePack = 1;
            }
        }
        break;

        case 7:
        {
            if (DataModel.Page == 2)
            {
                DataModel.AdvanceSelectPack = 0;
            }
            else
            {
                DataModel.TogglePack = 0;
            }
        }
        break;

        case 8:
        {
            var itemId = int.Parse(Table.GetClientConfig(1208).Value);
            GameUtils.CheckEnoughItems(itemId, 1);
        }
        break;

        case 9:
        {
            DataModel.Page       = 2;
            DataModel.TogglePack = 2;
            ClearEvoData();
            if (isAdvanceInit == false)
            {
                isAdvanceInit = true;
                PlayerDataManager.Instance.RefreshEquipBagStatus();
                DataModel.AdvanceSelectPack = 0;
            }
        }
        break;

        case 10:
        {
            if (!CheckSmithyEvoItem())
            {
                EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(300600));
                return;
            }
            var castData = DataModel.AdvanceDataModel;
            var evoItems = castData.EvolveItems;
            var mainItem = evoItems[0];
            mMajorEquipBagId    = mainItem.BagId;
            mMajorEquipBagIndex = mainItem.Index;
            var param = new Int32Array();
            param.Items.Add(3);         // 0:铸造功能
            {
                // foreach(var evoItem in evoItems)
                var __enumerator5 = (evoItems).GetEnumerator();
                while (__enumerator5.MoveNext())
                {
                    var evoItem = __enumerator5.Current;
                    {
                        if (evoItem.ItemId != -1)
                        {
                            param.Items.Add(evoItem.BagId);
                            param.Items.Add(evoItem.Index);
                        }
                    }
                }
            }
            //mRefreshEvoUiAction = ResetEvoUI;
            //进阶后将获得新装备“[{0}]{1}[-]”\n点击[4BE127]确定[-]按钮继续
            var warnStr = GameUtils.GetDictionaryText(300608);
            var tbItem  = Table.GetItemBase(castData.EvolvedItemId);
            if (tbItem == null)
            {
                return;
            }
            warnStr = string.Format(warnStr, GameUtils.GetTableColorString(tbItem.Color), tbItem.Name);
            UIManager.Instance.ShowMessage(MessageBoxType.OkCancel, warnStr, "",
                                           () => { UseBuildService(param, AdvanceEquipManual); });
        }
        break;
        }
    }
Example #43
0
        //生成队列
        Int32Array ParaseSide2List(Dictionary <string, bool> kvs, int count)
        {
            //生成两个字典
            //Dictionary<string, string> arr = new Dictionary<string, string>();
            //foreach (KeyValuePair<string, bool> kv in kvs)
            //{
            //    arr.Add(kv.Key, kv.Key);
            //}

            //Int32Array ii32 = new Int32Array();
            //int[] Points = new int[count];


            Dictionary <int, int> arr1 = new Dictionary <int, int>();
            Dictionary <int, int> arr2 = new Dictionary <int, int>();
            Dictionary <int, int> arr3 = new Dictionary <int, int>();
            Int32Array            i32  = new Int32Array();
            int beginNode = -1;

            //找出非重复的边

            foreach (KeyValuePair <string, bool> kv in kvs)
            {
                string   str    = kv.Key;
                string[] strArr = str.Split(new char[] { ',' });
                int      i1     = int.Parse(strArr[0]);
                int      i2     = int.Parse(strArr[1]);
                if (beginNode == -1)
                {
                    beginNode = i1;
                    break;
                }
            }

            //找到外循环边

            i32.Add(beginNode);

            //从第一个开始循环往后加

            int currentNode = beginNode;

            while (true)
            {
                int    len    = i32.Count;
                string strKey = "";
                int    iEnd   = -1;
                foreach (KeyValuePair <string, bool> kv in kvs)
                {
                    string   str    = kv.Key;
                    string[] strArr = str.Split(new char[] { ',' });
                    int      i1     = int.Parse(strArr[0]);
                    int      i2     = int.Parse(strArr[1]);

                    if (currentNode == i1)
                    {
                        iEnd   = i2;
                        strKey = kv.Key;

                        break;
                    }
                    else if (currentNode == i2)
                    {
                        iEnd   = i1;
                        strKey = kv.Key;

                        break;
                    }
                }
                if (strKey != "")
                {
                    i32.Add(iEnd);
                    currentNode = iEnd;
                    kvs.Remove(strKey);
                }



                if (len == i32.Count)  //没有再增加的了
                {
                    break;
                }
            }
            return(i32);
        }
Example #44
0
 private static void MarshalInt32Array(Int32Array buffer)
 {
     _intBuffer = buffer.ToArray();
 }
		public void SetNormalArrayWithOffsetWorks() {
			var arr = new Int32Array(6);
			arr.Set(new[] { 3, 6, 7 }, 2);
			AssertContent(arr, new[] { 0, 0, 3, 6, 7, 0 }, "Content");
		}
Example #46
0
 private static void MarshalArrayBufferToInt32Array(ArrayBuffer buffer)
 {
     using (var ints = new Int32Array(buffer))
         _intBuffer = ints.ToArray();
 }
Example #47
0
        public static void TestUseCase(Assert assert)
        {
            assert.Expect(18);

            var isSpecialTypeName = BrowserHelper.IsPhantomJs();

            var v1       = new Float32Array(1);
            var thisType = "Float32Array";

            assert.Ok(v1 != null, thisType + " created");
            var thisName = isSpecialTypeName ? "Object" : thisType;

            assert.Equal(v1.GetClassName(), thisName, thisType + " class name");

            var v2 = new Float64Array(1);

            thisType = "Float64Array";
            assert.Ok(v2 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            assert.Equal(v2.GetClassName(), thisName, thisType + " class name");

            var v3 = new Int16Array(1);

            thisType = "Int16Array";
            assert.Ok(v3 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            assert.Equal(v3.GetClassName(), thisName, thisType + " class name");

            var v4 = new Int32Array(1);

            thisType = "Int32Array";
            assert.Ok(v4 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            assert.Equal(v4.GetClassName(), thisName, thisType + " class name");

            var v5 = new Int8Array(1);

            thisType = "Int8Array";
            assert.Ok(v5 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            assert.Equal(v5.GetClassName(), thisName, thisType + " class name");

            var v6 = new Uint16Array(1);

            thisType = "Uint16Array";
            assert.Ok(v6 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            assert.Equal(v6.GetClassName(), thisName, thisType + " class name");

            var v7 = new Uint32Array(1);

            thisType = "Uint32Array";
            assert.Ok(v7 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            assert.Equal(v7.GetClassName(), thisName, thisType + " class name");

            var v8 = new Uint8Array(1);

            thisType = "Uint8Array";
            assert.Ok(v8 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            assert.Equal(v8.GetClassName(), thisName, thisType + " class name");

            var v9 = new Uint8ClampedArray(1);

            thisType = "Uint8ClampedArray";
            assert.Ok(v9 != null, thisType + " created");
            thisName = isSpecialTypeName ? "Object" : thisType;
            assert.Equal(v9.GetClassName(), thisName, thisType + " class name");
        }
Example #48
0
 public void Visit(Int32Array array) => CompareArrays(array);
Example #49
0
        /// <summary>
        /// /处理polyface
        /// </summary>
        //bool <param name="vdp"></param>
        bool GetVDPBorderLine(vdPolyface vdp, vdFigure vdPf)
        {
            vdPolyface vdpOut             = new vdPolyface();
            Dictionary <string, bool> kvs = new Dictionary <string, bool>();
            Int32Array iii32 = vdp.FaceList;

            for (int i = 0; i < iii32.Count; i++)
            {
                if (vdp.FaceList[i] < 0)
                {
                    if (i % 5 != 4)
                    {
                        vdp.FaceList[i] = -vdp.FaceList[i];
                    }
                }
            }
            iii32 = vdp.FaceList;
            for (int i = 0; i < iii32.Count; i = i + 5)
            {
                AddSide(kvs, iii32[i], iii32[i + 1]);
                AddSide(kvs, iii32[i + 1], iii32[i + 2]);
                AddSide(kvs, iii32[i + 2], iii32[i]);
            }
            //找到外边界
            Int32Array i32 = ParaseSide2List(kvs, vdp.VertexList.Count + 1);

            if (i32.Count < 5)
            {
                return(false);
            }

            //找到向量
            ///int iii = 1;
            gPoints Points = vdp.VertexList;

            Points.makeClosed();
            gPoints gps = new gPoints();// Points.Clone() as gPoints;

            foreach (int ii in i32)
            {
                gps.Add(Points[ii - 1]);
            }
            gps.RemoveEqualPoints(Globals.VD_ZERO5);

            //gps.RemoveInLinePoints();

            Int32Array ii32 = new Int32Array();
            gPoints    gpss = new gPoints();


            #region  延长线段到最长

            gpss.Add(gps[0]);


            for (int i = 0; i < gps.Count - 1; i++)
            {
                //if (i == 5)
                //{
                //    int j = 0;
                //}

                if (i != gps.Count - 2)
                {
                    double dd = Globals.distPointFromLine(gps[i + 2], gps[i], gps[i + 1]);
                    if (Globals.distPointFromLine(gps[i + 2], gps[i], gps[i + 1]) < 0.2)
                    {
                        continue;
                    }
                    else
                    {
                        gpss.Add(gps[i + 1]);
                    }
                }

                if (i == gps.Count - 2)
                {
                    if (Globals.distPointFromLine(gps[1], gps[i], gps[i + 1]) < 0.2)
                    {
                        gpss.RemoveAt(0);
                    }
                    else
                    {
                        gpss.Add(gps[i + 1]);
                    }
                }
            }

            #endregion
            gpss.makeClosed();
            gpss.RemoveLast();


            //找到四条边中符合圆柱体标准的。

            if (gpss.Count % 2 != 0 || gpss.Count < 10)
            {
                return(false);
            }

            int half = gpss.Count / 2;

            gPoints gEndSide1  = new gPoints();
            gPoints gEndSide2  = new gPoints();
            gPoints gParaSide1 = new gPoints();
            gPoints gParaSide2 = new gPoints();



            for (int i = 0; i < gpss.Count / 2; i++)
            {
                Vector v1 = new Vector(gpss[i], gpss[i + 1]);
                Vector v2 = new Vector(gpss[i + half], gpss[(half + i + 1) % gpss.Count]);
                v1.Cross(v2);
                if (v1.Length < Globals.VD_ZERO6)  //说明平行
                {
                    gEndSide1.RemoveAll();
                    gEndSide2.RemoveAll();
                    gParaSide1.RemoveAll();
                    gParaSide2.RemoveAll();

                    gParaSide1.Add(gpss[i]);
                    gParaSide1.Add(gpss[i + 1]);

                    gParaSide2.Add(gpss[i + half]);
                    gParaSide2.Add(gpss[(half + i + 1) % gpss.Count]);



                    for (int j = i + 1; j < i + half; j++)
                    {
                        gEndSide1.Add(gpss[j]);
                    }

                    for (int j = i + half + 1; j < i + 2 * half; j++)
                    {
                        gEndSide2.Add(gpss[j % gpss.Count]);
                    }

                    gPoint sp1    = new gPoint();
                    gPoint sp2    = new gPoint();
                    double radius = 0.0;

                    //判断是个边是否符合圆柱体标准
                    if (!IS4SideCyln(gEndSide1, gEndSide2, gParaSide1, gParaSide2, ref sp1, ref sp2, out radius))  //不符合圆柱体标准 ,直接返回错误
                    {
                        continue;
                    }
                    gpss.RemoveAll();


                    //这里可以进行圆柱简化



                    gpss.AddRange(gEndSide1);
                    gpss.AddRange(gParaSide2);
                    gpss.AddRange(gEndSide2);
                    gpss.AddRange(gParaSide1);


                    //是否齐头圆柱,即没有切过的圆柱,如果齐圆柱头,特殊处理,此处暂时不变,



                    //

                    half = gpss.Count / 2;

                    vdpOut.VertexList = gpss;
                    vdpOut.FaceList   = new Int32Array();

                    for (int ii = 1; ii < half; ii++)
                    {
                        vdpOut.FaceList.Add(ii);
                        vdpOut.FaceList.Add(ii + 1);
                        vdpOut.FaceList.Add(gpss.Count - (ii + 1) + 1);
                        vdpOut.FaceList.Add(gpss.Count - ii + 1);
                        vdpOut.FaceList.Add(-1);
                    }


                    vdp.FaceList   = vdpOut.FaceList;
                    vdp.VertexList = vdpOut.VertexList;
                    //vdp.Invalidate();
                    //vdp.Update();

                    break;
                }
            }


            //找到两个顶边,如果多个就扔掉了。

            //GetNonParaSide(vdp.VertexList, i32, orign, vector);
            return(true);
            //Int32Array side1=
        }