Esempio n. 1
0
        private ModelStruct ParseModelStruct(int StructOffset, int mainEntryOffset)
        {
            ModelStruct modelStruct = new ModelStruct();

            modelStruct.F_00 = BitConverter.ToSingle(rawBytes, StructOffset + 0);
            modelStruct.F_04 = BitConverter.ToSingle(rawBytes, StructOffset + 4);
            modelStruct.F_08 = BitConverter.ToSingle(rawBytes, StructOffset + 8);
            modelStruct.F_12 = BitConverter.ToSingle(rawBytes, StructOffset + 12);
            StructOffset    += 16;

            modelStruct.F_16 = BitConverter.ToSingle(rawBytes, StructOffset + 0);
            modelStruct.F_20 = BitConverter.ToSingle(rawBytes, StructOffset + 4);
            modelStruct.F_24 = BitConverter.ToSingle(rawBytes, StructOffset + 8);
            modelStruct.F_28 = BitConverter.ToSingle(rawBytes, StructOffset + 12);
            modelStruct.I_32 = BitConverter.ToUInt32(rawBytes, StructOffset + 16);
            modelStruct.I_40 = BitConverter.ToUInt32(rawBytes, StructOffset + 24);
            modelStruct.I_44 = BitConverter.ToUInt32(rawBytes, StructOffset + 28);

            int emgOffset = BitConverter.ToInt32(rawBytes, StructOffset + 20) + mainEntryOffset;
            int emgSize   = CalculateEmgSize(BitConverter.ToInt32(rawBytes, StructOffset + 20), mainEntryOffset);


            byte[] EmgFile = bytes.GetRange(emgOffset, emgSize).ToArray();
            modelStruct.emgBytes = EmgFile.ToList();


            return(modelStruct);
        }
Esempio n. 2
0
 public RoofSurfaceModelStruct(ModelStruct roundTileModelStruct, ModelStruct flatTileModelStruct, ModelStruct eaveTileModelStruct, ModelStruct flyingRafterModelStruct)
 {
     this.roundTileModelStruct    = roundTileModelStruct;
     this.flatTileModelStruct     = flatTileModelStruct;
     this.eaveTileModelStruct     = eaveTileModelStruct;
     this.flyingRafterModelStruct = flyingRafterModelStruct;
 }
Esempio n. 3
0
        //当激活该工具时会调用的方法
        public override void Click()
        {
            if (CurrentEntity != null)
            {
                esmanager.AddmodelNode.DetachObject(CurrentEntity);
                CurrentEntity.Dispose();
            }

            //查看当前模型列表中是否有选中的项,没有则返回,当单模型列表是会响应该事伯
            // if (MainOgreForm.Singleton.listView1.SelectedItems.Count < 0)
            //     return;
            //得到当前选择模型的名称
            //string ModelName = MainOgreForm.Singleton.listView1.SelectedItems[0].Text;
            //string group = MainOgreForm.Singleton.listView1.SelectedItems[0].Group.Header;
            ms = EsdSceneManager.Singleton.ModelGroup.GetMeshName(modelname, group);


            //得到创建实体的名称,根据当前时间得到,不会有重复
            string name = Guid.NewGuid().ToString("N");

            //创建模型实体
            CurrentEntity = ogreimage.SceneManager.CreateEntity(name, ms.ModelName);
            esmanager.AddmodelNode.ResetToInitialState();

            //旋转模型,饶X轴转90度,因为创建模型和下载的模型视角不同,即初始到当前场景时会躺下,
            float      xx = 90 * (float)(System.Math.PI / 180);
            Quaternion xp = new Quaternion(new Radian(xx), Vector3.UNIT_X);

            esmanager.AddmodelNode.Orientation *= xp;


            esmanager.AddmodelNode.Scale(ms.Scale, ms.Scale, ms.Scale);
            //将模型实体加入到场景节点中
            esmanager.AddmodelNode.AttachObject(CurrentEntity);
        }
