//Current
 public FoundationCatalogResource(int APIversion,
     uint version,
     FoundationType foundation,
     MaterialList materials,
     Common common,
     uint wallCatalogIndex,
     uint floorCatalogIndex,
     uint vpxyIndex,
     uint index3,
     uint index4,
     uint unknown5,
     uint unknown6,
     ShapeType shape,
     TGIBlockList ltgib)
     : this(APIversion,
     version,
     foundation,
     common,
     wallCatalogIndex,
     floorCatalogIndex,
     index3,
     index4,
     unknown5,
     unknown6,
     shape,
     ltgib)
 {
     if (checking) if (version < 0x00000004)
             throw new InvalidOperationException(String.Format("Version {0} invalid with these arguments", version));
     this.materials = new MaterialList(OnResourceChanged, materials);
     this.vpxyIndex = vpxyIndex;
 }
Beispiel #2
0
        protected override Stream UnParse()
        {
            Stream       s = base.UnParse();
            BinaryWriter w = new BinaryWriter(s);

            if (version >= 0x00000003)
            {
                if (materialList == null)
                {
                    materialList = new MaterialList(OnResourceChanged);
                }
                materialList.UnParse(s);
            }
            if (common == null)
            {
                common = new Common(requestedApiVersion, OnResourceChanged);
            }
            common.UnParse(s);

            w.Write(railing4xModelVPXYIndex);
            w.Write(railing1xModelVPXYIndex);
            w.Write(postModelVPXYIndex);

            base.UnParse(s);

            w.Flush();

            return(s);
        }
Beispiel #3
0
        public void GetData(PmxModelData data)
        {
            var header = new PmxHeaderData()
            {
                Version = 2.0F
            };

            var boneSlot = new PmxSlotData()
            {
                SlotName = "弾ボーン",
                Type     = PmxSlotData.SLOT_TYPE_BONE,
                Indices  = Enumerable.Range(0, BoneList.Count).ToArray()
            };

            var morphSlot = new PmxSlotData()
            {
                SlotName = "弾モーフ",
                Type     = PmxSlotData.SLOT_TYPE_MORPH,
                Indices  = Enumerable.Range(0, MorphList.Count).ToArray()
            };

            data.Header        = header;
            data.VertexIndices = IndexList.ToArray();
            data.TextureFiles  = TextureList.ToArray();
            data.VertexArray   = VertexList.ToArray();
            data.MaterialArray = MaterialList.ToArray();
            data.BoneArray     = BoneList.ToArray();
            data.MorphArray    = MorphList.ToArray();
            data.SlotArray     = new PmxSlotData[] { boneSlot, morphSlot };
        }
        public void SetupMaterials(ShotProperty prop, PmxMaterialData[] materials, string[] textures)
        {
            foreach (var texture in textures)
            {
                if (!TextureList.Contains(texture))
                {
                    TextureList.Add(texture);
                }
            }

            foreach (PmxMaterialData material in materials)
            {
                material.MaterialName = "MA_" + MaterialList.Count.ToString();

                if (0 <= material.TextureId && material.TextureId < textures.Length)
                {
                    material.TextureId = TextureList.IndexOf(textures[material.TextureId]);
                }
                else
                {
                    material.TextureId = -1;
                }

                if (0 <= material.SphereId && material.SphereId < textures.Length)
                {
                    material.SphereId = TextureList.IndexOf(textures[material.SphereId]);
                }
                else
                {
                    material.SphereId = -1;
                }
                MaterialList.Add(material);
            }
        }
        public IHttpActionResult PutMaterialList(int id, MaterialList materialList)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != materialList.Id)
            {
                return(BadRequest());
            }

            db.Entry(materialList).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MaterialListExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Beispiel #6
0
    private void addMaterial(uint chara_id)
    {
        uint id = (uint)MaterialList.Count;
        MasterDataParamChara materialMaster = MasterDataUtil.GetCharaParamFromID(chara_id);

        if (materialMaster == null)
        {
            return;
        }
        MaterialValue += materialMaster.name + "\n";

        var iconModel = new ListItemModel((uint)id);

        MaterialDataContext _newData = new MaterialDataContext(iconModel);

        _newData.m_Id       = (int)id;
        _newData.m_CharaId  = chara_id;
        _newData.IsViewIcon = true;
        UnitIconImageProvider.Instance.Get(
            chara_id,
            sprite =>
        {
            _newData.IconImage = sprite;
        });
        _newData.IconColor = new Color(1, 1, 1);

        _newData.Width  = m_IconSize;
        _newData.Height = m_IconSize;
        _newData.calcScale();

        _newData.SelectImage = ResourceManager.Instance.Load("icon_square1");

        MaterialList.Add(_newData);
    }
		public virtual void DecorateMaterialListAfterLoad(MaterialList materials)
		{
			materials.ForEach(i =>
			{
				i.ShowFileUrl = i.ExtraDataDictionary.GetValue("showUrl", i.ShowFileUrl);
			});
		}
		public void MaterialCloneAndPersistTest()
		{
			Material source = PrepareSourceMaterial();
			Material dest = source.Clone();

			MaterialList list = new MaterialList();

			list.Add(dest);

			DbConnectionMappingContext.DoMappingAction(
				MaterialAdapter.Instance.GetConnectionName(), "SubjectDB",
				() =>
				{
					TransactionScopeFactory.DoAction(() =>
					{
						MaterialAdapter.Instance.InsertWithContent(list);

						MaterialList loadedList = MaterialAdapter.Instance.LoadMaterialByMaterialID(dest.ID);

						Assert.IsTrue(loadedList.Count > 0);

						loadedList[0].EnsureMaterialContent();
						ValidateMaterial(source, loadedList[0]);
					});
				});
		}
        public void Save()
        {
            if (NewMaterial == null || materialName == "")
            {
                return;
            }
            if (materialName == selectedImage)             //ncrunch: no coverage start
            {
                if (GetDialogResultToRenameMaterial())
                {
                    MaterialName += "Material";
                }
                else
                {
                    return;
                }
            }
            if (MaterialList.Contains(MaterialName))
            {
                if (!GetDialogResultToSaveMaterial())
                {
                    return;
                }
            }
            var             metaDataCreator = new ContentMetaDataCreator();
            ContentMetaData contentMetaData = metaDataCreator.CreateMetaDataFromMaterial(materialName,
                                                                                         NewMaterial);

            service.UploadContent(contentMetaData);
        }
        protected override Stream UnParse()
        {
            Stream       s = base.UnParse();
            BinaryWriter w = new BinaryWriter(s);

            if (version >= 0x00000003)
            {
                if (materialList == null)
                {
                    materialList = new MaterialList(OnResourceChanged);
                }
                materialList.UnParse(s);
            }

            if (common == null)
            {
                common = new Common(requestedApiVersion, OnResourceChanged);
            }
            common.UnParse(s);

            w.Write(steps4xModelVPXYIndex);
            w.Write(steps1xModelVPXYIndex);
            w.Write(wallCapModelVPXYIndex);
            w.Write(catalogRailing);
            w.Write(catalogWall);
            w.Write(catalogWallFloorPattern);
            w.Write(catalogFence);

            base.UnParse(s);

            w.Flush();

            return(s);
        }
        protected override void Parse(Stream s)
        {
            BinaryReader r = new BinaryReader(s);

            base.Parse(s);

            this.materialList            = (this.version >= 0x00000003) ? new MaterialList(OnResourceChanged, s) : null;
            this.common                  = new Common(requestedApiVersion, OnResourceChanged, s);
            this.steps4xModelVPXYIndex   = r.ReadUInt32();
            this.steps1xModelVPXYIndex   = r.ReadUInt32();
            this.wallCapModelVPXYIndex   = r.ReadUInt32();
            this.catalogRailing          = r.ReadUInt32();
            this.catalogWall             = r.ReadUInt32();
            this.catalogWallFloorPattern = r.ReadUInt32();
            this.catalogFence            = r.ReadUInt32();

            list = new TGIBlockList(OnResourceChanged, s, tgiPosn, tgiSize);

            if (checking)
            {
                if (this.GetType().Equals(typeof(RoofStyleCatalogResource)) && s.Position != s.Length)
                {
                    throw new InvalidDataException(String.Format("Data stream length 0x{0:X8} is {1:X8} bytes longer than expected at {2:X8}",
                                                                 s.Length, s.Length - s.Position, s.Position));
                }
            }
        }
