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); }
public RoofSurfaceModelStruct(ModelStruct roundTileModelStruct, ModelStruct flatTileModelStruct, ModelStruct eaveTileModelStruct, ModelStruct flyingRafterModelStruct) { this.roundTileModelStruct = roundTileModelStruct; this.flatTileModelStruct = flatTileModelStruct; this.eaveTileModelStruct = eaveTileModelStruct; this.flyingRafterModelStruct = flyingRafterModelStruct; }
//当激活该工具时会调用的方法 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); }
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); }
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; }
protected override void OnUpdatePerModelStruct(ref ModelStruct model, RenderContext context) { base.OnUpdatePerModelStruct(ref model, context); model.Params.Y = dataHeightScale; }
public EaveColumnModelStruct(ModelStruct friezeModelStruct, ModelStruct balustradeModelStruct, ModelStruct sparrowBraceModelStruct) { this.friezeModelStruct = friezeModelStruct; this.balustradeModelStruct = balustradeModelStruct; this.sparrowBraceModelStruct = sparrowBraceModelStruct; }
public override void Init() { CurrentEntity = null; ms = null; }
public BorderModelStruct(ModelStruct fenceModelStruct, ModelStruct fenceWallModelStruct) { this.fenceModelStruct = fenceModelStruct; this.fenceWallModelStruct = fenceWallModelStruct; }
protected override void OnUpdatePerModelStruct(ref ModelStruct model, IRenderContext context) { base.OnUpdatePerModelStruct(ref model, context); model.HasInstanceParams = ParameterBuffer != null && ParameterBuffer.HasElements ? 1 : 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; }
public GoldColumnModelStruct(ModelStruct windowModelStruct, ModelStruct doorModelStruct, ModelStruct windowWallModelStruct) { this.windowModelStruct = windowModelStruct; this.doorModelStruct = doorModelStruct; this.windowWallModelStruct = windowWallModelStruct; }
public MainRidgeModelStruct(ModelStruct mainRidgeTileModelStruct) { this.mainRidgeTileModelStruct = mainRidgeTileModelStruct; }