private void FileOpen(string[] Files, bool MergeMode) { if (!MergeMode) { Renderer.DeleteAll(); Renderer.Lights.Add(new Light() { Ambient = new Color4(0.1f, 0.1f, 0.1f, 1.0f), Diffuse = new Color4(0.9f, 0.9f, 0.9f, 1.0f), Specular0 = new Color4(0.8f, 0.8f, 0.8f, 1.0f), Specular1 = new Color4(0.4f, 0.4f, 0.4f, 1.0f), TwoSidedDiffuse = true, Enabled = true }); ResetTransforms(); Scene = FileIO.Merge(Files, Renderer); if (Scene != null) { TextureManager.Textures = Scene.Textures; ModelsList.Bind(Scene.Models); TexturesList.Bind(Scene.Textures); CamerasList.Bind(Scene.Cameras); LightsList.Bind(Scene.Lights); SklAnimsList.Bind(Scene.SkeletalAnimations); MatAnimsList.Bind(Scene.MaterialAnimations); VisAnimsList.Bind(Scene.VisibilityAnimations); CamAnimsList.Bind(Scene.CameraAnimations); LUTsList.Bind(Scene.LUTs); Animator.Enabled = false; LblAnimSpeed.Text = string.Empty; LblAnimLoopMode.Text = string.Empty; AnimSeekBar.Value = 0; AnimSeekBar.Maximum = 0; AnimGrp.Frame = 0; AnimGrp.FramesCount = 0; if (Scene.Models.Count > 0) { ModelsList.Select(0); } else { UpdateTransforms(); } } } else { Scene = FileIO.Merge(Files, Renderer, Scene); } }
public void Prepare() { scenes[0].Prepare(); // Do not export empty arrays if (NodesList.Count > 0) { nodes = NodesList.ToArray(); NodesList.ForEach(node => node.Prepare()); } if (CamerasList.Count > 0) { cameras = CamerasList.ToArray(); } if (BuffersList.Count > 0) { buffers = BuffersList.ToArray(); } if (BufferViewsList.Count > 0) { bufferViews = BufferViewsList.ToArray(); } if (AccessorsList.Count > 0) { accessors = AccessorsList.ToArray(); } if (MeshesList.Count > 0) { meshes = MeshesList.ToArray(); } if (MaterialsList.Count > 0) { materials = MaterialsList.ToArray(); } if (TexturesList.Count > 0) { textures = TexturesList.ToArray(); } if (ImagesList.Count > 0) { images = ImagesList.ToArray(); } if (SamplersList.Count > 0) { samplers = SamplersList.ToArray(); } if (AnimationsList.Count > 0) { animations = AnimationsList.ToArray(); AnimationsList.ForEach(animation => animation.Prepare()); } if (SkinsList.Count > 0) { skins = SkinsList.ToArray(); } }
public GLTFTexture AddTexture(GLTFImage image, GLTFSampler sampler) { GLTFTexture gltfTexture = new GLTFTexture(); gltfTexture.index = TexturesList.Count; gltfTexture.sampler = sampler?.index; gltfTexture.source = image?.index; TexturesList.Add(gltfTexture); return(gltfTexture); }
private void FileOpen(string[] Files, bool MergeMode) { if (!MergeMode) //if not merging in a model { Renderer.DeleteAll(); //clear existing meshes Renderer.Lights.Add(new Light() //add a new light to the {scene/renderer} { Ambient = new Color4(0.1f, 0.1f, 0.1f, 1.0f), Diffuse = new Color4(0.9f, 0.9f, 0.9f, 1.0f), Specular0 = new Color4(0.8f, 0.8f, 0.8f, 1.0f), Specular1 = new Color4(0.4f, 0.4f, 0.4f, 1.0f), TwoSidedDiffuse = true, Enabled = true }); ResetTransforms(); Scene = FileIO.Merge(Files, Renderer); TextureManager.Textures = Scene.Textures; ModelsList.Bind(Scene.Models); TexturesList.Bind(Scene.Textures); CamerasList.Bind(Scene.Cameras); LightsList.Bind(Scene.Lights); SklAnimsList.Bind(Scene.SkeletalAnimations); MatAnimsList.Bind(Scene.MaterialAnimations); VisAnimsList.Bind(Scene.VisibilityAnimations); CamAnimsList.Bind(Scene.CameraAnimations); Animator.Enabled = false; LblAnimSpeed.Text = string.Empty; LblAnimLoopMode.Text = string.Empty; AnimSeekBar.Value = 0; AnimSeekBar.Maximum = 0; AnimGrp.Frame = 0; AnimGrp.FramesCount = 0; if (Scene.Models.Count > 0) { //TODO: if not moving camera on model select, move camera to default pos here ModelsList.Select(0); } else { UpdateTransforms(); } } else { Scene = FileIO.Merge(Files, Renderer, Scene); } }
private static bool LoadData(String fileName) { bool succeeded = true; try { using (BinaryReader reader = new BinaryReader(new FileStream(fileName, FileMode.Open))) { // conversion, lines, grades, abbr, waste min, waste max int listLen = reader.ReadInt32(); StringDoubleConversionList.Clear(); for (; listLen > 0; --listLen) { String item1 = reader.ReadString(); double item2 = reader.ReadDouble(); StringDoubleConversionList.Add(new Tuple <string, double>(item1, item2)); } //grades and abbr listLen = reader.ReadInt32(); GradesList.Clear(); GradeAbbrList.Clear(); for (; listLen > 0; --listLen) { String grade = reader.ReadString(); String abbr = reader.ReadString(); GradesList.Add(grade); GradeAbbrList.Add(abbr); } // lines listLen = reader.ReadInt32(); CoatingLines.Clear(); for (; listLen > 0; --listLen) { String line = reader.ReadString(); CoatingLines.Add(line); } //waste WasteMin = reader.ReadDouble(); WasteMax = reader.ReadDouble(); CurrentWaste = reader.ReadDouble(); listLen = reader.ReadInt32(); TexturesList.Clear(); for (; listLen > 0; --listLen) { TexturesList.Add(Texture.Load(reader)); } // WiP Marker WiPMarker = reader.ReadChar(); } } catch (Exception) { succeeded = false; } if (succeeded) { _loaded = true; } return(succeeded); }