Beispiel #12
0
            public PMDFormat(BinaryReader bin, GameObject caller, string path)
            {
                EntryPathes(path);

                this.caller = caller;

                try {
                    this.head              = new Header(bin);
                    this.vertex_list       = new VertexList(bin);
                    this.face_vertex_list  = new FaceVertexList(bin);
                    this.material_list     = new MaterialList(bin);
                    this.bone_list         = new BoneList(bin);
                    this.ik_list           = new IKList(bin); read_count++;
                    this.skin_list         = new SkinList(bin); read_count++;
                    this.skin_name_list    = new SkinNameList(bin);
                    this.bone_name_list    = new BoneNameList(bin);
                    this.bone_display_list = new BoneDisplayList(bin);
                    this.eg_head           = new EnglishHeader(bin);
                    if (this.eg_head.english_name_compatibility != 0)
                    {
                        this.eg_bone_name_list    = new EnglishBoneNameList(bin, bone_list.bone_count);
                        this.eg_skin_name_list    = new EnglishSkinNameList(bin, skin_list.skin_count);
                        this.eg_bone_display_list = new EnglishBoneDisplayList(bin, bone_name_list.bone_disp_name_count);
                    }
                    this.toon_texture_list    = new ToonTextureList(bin);
                    this.rigidbody_list       = new RigidbodyList(bin);
                    this.rigidbody_joint_list = new RigidbodyJointList(bin);
                } catch {
                    Debug.Log("Don't read full format");
                }
            }
Beispiel #13
0
        public void MaterialCloneAndPersistTest()
        {
            Material source = PrepareSourceMaterial();
            Material dest   = source.Clone();

            MaterialList list = new MaterialList();

            list.Add(dest);

            DbConnectionMappingContext.DoMappingAction(
                MaterialAdapter.Instance.GetConnectionName(), "SubjectDB",
                () =>
            {
                TransactionScopeFactory.DoAction(() =>
                {
                    MaterialAdapter.Instance.InsertWithContent(list);

                    MaterialList loadedList = MaterialAdapter.Instance.LoadMaterialByMaterialID(dest.ID);

                    Assert.IsTrue(loadedList.Count > 0);

                    loadedList[0].EnsureMaterialContent();
                    ValidateMaterial(source, loadedList[0]);
                });
            });
        }