Esempio n. 4
0
    void Awake()
    {
        //*** Border ***
        fenceModelStruct     = new ModelStruct(fenceModel, fenceModelRotation, fenceModelScale);
        fenceWallModelStruct = new ModelStruct(fenceWallModel, fenceWallModelRotation, fenceWallModelScale);
        borderModelStruct    = new BorderModelStruct(fenceModelStruct, fenceWallModelStruct);

        //*** 欄杆 ***
        friezeModelStruct       = new ModelStruct(friezeModel, friezeModelRotation, friezeModelScale);
        balustradeModelStruct   = new ModelStruct(balustradeModel, balustradeModelRotation, balustradeModelScale);
        sparrowBraceModelStruct = new ModelStruct(sparrowBraceModel, sparrowBraceModelRotation, sparrowBraceModelScale);
        eaveColumnModelStruct   = new EaveColumnModelStruct(friezeModelStruct, balustradeModelStruct, sparrowBraceModelStruct);

        windowModelStruct     = new ModelStruct(windowModel, windowModelRotation, windowModelScale);
        doorModelStruct       = new ModelStruct(doorModel, doorModelRotation, doorModelScale);
        windowWallModelStruct = new ModelStruct(windowWallModel, windowWallModelRotation, windowWallModelScale);
        goldColumnModelStruct = new GoldColumnModelStruct(windowModelStruct, doorModelStruct, windowWallModelStruct);

        //*** 瓦片結構 : 設定好筒瓦、平瓦、簷瓦模組與個別的旋轉與尺寸向量
        roundTileModelStruct    = new ModelStruct(roundTileModel, roundTileModelRotation, roundTileModelScale);
        flatTileModelStruct     = new ModelStruct(flatTileModel, flatTileModelRotation, flatTileModelScale);
        eaveTileModelStruct     = new ModelStruct(eaveTileModel, eaveTileModelRotation, eaveTileModelScale);
        flyingRafterModelStruct = new ModelStruct(flyingRafterModel, flyingRafterModelRotation, flyingRafterModelScale);
        roofSurfaceModelStruct  = new RoofSurfaceModelStruct(roundTileModelStruct, flatTileModelStruct, eaveTileModelStruct, flyingRafterModelStruct);

        //*** 主瘠結構 : 設定好主脊模組跟旋轉、尺寸向量
        mainRidgeTileModelStruct = new ModelStruct(mainRidgeTileModel, mainRidgeTileModelRotation, mainRidgeTileModelScale);
        mainRidgeModelStruct     = new MainRidgeModelStruct(mainRidgeTileModelStruct);
    }
 /// <summary>
 /// Updates the material variables.
 /// </summary>
 /// <param name="modelstruct">The modelstruct.</param>
 /// <returns></returns>
 public bool UpdateMaterialVariables(ref ModelStruct modelstruct)
 {
     if (material == null)
     {
         return(false);
     }
     if (needUpdate)
     {
         AssignVariables(ref modelstruct);
         needUpdate = false;
     }
     return(true);
 }
 private void AssignVariables(ref ModelStruct modelstruct)
 {
     modelstruct.Ambient                  = material.AmbientColor;
     modelstruct.Diffuse                  = material.DiffuseColor;
     modelstruct.Emissive                 = material.EmissiveColor;
     modelstruct.Reflect                  = material.ReflectiveColor;
     modelstruct.Specular                 = material.SpecularColor;
     modelstruct.Shininess                = material.SpecularShininess;
     modelstruct.HasDiffuseMap            = RenderDiffuseMap && TextureResources[DiffuseIdx] != null ? 1 : 0;
     modelstruct.HasDiffuseAlphaMap       = RenderDiffuseAlphaMap && TextureResources[AlphaIdx] != null ? 1 : 0;
     modelstruct.HasNormalMap             = RenderNormalMap && TextureResources[NormalIdx] != null ? 1 : 0;
     modelstruct.HasDisplacementMap       = RenderDisplacementMap && TextureResources[DisplaceIdx] != null ? 1 : 0;
     modelstruct.DisplacementMapScaleMask = material.DisplacementMapScaleMask;
     modelstruct.RenderShadowMap          = RenderShadowMap ? 1 : 0;
     modelstruct.HasCubeMap               = RenderEnvironmentMap ? 1 : 0;
 }
        public void SetValueForKey(string iKey, object iValue)
        {
            switch (iKey)
            {
            case "modelType":
                ModelStruct requestedModelStruct = _modelsList[iValue as string];
                if (_modelBuilder != null && _modelBuilder.GetType() == requestedModelStruct.modelBuilderType)
                {
                    return;
                }
                _modelBuilder = (IForecastingModelBuilder)Activator.CreateInstance(requestedModelStruct.modelBuilderType);
                _RollbackSettingsFormToDefault();
                requestedModelStruct.settingsFormConfigurationAction(aForm);
                break;

            case "inputsCount":
                _windowSize = (uint)iValue;
                break;

            default:
                throw new ArgumentException(string.Format("Unknown key: '{0}'", iKey));
            }
        }
 public bool UpdateMaterialVariables(ref ModelStruct modelstruct)
 {
     return(true);
 }
