public void Prepare(bool generateDefaultLight = true, bool generateDefaultCamera = true) { meshes = MeshesList.ToArray(); sounds = SoundsList.ToArray(); materials = MaterialsList.ToArray(); multiMaterials = MultiMaterialsList.ToArray(); shadowGenerators = ShadowGeneratorsList.ToArray(); skeletons = SkeletonsList.ToArray(); if (MorphTargetManagersList.Count > 0) { morphTargetManagers = MorphTargetManagersList.ToArray(); } if (CamerasList.Count == 0 && generateDefaultCamera) { var camera = new BabylonCamera { name = "Default camera", id = Guid.NewGuid().ToString() }; // Default camera init gives infinit values // Indeed, float.MaxValue - float.MinValue always leads to infinity var distanceVector = MaxVector - MinVector; var midPoint = MinVector + distanceVector / 2; camera.target = midPoint.ToArray(); camera.position = (midPoint + distanceVector).ToArray(); var distance = distanceVector.Length(); camera.speed = distance / 50.0f; camera.maxZ = distance * 4f; camera.minZ = distance < 100.0f ? 0.1f : 1.0f; CamerasList.Add(camera); } if (LightsList.Count == 0 && generateDefaultLight) { var light = new BabylonLight { name = "Default light", id = Guid.NewGuid().ToString(), type = 3, groundColor = new float[] { 0, 0, 0 }, direction = new[] { 0, 1.0f, 0 }, intensity = 1 }; LightsList.Add(light); } cameras = (CamerasList.Count > 0) ? CamerasList.ToArray() : null; lights = (LightsList.Count > 0) ? LightsList.ToArray() : null; if (activeCameraID == null && CamerasList.Count > 0) { activeCameraID = CamerasList[0].id; } }
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 void Prepare(bool generateDefaultLight = true) { meshes = MeshesList.ToArray(); materials = MaterialsList.ToArray(); multiMaterials = MultiMaterialsList.ToArray(); shadowGenerators = ShadowGeneratorsList.ToArray(); skeletons = SkeletonsList.ToArray(); if (CamerasList.Count == 0) { var camera = new BabylonCamera { name = "Default camera", id = Guid.NewGuid().ToString() }; var distanceVector = MaxVector - MinVector; var midPoint = MinVector + distanceVector / 2; camera.target = midPoint.ToArray(); camera.position = (midPoint + distanceVector).ToArray(); var distance = distanceVector.Length(); camera.speed = distance / 50.0f; camera.maxZ = distance * 4f; camera.minZ = distance < 100.0f ? 0.1f : 1.0f; CamerasList.Add(camera); } if (LightsList.Count == 0 && generateDefaultLight) { var light = new BabylonLight { name = "Default light", id = Guid.NewGuid().ToString() }; var midPoint = MinVector + (MaxVector - MinVector) / 2; light.type = 0; light.position = (midPoint + (MaxVector - MinVector)).ToArray(); light.diffuse = new Vector3(1, 1, 1).ToArray(); light.specular = new Vector3(1, 1, 1).ToArray(); LightsList.Add(light); } cameras = CamerasList.ToArray(); lights = LightsList.ToArray(); if (activeCameraID == null) { activeCameraID = CamerasList[0].id; } }
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) { var animationsList = new List <GLTFAnimation>(); AnimationsList.ForEach(animation => { animation.Prepare(); // Exclude empty animations if (animation.channels != null) { animationsList.Add(animation); } }); if (animationsList.Count > 0) { animations = animationsList.ToArray(); } } if (SkinsList.Count > 0) { skins = SkinsList.ToArray(); } if (extensionsUsed != null && extensionsUsed.Count == 0) { extensionsUsed = null; } if (extensionsRequired != null && extensionsRequired.Count == 0) { extensionsRequired = null; } }