Beispiel #14
0
        public override AssetList ImportMany(string path)
        {
            MaterialList materials = new MaterialList();
            MAT          mat       = MAT.Load(path);

            foreach (MATMaterial material in mat.Materials)
            {
                if (material.Texture == Path.GetFileNameWithoutExtension(material.Texture))
                {
                    //materials.Entries.Add(
                    //    new Material
                    //    {
                    //        Name = material.Name,
                    //        Texture = SceneManager.Current.Content.Load<Texture, TIFImporter>(material.Texture, Path.GetDirectoryName(path))
                    //    }
                    //);

                    //materials.Entries[materials.Entries.Count - 1].SupportingDocuments["Source"] = material;
                }
                else
                {
                    materials.Entries.Add(
                        new Material
                    {
                        Name    = material.Name,
                        Texture = SceneManager.Current.Content.Load <Texture, PIXImporter>(material.Texture, Path.GetDirectoryName(path), true)
                    }
                        );
                }
            }

            return(materials);
        }
        public void UpdateMaterials()
        {
            try
            {
                lock (MaterialList)
                {
                    MaterialList.Clear();
                    List <CastSpellAction> castSpellList =
                        CastSpellAction.GetCastSpellActionList(CurrentProfile.Branch);
                    if (castSpellList != null)
                    {
                        foreach (CastSpellAction ca in castSpellList)
                        {
                            if (ca.IsRecipe)
                            {
                                foreach (var ingred in ca.Recipe.Ingredients)
                                {
                                    MaterialList[ingred.ID] = MaterialList.ContainsKey(ingred.ID) ?
                                                              MaterialList[ingred.ID] + (ca.CalculatedRepeat > 0 ?
                                                                                         (int)ingred.Required * (ca.CalculatedRepeat - ca.Casted) : 0) :

                                                              (ca.CalculatedRepeat > 0 ? (int)ingred.Required * (ca.CalculatedRepeat - ca.Casted) : 0);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            { Err(ex.ToString()); }
        }
Beispiel #16
0
        public override void Export(AssetList asset, string path)
        {
            MaterialList materials = (asset as MaterialList);
            MAT          mat       = new MAT();

            foreach (Material material in materials.Entries)
            {
                if (material == null)
                {
                    continue;
                }
                if (material.Texture == null)
                {
                    continue;
                }

                mat.Materials.Add(
                    new MATMaterial(
                        material.Name,
                        material.Texture.Name
                        )
                    );
            }

            mat.Save(path);
        }
        public override AssetList ImportMany(string path)
        {
            MaterialList materials = new MaterialList();
            MAT mat = MAT.Load(path);

            foreach (var material in mat.Materials)
            {
                if (material.Texture == Path.GetFileNameWithoutExtension(material.Texture))
                {
                    materials.Entries.Add(
                        new Material
                        {
                            Name = material.Name,
                            Texture = SceneManager.Current.Content.Load<Texture, TIFImporter>(material.Texture, Path.GetDirectoryName(path))
                        }
                    );

                    materials.Entries[materials.Entries.Count - 1].SupportingDocuments["Source"] = material;
                }
                else
                {
                    materials.Entries.Add(
                        new Material
                        {
                            Name = material.Name,
                            Texture = SceneManager.Current.Content.Load<Texture, PIXImporter>(material.Texture, Path.GetDirectoryName(path))
                        }
                    );
                }
            }

            return materials;
        }
        private void btnCikar2_Click(object sender, EventArgs e)
        {
            Tender currentTender = UICurrentManager.Instance.CurrentTender;

            int[] selectedRows = gridView2.GetSelectedRows();
            List <MaterialListModel> models = (List <MaterialListModel>)gridView2.DataSource;

            MaterialListModel[] selectedRowsItems = models.ToArray();

            foreach (int item in selectedRows)
            {
                MaterialListModel pozModel     = selectedRowsItems[item];
                MaterialList      selectedItem = currentTender.MaterialList.Where(p => p.PozOBFId == pozModel.PozOBFId).FirstOrDefault();
                currentTender.MaterialList.Remove(selectedItem);
                if (selectedItem.Id > 0)
                {
                    selectedItem.IsMarkedForDeletion = true;
                    MaterialListProvider.Instance.Save(selectedItem);
                }
            }

            List <MaterialList> items = currentTender.MaterialList.Where(p => p.IsPoz && p.TenderGroupId == this.SelectedGroupId && !p.IsMarkedForDeletion).ToList();

            List <MaterialListModel> dataSource = IhalematikModelBase.GetModels <MaterialListModel, MaterialList>(items).ToList();

            grdAddedPoz.DataSource = null;
            grdAddedPoz.DataSource = dataSource;
            this.LoadMaterialListGrid();
        }
Beispiel #19
0
        public override void Export(AssetList asset, string path)
        {
            MaterialList  materials = asset as MaterialList;
            List <string> textures  = new List <string>();
            PIX           pix       = new PIX();

            foreach (Material material in materials)
            {
                foreach (Texture texture in material.Textures)
                {
                    if (texture.FileName == null)
                    {
                        continue;
                    }

                    if (!textures.Contains(texture.FileName))
                    {
                        PIXIE pixie = PIXIE.FromBitmap(PIXIE.PixelmapFormat.C1_8bit, texture.GetBitmap(false));
                        pixie.Name = texture.Name;

                        pix.Pixies.Add(pixie);

                        textures.Add(texture.FileName);
                    }
                }
            }

            pix.Save(path);
        }
Beispiel #20
0
 // Current version
 public FenceCatalogResource(
     uint version,
     MaterialList materialList, //Version>=0x07
     Common common, uint modelVPXYIndex, uint diagonalVPXYIndex, uint postVPXYIndex, uint tileSpacing,
     bool canWalkOver,
     bool shouldNotGetThickSnow, bool snowPostShapeIsCircle,                                     //Version>=0x0A
     float snowThicknessPostScaleFactor, float snowThicknessRailScaleFactor,                     //Version>=0x0A
     float snowThicknessPostVerticalOffset, float snowThicknessRailVerticalOffset, bool hasWall, //Version>=0x0A
     bool risesAboveWall, uint wallIndex,                                                        //Version>=0x08
     TGIBlockList ltgib)
     : base(version, common, ltgib)
 {
     this.materialList                    = materialList != null ? new MaterialList(OnResourceChanged, materialList) : null;
     this.common                          = new Common(OnResourceChanged, common);
     this.modelVPXYIndex                  = modelVPXYIndex;
     this.diagonalVPXYIndex               = diagonalVPXYIndex;
     this.postVPXYIndex                   = postVPXYIndex;
     this.tileSpacing                     = tileSpacing;
     this.canWalkOver                     = canWalkOver;
     this.shouldNotGetThickSnow           = shouldNotGetThickSnow;
     this.snowPostShapeIsCircle           = snowPostShapeIsCircle;
     this.snowThicknessPostScaleFactor    = snowThicknessPostScaleFactor;
     this.snowThicknessRailScaleFactor    = snowThicknessRailScaleFactor;
     this.snowThicknessPostVerticalOffset = snowThicknessPostVerticalOffset;
     this.snowThicknessRailVerticalOffset = snowThicknessRailVerticalOffset;
     this.hasWall                         = hasWall;
     this.risesAboveWall                  = risesAboveWall;
     this.wallIndex                       = wallIndex;
 }
Beispiel #21
0
        public ActionResult GetMaterialList()
        {
            MaterialListPost postobj = new MaterialListPost();

            postobj.count  = 20;
            postobj.type   = "image";
            postobj.offset = 0;
            string token       = AccessTokenService.GetAccessToken();
            string postJsonStr = JsonConvert.SerializeObject(postobj);
            string result      = WechatMaterialServices.GetMaterialList(token, postJsonStr);

            WechatResult wechatResult = JsonConvert.DeserializeObject <WechatResult>(result);

            if (wechatResult.errcode != 0)
            {
                ViewBag.msg     = "获取素材列表失败!返回错误代码如下:";
                ViewBag.content = result;
            }
            else
            {
                MaterialList materialList = JsonConvert.DeserializeObject <MaterialList>(result);
                ViewData["materialList"] = materialList.item;

                ViewBag.msg = "success";
            }


            return(View());
        }
Beispiel #22
0
        private void GenerateButton_Click(object sender, RoutedEventArgs e)
        {
            (GenProperties gp, string r) = ValidateInput();
            OutputBox.Text = r;
            System.Windows.Forms.Application.DoEvents();
            if (gp == null)
            {
                return;              // Error during validation
            }
            System.Windows.Forms.Application.DoEvents();
            MF.Reseed();
            Heightmap        heightmap  = new Heightmap(gp.hm_width, gp.hm_height);
            MaterialList     matlist    = new MaterialList(gp.mat_list);
            List <CFFKernel> CFFkernels = CFFKernel.InitKernals(gp);

            List <MesaAgent1> masI = new List <MesaAgent1>();

            for (int i = 0; i < gp.m_origins; i++)
            {
                MesaAgent1 magent = new MesaAgent1(gp);
                magent.Run(heightmap, CFFkernels);
                masI.Add(magent);
            }

            MesaAgent2 masII = new MesaAgent2(heightmap, gp);

            masII.Run();

            OutputBox.Text = "Finished generating! Rendering now...";
            System.Windows.Forms.Application.DoEvents();
            RenderHeightmap(heightmap, gp.hm_cellsize);
            OutputBox.Text = "Rendered!";
            System.Windows.Forms.Application.DoEvents();
        }
 //Current
 public FoundationCatalogResource(uint version,
                                  FoundationType foundation,
                                  MaterialList materials,
                                  Common common,
                                  uint wallCatalogIndex,
                                  uint floorCatalogIndex,
                                  uint vpxyIndex,
                                  uint index3,
                                  uint index4,
                                  uint unknown5,
                                  uint unknown6,
                                  ShapeType shape,
                                  TGIBlockList ltgib)
     : this(version,
            foundation,
            common,
            wallCatalogIndex,
            floorCatalogIndex,
            index3,
            index4,
            unknown5,
            unknown6,
            shape,
            ltgib)
 {
     if (version < 0x00000004)
     {
         throw new InvalidOperationException(String.Format("Version {0} invalid with these arguments", version));
     }
     this.materials = new MaterialList(OnResourceChanged, materials);
     this.vpxyIndex = vpxyIndex;
 }
        void prepareMaterial()
        {
            string sqlstr = "select '' as mat_id, '' as mat_name union(select mat_id, mat_name from material) order by mat_id";

            MaterialList.DataSource = mydb.GetDataTable(sqlstr);
            MaterialList.DataBind();
        }
Beispiel #25
0
        protected override void ReadPolygons(BinaryReader reader, CDC.Objects.ExportOptions options)
        {
            if (_polygonStart == 0 || _polygonCount == 0)
            {
                return;
            }

            reader.BaseStream.Position = _polygonStart;

            for (UInt16 p = 0; p < _polygonCount; p++)
            {
                ReadPolygon(reader, p, options);
            }

            HandleDebugRendering(options);

            MaterialList xMaterialsList = null;

            for (UInt16 p = 0; p < _polygonCount; p++)
            {
                if (xMaterialsList == null)
                {
                    xMaterialsList = new MaterialList(_polygons[p].material);
                    _materialsList.Add(_polygons[p].material);
                }
                else
                {
                    Material newMaterial = xMaterialsList.AddToList(_polygons[p].material);
                    if (_polygons[p].material != newMaterial)
                    {
                        _polygons[p].material = newMaterial;
                    }
                    else
                    {
                        _materialsList.Add(_polygons[p].material);
                    }
                }
            }

            _materialCount = (UInt32)_materialsList.Count;

            for (UInt32 t = 0; t < _groupCount; t++)
            {
                _trees[t]                   = new Tree();
                _trees[t].mesh              = new Mesh();
                _trees[t].mesh.indexCount   = _indexCount;
                _trees[t].mesh.polygonCount = _polygonCount;
                _trees[t].mesh.polygons     = _polygons;
                _trees[t].mesh.vertices     = _geometry.Vertices;

                _trees[t].mesh.vertices = new Vertex[_indexCount];
                for (UInt16 poly = 0; poly < _polygonCount; poly++)
                {
                    _trees[t].mesh.vertices[(3 * poly) + 0] = _polygons[poly].v1;
                    _trees[t].mesh.vertices[(3 * poly) + 1] = _polygons[poly].v2;
                    _trees[t].mesh.vertices[(3 * poly) + 2] = _polygons[poly].v3;
                }
            }
        }
        public static void EnsureSeedData(this A1ServicesAppDbContext ctx)
        {
            var jobMaterialLinks = ProcessServiceMaterialsLinkFile("D:\\Projects\\A1ServicesApp\\A1ServicesApp\\Features\\JobServiceMaterialLinks\\ServiceMaterialsLinks.csv");
            var servicesList     = ProcessServicesFile("D:\\Projects\\A1ServicesApp\\A1ServicesApp\\Features\\JobServiceMaterialLinks\\ServicesBook.csv");
            var materialsList    = ProcessMaterialsFile("D:\\Projects\\A1ServicesApp\\A1ServicesApp\\Features\\JobServiceMaterialLinks\\MaterialsBook.csv");

            var jobServiceMaterialLinks = new List <JobServiceMaterialLink>();

            if (ctx.JobServiceMaterialLinks.Any())
            {
                return;
            }

            ctx.JobMaterials.AddRange(materialsList);
            ctx.JobServices.AddRange(servicesList);
            ctx.SaveChanges();

            var jobMaterialLinksGroups = jobMaterialLinks.GroupBy(j => j.ServiceId).ToList();



            foreach (var link in jobMaterialLinksGroups)
            {
                var service = ctx.JobServices.Where(s => s.ServiceId == link.Key).FirstOrDefault();

                var newJobServiceMaterialLink = new JobServiceMaterialLink()
                {
                    ServiceId     = service.ServiceId,
                    ServiceCode   = service.Code,
                    Active        = 1,
                    MaterialLists = new List <MaterialList>()
                };

                foreach (var matList in link)
                {
                    var newMaterialList = new MaterialList()
                    {
                        Type = "All",
                        Name = matList.MaterialCode + " - " + link.Key + " - " + "Links"
                    };

                    var material         = ctx.JobMaterials.Where(j => j.MaterialId == matList.MaterialId).FirstOrDefault();
                    var materialListItem = new MaterialListItem()
                    {
                        JobMaterialId = material.Id,
                        JobMaterial   = material,
                        MaterialId    = material.MaterialId
                    };
                    newMaterialList.MaterialListItems.Add(materialListItem);

                    newJobServiceMaterialLink.MaterialLists.Add(newMaterialList);
                }

                jobServiceMaterialLinks.Add(newJobServiceMaterialLink);
            }

            ctx.JobServiceMaterialLinks.AddRange(jobServiceMaterialLinks);
            ctx.SaveChanges();
        }
        public void LoadOriginalData(ArchiveBasicInfo info)
        {
            MaterialList materials = MaterialAdapter.Instance.LoadMaterialsByResourceID(info.ResourceID);

            info.Context["Materials"] = materials;

            materials.ForEach(m => m.EnsureMaterialContent());
        }
Beispiel #28
0
        public CustomStyleBundle()
        {
            materials    = new MaterialList[2];
            materials[0] = new MaterialList();
            materials[1] = new MaterialList();

            //SetDefaultAssets();
        }
        protected void MaterialList_ItemCanceling(object sender, ListViewCancelEventArgs e)//отменить редактирование
        {
            MaterialList.EditIndex = -1;

            MaterialList.DataSource = MatServ.ReadAll()
                                      .Select(c => new { c.Id, c.Name, c.Date, c.UnitId, c.Num })
                                      .ToList();
            MaterialList.DataBind();
        }
 public void RefreshOnContentChange()
 {
     ImageList.Clear();
     MaterialList.Clear();
     LoadImageList();
     LoadMaterials();
     RaisePropertyChanged("ImageList");
     RaisePropertyChanged("MaterialList");
 }
Beispiel #31
0
        public void IdentifyMaterial(int input)
        {
            var OrderedMaterialList = MaterialList.OrderBy(x => (Math.Abs(x.Item2 - ((double)scale / input))));

            SelectedMaterial = OrderedMaterialList.First();
            OnPropertyChanged(nameof(SelectedMaterial));
            MaterialList = OrderedMaterialList.ToList();
            OnPropertyChanged(nameof(MaterialList));
        }
Beispiel #32
0
 public RailingCatalogResource(int APIversion, Stream unused, RailingCatalogResource basis)
     : base(APIversion, basis.version, basis.common, basis.list)
 {
     this.materialList = (basis.version >= 0x00000003) ? new MaterialList(OnResourceChanged, basis.materialList) : null;
     this.common = new Common(requestedApiVersion, OnResourceChanged, basis.common);
     this.railing4xModelVPXYIndex = basis.railing4xModelVPXYIndex;
     this.railing1xModelVPXYIndex = basis.railing1xModelVPXYIndex;
     this.postModelVPXYIndex = basis.postModelVPXYIndex;
 }
Beispiel #33
0
 public RailingCatalogResource(int APIversion, Stream unused, RailingCatalogResource basis)
     : base(APIversion, basis.version, basis.common, basis.list)
 {
     this.materialList            = (basis.version >= 0x00000003) ? new MaterialList(OnResourceChanged, basis.materialList) : null;
     this.common                  = new Common(requestedApiVersion, OnResourceChanged, basis.common);
     this.railing4xModelVPXYIndex = basis.railing4xModelVPXYIndex;
     this.railing1xModelVPXYIndex = basis.railing1xModelVPXYIndex;
     this.postModelVPXYIndex      = basis.postModelVPXYIndex;
 }
Beispiel #34
0
        /// <summary>
        /// Binds the data.
        /// </summary>
        public override void BindData()
        {
            base.BindData();

            var workflowTemplateId = Guid.Empty;

            if (!IsEditMode)
            {
                workflowTemplateId = CurrentWorkflowTemplate;
            }
            else if (EditObjectId.HasValue)
            {
                workflowTemplateId = EditObjectId.Value;
            }

            if (MaterialList.Count == 0)
            {
                Session["Materials"] = DataManager.Material.SelectByWorkflowTemplateId(workflowTemplateId).
                                       Select(
                    a =>
                    new MaterialMap
                {
                    ID                 = a.ID,
                    SiteID             = a.SiteID,
                    Name               = a.Name,
                    Type               = a.Type,
                    Description        = a.Description,
                    OldValue           = a.Value,
                    Value              = ((MaterialType)a.Type == MaterialType.Form && !IsEditMode) ? null : a.Value,
                    WorkflowTemplateID = a.WorkflowTemplateID
                }).ToList();
            }


            var workflowTemplateElements = DataManager.WorkflowTemplateElement.SelectAll(workflowTemplateId).Where(a => a.ElementType == (int)WorkflowTemplateElementType.Message).ToList();

            if (SiteActionTemplateList.Count == 0)
            {
                foreach (var workflowTemplateElement in workflowTemplateElements)
                {
                    var workflowTemplateElementParameter = DataManager.WorkflowTemplateElementParameter.SelectByElementId(workflowTemplateElement.ID).FirstOrDefault(a => a.Name == "SiteActionTemplateID");
                    var siteActionTemplate = DataManager.SiteActionTemplate.SelectById(workflowTemplateElementParameter.Value.ToGuid());
                    SiteActionTemplateList.Add(siteActionTemplate);

                    MaterialList.Add(new MaterialMap
                    {
                        ID       = siteActionTemplate.ID,
                        SiteID   = CurrentUser.Instance.SiteID,
                        Name     = workflowTemplateElement.Name,
                        OldValue = siteActionTemplate.ID.ToString(),
                        Value    = siteActionTemplate.ID.ToString(),
                        Type     = (int)MaterialType.ActionTemplate
                    });
                }
            }
        }
        public void DDLUnitID()
        {
            var UnitIdDdl = MaterialList.FindControlRecursive <DropDownList>("UnitIdDdl");

            if (UnitIdDdl != null) //наполняем элемент только если он найден
            {
                UnitIdDdl.DataSource = Enum.GetValues(typeof(UnitEnum));
                UnitIdDdl.DataBind();
            }
        }
Beispiel #36
0
 public RailingCatalogResource(int APIversion, uint version,
     MaterialList materialList,
     Common common, uint railing4xModelIndex, uint railing1xModelIndex, uint postModelIndex,
     TGIBlockList ltgib)
     : base(APIversion, version, common, ltgib)
 {
     this.materialList = materialList != null ? new MaterialList(OnResourceChanged, materialList) : null;
     this.common = new Common(requestedApiVersion, OnResourceChanged, common);
     this.railing4xModelVPXYIndex = railing4xModelIndex;
     this.railing1xModelVPXYIndex = railing1xModelIndex;
     this.postModelVPXYIndex = postModelIndex;
 }
Beispiel #37
0
 public StairsCatalogResource(int APIversion, Stream unused, StairsCatalogResource basis)
     : base(APIversion, basis.version, basis.common, basis.list)
 {
     this.materialList = (basis.version >= 0x00000003) ? new MaterialList(OnResourceChanged, basis.materialList) : null;
     this.common = new Common(requestedApiVersion, OnResourceChanged, basis.common);
     this.steps4xModelVPXYIndex = basis.steps4xModelVPXYIndex;
     this.steps1xModelVPXYIndex = basis.steps1xModelVPXYIndex;
     this.wallCapModelVPXYIndex = basis.wallCapModelVPXYIndex;
     this.catalogRailing = basis.catalogRailing;
     this.catalogWall = basis.catalogWall;
     this.catalogWallFloorPattern = basis.catalogWallFloorPattern;
     this.catalogFence = basis.catalogFence;
 }
Beispiel #38
0
        protected override void Parse(Stream s)
        {
            BinaryReader r = new BinaryReader(s);
            base.Parse(s);
            this.materialList = (this.version >= 0x00000003) ? new MaterialList(OnResourceChanged, s) : null;
            this.common = new Common(requestedApiVersion, OnResourceChanged, s);
            this.railing4xModelVPXYIndex = r.ReadUInt32();
            this.railing1xModelVPXYIndex = r.ReadUInt32();
            this.postModelVPXYIndex = r.ReadUInt32();

            list = new TGIBlockList(OnResourceChanged, s, tgiPosn, tgiSize);

            if (checking) if (this.GetType().Equals(typeof(RailingCatalogResource)) && s.Position != s.Length)
                    throw new InvalidDataException(String.Format("Data stream length 0x{0:X8} is {1:X8} bytes longer than expected at {2:X8}",
                        s.Length, s.Length - s.Position, s.Position));
        }
 public FoundationCatalogResource(int APIversion, Stream unused, FoundationCatalogResource basis)
     : this(APIversion,
     basis.version,
     basis.foundation,
     basis.common,
     basis.wallCatalogIndex,
     basis.floorCatalogIndex,
     basis.index3,
     basis.index4,
     basis.unknown5,
     basis.unknown6,
     basis.shape,
     basis.list)
 {
     materials = new MaterialList(OnResourceChanged, basis.materials);
     vpxyIndex = basis.vpxyIndex;
 }
Beispiel #40
0
 public StairsCatalogResource(int APIversion, uint version,
     MaterialList materialList,
     Common common,
     uint steps4xModelVPXYIndex, uint steps1xModelVPXYIndex, uint wallCapModelVPXYIndex,
     uint catalogRailing, uint catalogWall, uint catalogWallFloorPattern, uint catalogFence,
     TGIBlockList ltgib)
     : base(APIversion, version, common, ltgib)
 {
     this.materialList = materialList != null ? new MaterialList(OnResourceChanged, materialList) : null;
     this.common = new Common(requestedApiVersion, OnResourceChanged, common);
     this.steps4xModelVPXYIndex = steps4xModelVPXYIndex;
     this.steps1xModelVPXYIndex = steps1xModelVPXYIndex;
     this.wallCapModelVPXYIndex = wallCapModelVPXYIndex;
     this.catalogRailing = catalogRailing;
     this.catalogWall = catalogWall;
     this.catalogWallFloorPattern = catalogWallFloorPattern;
     this.catalogFence = catalogFence;
 }
        /// <summary>
        /// 获得指定附件的副本
        /// </summary>
        /// <param name="materials">附件集合</param>
        /// <returns>指定附件对应的副本集合</returns>
        internal MaterialList LoadCopyVersionMaterial(MaterialList materials)
        {
            ExceptionHelper.TrueThrow<ArgumentNullException>(materials == null, "materials");

            MaterialList copyVersionMaterials = new MaterialList();

            if (materials.Count != 0)
            {
                ConnectiveSqlClauseCollection orClause = new ConnectiveSqlClauseCollection(LogicOperatorDefine.Or);

                foreach (Material material in materials)
                {
                    WhereSqlClauseBuilder whereSqlClause = new WhereSqlClauseBuilder();

                    whereSqlClause.AppendItem("PARENT_ID", material.ID);
                    whereSqlClause.AppendItem("WF_ACTIVITY_ID", material.WfActivityID);
                    whereSqlClause.AppendItem("VERSION_TYPE", (int)MaterialVersionType.CopyVersion);

                    orClause.Add(whereSqlClause);
                }

                string sql = string.Format("SELECT * FROM WF.MATERIAL WHERE {0}",
                    orClause.AppendTenantCodeSqlClause(typeof(Material)).ToSqlString(TSqlBuilder.Instance));

                using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName()))
                {
                    using (IDataReader dr = DbHelper.RunSqlReturnDR(sql, GetConnectionName()))
                    {
                        while (dr.Read())
                        {
                            Material material = new Material();

                            ORMapping.DataReaderToObject(dr, material);

                            copyVersionMaterials.Add(material);
                        }
                    }
                }

                DecorateMaterials(copyVersionMaterials);
            }

            return copyVersionMaterials;
        }
        protected override Stream UnParse()
        {
            Stream s = base.UnParse();
            BinaryWriter w = new BinaryWriter(s);

            if (version >= 0x00000003)
            {
                if (materialList == null) materialList = new MaterialList(OnResourceChanged);
                materialList.UnParse(s);
            }
            if (common == null) common = new Common(requestedApiVersion, OnResourceChanged);
            common.UnParse(s);

            w.Write(railing4xModelVPXYIndex);
            w.Write(railing1xModelVPXYIndex);
            w.Write(postModelVPXYIndex);

            base.UnParse(s);

            w.Flush();

            return s;
        }
        public static void DoFilesCopy(MaterialList materials, string sourceRootPathName, string destRootPathName)
        {
            string sourceRootPath = AppPathConfigSettings.GetConfig().Paths[sourceRootPathName].Dir;
            string destRootPath = AppPathConfigSettings.GetConfig().Paths[destRootPathName].Dir;

            ExceptionHelper.CheckStringIsNullOrEmpty(sourceRootPath, "sourceRootPath");
            ExceptionHelper.CheckStringIsNullOrEmpty(destRootPath, "destRootPath");

            foreach (Material material in materials)
            {
                FileInfo sourceFile = new FileInfo(sourceRootPath + material.RelativeFilePath);

                if (sourceFile.Exists == false)
                    sourceFile = new FileInfo(sourceRootPath + @"Temp\" + Path.GetFileName(material.RelativeFilePath));

                if (sourceFile.Exists)
                {
                    FileInfo destFile = new FileInfo(Path.Combine(destRootPath, Path.GetFileName(material.RelativeFilePath)));

                    DoFileCopy(sourceFile, destFile);
                }
            }
        }
        public void InsertWithContent(MaterialList materials)
        {
            materials.NullCheck("materials");

            StringBuilder strB = new StringBuilder();

            ORMappingItemCollection mappings = ORMapping.GetMappingInfo(typeof(Material));

            foreach (Material m in materials)
            {
                if (strB.Length > 0)
                    strB.Append(TSqlBuilder.Instance.DBStatementSeperator);

                InsertSqlClauseBuilder builder = ORMapping.GetInsertSqlClauseBuilder(m, mappings, "CreateDateTime");

                builder.AppendItem("CREATE_DATETIME", m.CreateDateTime);

                strB.AppendFormat("INSERT INTO {0}{1}", mappings.TableName, builder.ToSqlString(TSqlBuilder.Instance));
            }

            if (strB.Length > 0)
            {
                using (TransactionScope scope = TransactionScopeFactory.Create())
                {
                    DbHelper.RunSql(strB.ToString(), GetConnectionName());

                    foreach (Material m in materials)
                    {
                        m.Content.RelativeID = m.ResourceID;

                        MaterialFileOeprationInfo fileOp = new MaterialFileOeprationInfo(m, FileOperation.Update);

                        DoFileOperation(MaterialAdapter.DefaultUploadPathName, fileOp, m.Content);
                    }

                    scope.Complete();
                }
            }
        }
        /// <summary>
        /// 保存文件的版本
        /// </summary>
        /// <param name="materials">已经做好的文件版本信息</param>
        /// <param name="rootPathName">根文件夹路径配置名称</param>
        public void SaveOtherVersion(MaterialList materials, string rootPathName)
        {
            StringBuilder strB = new StringBuilder(256);

            foreach (Material material in materials)
            {
                if (strB.Length > 0)
                    strB.Append(TSqlBuilder.Instance.DBStatementSeperator);

                strB.Append(ORMapping.GetInsertSql<Material>(material, TSqlBuilder.Instance));
            }

            if (strB.Length != 0)
            {
                using (TransactionScope scope = TransactionScopeFactory.Create(TransactionScopeOption.Required))
                {
                    DbHelper.RunSql(strB.ToString(), GetConnectionName());
                    DoFilesCopy(materials, rootPathName, rootPathName, false);
                    scope.Complete();
                }
            }
        }
        /// <summary>
        /// 获得指定操作的SQL语句
        /// </summary>
        /// <param name="materials">material集合</param>
        /// <param name="fileOPList">文件操作集合</param>
        /// <param name="sqlDelegate">形成相应操作SQL语句的方法</param>
        /// <returns>形成的SQL语句</returns>
        private string GetMaterialsOperationSql(MaterialList materials, List<MaterialFileOeprationInfo> fileOPList, GetMaterialSqlOPDelegate sqlDelegate)
        {
            StringBuilder strB = new StringBuilder(256);

            for (int i = 0; i < materials.Count; i++)
            {
                if (strB.Length > 0)
                    strB.Append(TSqlBuilder.Instance.DBStatementSeperator);

                strB.Append(sqlDelegate(materials[i], fileOPList));
            }

            return strB.ToString();
        }
        protected override Stream UnParse()
        {
            Stream s = base.UnParse();
            BinaryWriter w = new BinaryWriter(s);
            if (version >= 0x00000004)
            {
                w.Write((uint)foundation);
                if ((uint)foundation >= (uint)FoundationType.StiltedConcrete)
                {
                    if (materials == null) materials = new MaterialList(OnResourceChanged);
                    materials.UnParse(s);
                }
            }
            if (common == null) common = new Common(requestedApiVersion, OnResourceChanged);
            common.UnParse(s);
            if (version < 0x00000004)
                w.Write((uint)foundation);
            w.Write(wallCatalogIndex);
            w.Write(floorCatalogIndex);
            if (version >= 0x00000004)
                w.Write(vpxyIndex);
            w.Write(index3);
            w.Write(index4);
            w.Write(unknown5);
            w.Write(unknown6);
            w.Write((uint)shape);

            base.UnParse(s);

            w.Flush();

            return s;
        }
        protected override void LoadClientState(string clientState)
        {
            MultiMaterialList multiMaterialList = JSONSerializerExecute.Deserialize<MultiMaterialList>(clientState);
            if (multiMaterialList != null && multiMaterialList.DeltaMaterials != null && multiMaterialList.DeltaMaterials.Inserted != null)
            {
                for (int i = 0; i < multiMaterialList.DeltaMaterials.Inserted.Count; i++)
                {
                    multiMaterialList.DeltaMaterials.Inserted[i].Creator = this.User;
                    multiMaterialList.DeltaMaterials.Inserted[i].Department = this.Department;
                }
            }

            multiMaterialList.DeltaMaterials.GenerateTempPhysicalFilePath();
            multiMaterialList.Materials.GenerateTempPhysicalFilePath(this.RootPathName);

            this.materials = multiMaterialList.Materials;
            this.deltaMaterials = multiMaterialList.DeltaMaterials;
        }
        /// <summary>
        /// 获得指定ID的Material
        /// </summary>
        /// <param name="materialID">指定ID</param>
        /// <returns>MaterialList</returns>
        public MaterialList LoadMaterialByMaterialID(string materialID)
        {
            ExceptionHelper.CheckStringIsNullOrEmpty(materialID, "materialID");

            MaterialList materials = new MaterialList();

            WhereSqlClauseBuilder wBuilder = new WhereSqlClauseBuilder();

            wBuilder.AppendItem("ID", materialID);
            wBuilder.AppendTenantCode(typeof(Material));

            string sql = "SELECT * FROM WF.MATERIAL WHERE " + wBuilder.ToSqlString(TSqlBuilder.Instance);

            using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName()))
            {
                using (IDataReader dr = DbHelper.RunSqlReturnDR(sql, GetConnectionName()))
                {
                    while (dr.Read())
                    {
                        Material material = new Material();

                        ORMapping.DataReaderToObject(dr, material);

                        materials.Add(material);
                    }
                }
            }

            DecorateMaterials(materials);

            return materials;
        }
        /// <summary>
        /// 获得materialID对应的附件对象的所有版本和本身形成的树
        /// 对应的存储过程GetMaterialVersions不存在
        /// </summary>
        /// <param name="mainMaterialID">主版本ID</param>
        /// <returns>以主版本为跟节点各版本为子节点的树</returns>
        //[Obsolete("对应的存储过程GetMaterialVersions不存在")]
        public MaterialTreeNode LoadMaterialVersionsByMaterialID(string mainMaterialID)
        {
            ExceptionHelper.CheckStringIsNullOrEmpty(mainMaterialID, "mainMaterialID");

            MaterialList materials = new MaterialList();

            using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName()))
            {
                Database db = DatabaseFactory.Create(dbi);

                using (SqlCommand dbc = new SqlCommand())
                {
                    SqlParameter sqlParameter = new SqlParameter();
                    sqlParameter.Value = mainMaterialID;
                    sqlParameter.SqlDbType = SqlDbType.NVarChar;
                    sqlParameter.Size = 36;
                    sqlParameter.ParameterName = "@mainMaterialID";
                    sqlParameter.SourceColumn = "@mainMaterialID";
                    sqlParameter.Direction = ParameterDirection.InputOutput;

                    dbc.CommandType = CommandType.StoredProcedure;
                    dbc.CommandText = "GetMaterialVersions";
                    dbc.Parameters.Add(sqlParameter);

                    using (IDataReader dr = db.ExecuteReader(dbc))
                    {
                        while (dr.Read())
                        {
                            Material material = new Material();

                            ORMapping.DataReaderToObject(dr, material);

                            materials.Add(material);
                        }
                    }

                    mainMaterialID = sqlParameter.Value.ToString();
                }
            }

            return GenerateMaterialVersionTree(materials, mainMaterialID);
        }
        protected override void LoadViewState(object savedState)
        {
            base.LoadViewState(savedState);

            this.materials = (MaterialList)ViewState["Materials"];
            this.deltaMaterials = (DeltaMaterialList)ViewState["DeltaMaterials"];
        }
        public MaterialList LoadVersionMaterialsBySceneKey(string resourceID, string wfActivityName)
        {
            MaterialList copyVersionMaterials = new MaterialList();

            WhereSqlClauseBuilder whereSqlClause = new WhereSqlClauseBuilder();

            whereSqlClause.AppendItem("RESOURCE_ID", resourceID);
            whereSqlClause.AppendItem("VERSION_TYPE", Convert.ToInt16(MaterialVersionType.CopyVersion).ToString());
            whereSqlClause.AppendItem("WF_ACTIVITY_NAME", wfActivityName);
            whereSqlClause.AppendTenantCode(typeof(Material));

            string sql = string.Format("SELECT * FROM WF.MATERIAL WHERE {0}",
                                    whereSqlClause.ToSqlString(TSqlBuilder.Instance));

            using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName()))
            {
                using (IDataReader dr = DbHelper.RunSqlReturnDR(sql, GetConnectionName()))
                {
                    while (dr.Read())
                    {
                        Material material = new Material();

                        ORMapping.DataReaderToObject(dr, material);

                        copyVersionMaterials.Add(material);
                    }
                }
            }

            DecorateMaterials(copyVersionMaterials);

            return copyVersionMaterials;
        }
			public PMDFormat(BinaryReader bin, GameObject caller, string path)
			{
				EntryPathes(path);
				
				this.caller = caller;
				
				try {
					this.head = new Header(bin);
					this.vertex_list = new VertexList(bin);
					this.face_vertex_list = new FaceVertexList(bin);
					this.material_list = new MaterialList(bin);
					this.bone_list = new BoneList(bin); 
					this.ik_list = new IKList(bin); read_count++;
					this.skin_list = new SkinList(bin); read_count++;
					this.skin_name_list = new SkinNameList(bin);
					this.bone_name_list = new BoneNameList(bin);
					this.bone_display_list = new BoneDisplayList(bin);
					this.eg_head = new EnglishHeader(bin);
					if (this.eg_head.english_name_compatibility != 0)
					{
						this.eg_bone_name_list = new EnglishBoneNameList(bin, bone_list.bone_count);
						this.eg_skin_name_list = new EnglishSkinNameList(bin, skin_list.skin_count);
						this.eg_bone_display_list = new EnglishBoneDisplayList(bin, bone_name_list.bone_disp_name_count);
					}
					this.toon_texture_list = new ToonTextureList(bin);
					this.rigidbody_list = new RigidbodyList(bin);
					this.rigidbody_joint_list = new RigidbodyJointList(bin);
				} catch {
					Debug.Log("Don't read full format");
				}
			}
        /// <summary>
        /// 复制文件
        /// </summary>
        /// <param name="materials">文件集合</param>
        /// <param name="sourceRootPathName">源文件的主路径的配置节点名称</param>
        /// <param name="destRootPathName">目标文件的主路径的配置节点名称</param>	
        /// <param name="copyFromTempFolder">是否从临时文件夹拷贝文件</param>	
        private static void DoFilesCopy(MaterialList materials, string sourceRootPathName, string destRootPathName, bool copyFromTempFolder)
        {
            string sourceRootPath = AppPathConfigSettings.GetConfig().Paths[sourceRootPathName].Dir;
            string destRootPath = AppPathConfigSettings.GetConfig().Paths[destRootPathName].Dir;

            ExceptionHelper.CheckStringIsNullOrEmpty(sourceRootPath, "sourceRootPath");
            ExceptionHelper.CheckStringIsNullOrEmpty(destRootPath, "destRootPath");

            foreach (Material material in materials)
            {
                ExceptionHelper.TrueThrow<ArgumentNullException>(material.SourceMaterial == null, "material.SourceMaterial");

                FileInfo sourceFile;

                if (copyFromTempFolder)
                    sourceFile = new FileInfo(sourceRootPath + @"Temp\" + Path.GetFileName(material.SourceMaterial.RelativeFilePath));
                else
                    sourceFile = new FileInfo(sourceRootPath + material.SourceMaterial.RelativeFilePath);

                if (sourceFile.Exists)
                {
                    FileInfo destFile = new FileInfo(destRootPath + material.RelativeFilePath);

                    DoFileCopy(sourceFile, destFile);
                }
            }
        }
 private static void DecorateMaterials(MaterialList materials)
 {
     MaterialFileOperationSettings.GetConfig().Operations.ForEach(op => op.DecorateMaterialListAfterLoad(materials));
 }
Beispiel #56
0
        public void ParseCommands(IEnumerable<RenderCommand> commandList, MaterialList materialList)
        {
            Clear();

            Vector3 normal = new Vector3(1.0f, 0.0f, 0.0f);
            Vector2 texCoord = new Vector2(0.0f, 0.0f);
            Color4 color = new Color4(1.0f, 1.0f, 1.0f, 1.0f);
            Mesh mesh = null;

            foreach (var cmd in commandList)
            {
                if (cmd.Name == "MATERIAL" && cmd.Params.Count <= 1)
                {
                    if (cmd.Params.Count == 0)
                        mesh = this.GetMeshByMaterialID(string.Empty, true);
                    else if (materialList.ContainsID(cmd.Params[0]))
                    {
                        mesh = this.GetMeshByMaterialID(cmd.Params[0], true);
                    }
                }
                if (cmd.Name == "VERTEX3" && cmd.Params.Count == 3)
                {
                    if (mesh != null)
                        mesh.AddVertex(new MeshVertex() { Position = cmd.Params.ToVector3(), Normal = normal, Color = color, TexCoord = texCoord });
                }
                if (cmd.Name == "NORMAL3" && cmd.Params.Count == 3)
                {
                    normal = cmd.Params.ToVector3();
                }
                if (cmd.Name == "COLOR4" && cmd.Params.Count == 4)
                {
                    color = cmd.Params.ToColor4();
                }
                if (cmd.Name == "TEXCOORD2" && cmd.Params.Count == 2)
                {
                    texCoord = cmd.Params.ToVector2();
                }
                if (cmd.Name == "PLANE" && cmd.Params.Count == 4)
                {
                    if (mesh != null)
                        mesh.AddPlane(cmd.Params[0].ToClearFloat(), cmd.Params[1].ToClearFloat(), cmd.Params[2].ToClearInt(), cmd.Params[3].ToClearInt(), color);
                }
            }
        }
Beispiel #57
0
        protected override Stream UnParse()
        {
            Stream s = base.UnParse();
            BinaryWriter w = new BinaryWriter(s);

            if (version >= 0x00000003)
            {
                if (materialList == null) materialList = new MaterialList(OnResourceChanged);
                materialList.UnParse(s);
            }

            if (common == null) common = new Common(requestedApiVersion, OnResourceChanged);
            common.UnParse(s);

            w.Write(steps4xModelVPXYIndex);
            w.Write(steps1xModelVPXYIndex);
            w.Write(wallCapModelVPXYIndex);
            w.Write(catalogRailing);
            w.Write(catalogWall);
            w.Write(catalogWallFloorPattern);
            w.Write(catalogFence);

            base.UnParse(s);

            w.Flush();

            return s;
        }
        /// <summary>
        ///由MaterialList形成以主版本为跟节点各版本为子节点的树
        /// </summary>
        /// <param name="materials">包含主版本和其他版本的集合</param>
        /// <param name="mainMaterialID">重版本ID</param>
        /// <returns>形成的树</returns>
        private MaterialTreeNode GenerateMaterialVersionTree(MaterialList materials, string mainMaterialID)
        {
            MaterialTreeNode rootNode = null;
            MaterialTreeNodeCollection materialTreeNodeCollection = new MaterialTreeNodeCollection();

            foreach (Material m in materials)
            {
                if (string.Compare(m.ID, mainMaterialID, true) == 0)
                    rootNode = new MaterialTreeNode(m);
                else if (m.ParentID == mainMaterialID)
                {
                    MaterialTreeNode node = GenerateMaterialVersionTree(materials, m.ID);
                    if (node != null)
                        materialTreeNodeCollection.Add(node);
                }
            }

            if (rootNode != null)
            {
                foreach (MaterialTreeNode node in materialTreeNodeCollection)
                {
                    rootNode.Children.Add(node);
                }
            }

            return rootNode;
        }
        /// <summary>
        /// 由资源ID查询
        /// </summary>
        /// <param name="resourceIDs">资源ID</param>
        /// <returns>查询结果</returns>
        public MaterialList LoadMaterialsByResourceID(params string[] resourceIDs)
        {
            ExceptionHelper.TrueThrow<ArgumentNullException>(resourceIDs == null, "resourceIDs");

            MaterialList result = new MaterialList();

            if (resourceIDs.Length != 0)
            {
                InSqlClauseBuilder inBuilder = new InSqlClauseBuilder("RESOURCE_ID");

                inBuilder.AppendItem(resourceIDs);

                OrderBySqlClauseBuilder orderClause = new OrderBySqlClauseBuilder();

                orderClause.AppendItem("SORT_ID", FieldSortDirection.Ascending);

                string sql = string.Format("SELECT * FROM WF.MATERIAL WHERE {0} AND VERSION_TYPE = '{1}' ORDER BY {2}",
                    inBuilder.AppendTenantCodeSqlClause(typeof(Material)).ToSqlString(TSqlBuilder.Instance),
                    Convert.ToInt32(MaterialVersionType.Normal).ToString(),
                    orderClause.ToSqlString(TSqlBuilder.Instance));

                using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName()))
                {
                    using (IDataReader dr = DbHelper.RunSqlReturnDR(sql, GetConnectionName()))
                    {
                        while (dr.Read())
                        {
                            Material material = new Material();

                            ORMapping.DataReaderToObject(dr, material);

                            result.Add(material);
                        }
                    }
                }

                DecorateMaterials(result);
            }

            return result;
        }
        /// <summary>
        /// 获得指定ID的副本 和 它之前的一切副本 按照时间正排序 
        /// </summary>
        /// <param name="id">id</param>
        /// <returns>MaterialList</returns>
        public MaterialList GetPreMaterialsCopyVersion(string id)
        {
            ExceptionHelper.CheckStringIsNullOrEmpty(id, "id");

            WhereSqlClauseBuilder whereSqlClause = new WhereSqlClauseBuilder();

            whereSqlClause.AppendItem("PARENT_ID",
                string.Format("(SELECT PARENT_ID FROM WF.MATERIAL WHERE ID = {0})", TSqlBuilder.Instance.CheckQuotationMark(id, true)), "=", true);

            whereSqlClause.AppendItem("MODIFY_TIME",
                string.Format("(SELECT MODIFY_TIME FROM WF.MATERIAL WHERE ID = {0})", TSqlBuilder.Instance.CheckQuotationMark(id, true)), "<=", true);

            whereSqlClause.AppendTenantCode(typeof(Material));

            OrderBySqlClauseBuilder orderBySqlClause = new OrderBySqlClauseBuilder();

            orderBySqlClause.AppendItem("MODIFY_TIME", FieldSortDirection.Ascending);

            string sql = string.Format(@"SELECT * FROM WF.MATERIAL 
				WHERE {0} AND VERSION_TYPE = {1} ORDER BY {2}",
                whereSqlClause.ToSqlString(TSqlBuilder.Instance),
                Convert.ToInt16(MaterialVersionType.CopyVersion),
                orderBySqlClause.ToSqlString(TSqlBuilder.Instance));

            MaterialList materials = new MaterialList();

            using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName()))
            {
                using (IDataReader dr = DbHelper.RunSqlReturnDR(sql, GetConnectionName()))
                {
                    while (dr.Read())
                    {
                        Material material = new Material();

                        ORMapping.DataReaderToObject(dr, material);

                        materials.Add(material);
                    }
                }
            }

            return materials;
        }