Esempio n. 9
0
 protected override void OnUpdatePerModelStruct(ref ModelStruct model, RenderContext context)
 {
     base.OnUpdatePerModelStruct(ref model, context);
     model.RenderOIT = context.IsOITPass ? 1 : 0;
 }
 protected override void OnUpdatePerModelStruct(ref ModelStruct model, RenderContext context)
 {
     base.OnUpdatePerModelStruct(ref model, context);
     model.HasBones = BoneMatrices.Bones != null ? 1 : 0;
 }
 /// <summary>
 /// Called when [update per model structure].
 /// </summary>
 /// <param name="model">The model.</param>
 /// <param name="context">The context.</param>
 protected override void OnUpdatePerModelStruct(ref ModelStruct model, RenderContext context)
 {
     base.OnUpdatePerModelStruct(ref model, context);
     model.Params.Y = OutlineFadingFactor;
 }
Esempio n. 12
0
 protected override void OnUpdatePerModelStruct(ref ModelStruct model, RenderContext context)
 {
     base.OnUpdatePerModelStruct(ref model, context);
     model.Params.Y = dataHeightScale;
 }
Esempio n. 13
0
 public EaveColumnModelStruct(ModelStruct friezeModelStruct, ModelStruct balustradeModelStruct, ModelStruct sparrowBraceModelStruct)
 {
     this.friezeModelStruct       = friezeModelStruct;
     this.balustradeModelStruct   = balustradeModelStruct;
     this.sparrowBraceModelStruct = sparrowBraceModelStruct;
 }
Esempio n. 14
0
 public override void Init()
 {
     CurrentEntity = null;
     ms            = null;
 }
Esempio n. 15
0
 public BorderModelStruct(ModelStruct fenceModelStruct, ModelStruct fenceWallModelStruct)
 {
     this.fenceModelStruct     = fenceModelStruct;
     this.fenceWallModelStruct = fenceWallModelStruct;
 }
Esempio n. 16
0
 protected override void OnUpdatePerModelStruct(ref ModelStruct model, IRenderContext context)
 {
     base.OnUpdatePerModelStruct(ref model, context);
     model.HasInstanceParams = ParameterBuffer != null && ParameterBuffer.HasElements ? 1 : 0;
 }
Esempio n. 17
0
 private void AssignVariables(ref ModelStruct modelstruct)
 {
     modelstruct.Diffuse            = material.DiffuseColor;
     modelstruct.HasDiffuseMap      = material.ColorStripeXEnabled && (textureIndex & 1u) != 0 ? 1 : 0;
     modelstruct.HasDiffuseAlphaMap = material.ColorStripeYEnabled && (textureIndex & 1u << 1) != 0 ? 1 : 0;
 }
Esempio n. 18
0
 public GoldColumnModelStruct(ModelStruct windowModelStruct, ModelStruct doorModelStruct, ModelStruct windowWallModelStruct)
 {
     this.windowModelStruct     = windowModelStruct;
     this.doorModelStruct       = doorModelStruct;
     this.windowWallModelStruct = windowWallModelStruct;
 }
Esempio n. 19
0
 public MainRidgeModelStruct(ModelStruct mainRidgeTileModelStruct)
 {
     this.mainRidgeTileModelStruct = mainRidgeTileModelStruct;
 }