public static void ExportAnimatedModel(BMD model, BCA animation, string fileName) { AbstractModelLoader animatedLoader = new BCALoader(new BMDLoader(fileName, model).LoadModel(), animation); ModelBase loadedModel = animatedLoader.LoadModel(); ExportModelToDAE(loadedModel, fileName); }
public static BCA ConvertAnimatedDAEToBCA(ref NitroFile animationFile, string fileName, BMDImporter.BCAImportationOptions bcaImportationOptions, bool save = true) { ModelBase loadedModel = new DAELoader(fileName).LoadModel(); BCA importedAnimation = CallBCAWriter(ref animationFile, loadedModel, bcaImportationOptions, save); return(importedAnimation); }
public BCA ConvertICAToBCA(ref NitroFile animationFile, string fileName, Vector3 scale, BMDExtraImportOptions extraOptions, bool save = true) { m_LoadedModel = new NITROIntermediateCharacterAnimationLoader(m_LoadedModel, fileName).LoadModel(scale); BCA importedAnimation = CallBCAWriter(ref animationFile, m_LoadedModel, save); return(importedAnimation); }
public static BCA ConvertICAToBCA(ref NitroFile animationFile, string fileName, ModelBase loadedModel, float scale, BMDExtraImportOptions extraOptions, BMDImporter.BCAImportationOptions bcaImportationOptions, bool save = true) { ModelBase animatedModel = new NITROIntermediateCharacterAnimationLoader(loadedModel, fileName).LoadModel(scale); BCA importedAnimation = CallBCAWriter(ref animationFile, animatedModel, bcaImportationOptions, save); return(importedAnimation); }
public void SetBMD(MKDS_Course_Modifier.SM64DS.BMD Bmd) { this.file = Bmd; this.timer1.Stop(); this.Bca = (BCA)null; this.SelBcaAnim = 0; this.menuItem2.MenuItems.Clear(); GlNitro2.glNitroBindTextures(this.file, 1); this.Render(); }
public BCA ConvertAnimatedDAEToBCA(ref NitroFile animationFile, string fileName, bool save = true) { if (m_LoadedModel == null) { m_LoadedModel = new DAELoader(fileName).LoadModel(); } BCA importedAnimation = CallBCAWriter(ref animationFile, m_LoadedModel, save); return(importedAnimation); }
public void SetBCA(BCA Bca) { this.Bca = Bca; this.SelBcaAnim = 0; this.BcaNumFrames = (int)Bca.Header.NrFrames; this.BcaFrameNumber = 0; this.menuItem2.MenuItems.Clear(); this.menuItem2.MenuItems.Add(LanguageHandler.GetString("3d.bindpose"), new EventHandler(this.menuItem2_Click)); this.menuItem2.MenuItems.Add("-"); this.menuItem2.MenuItems.Add("Animation", new EventHandler(this.menuItem2_Click)); this.menuItem2.MenuItems[0].RadioCheck = true; this.menuItem2.MenuItems[2].Checked = true; this.timer1.Start(); }
public BlurayInfoViewModel([CanBeNull] byte[] blurayDiscInformation, [CanBeNull] byte[] blurayBurstCuttingArea, [CanBeNull] byte[] blurayDds, [CanBeNull] byte[] blurayCartridgeStatus, [CanBeNull] byte[] bluraySpareAreaInformation, [CanBeNull] byte[] blurayPowResources, [CanBeNull] byte[] blurayTrackResources, [CanBeNull] byte[] blurayRawDfl, [CanBeNull] byte[] blurayPac, Window view) { _view = view; _discInformation = blurayDiscInformation; _burstCuttingArea = blurayBurstCuttingArea; _dds = blurayDds; _cartridgeStatus = blurayCartridgeStatus; _spareAreaInformation = bluraySpareAreaInformation; _powResources = blurayPowResources; _trackResources = blurayTrackResources; _rawDfl = blurayRawDfl; _pac = blurayPac; SaveBlurayDiscInformationCommand = ReactiveCommand.Create(ExecuteSaveBlurayDiscInformationCommand); SaveBlurayBurstCuttingAreaCommand = ReactiveCommand.Create(ExecuteSaveBlurayBurstCuttingAreaCommand); SaveBlurayDdsCommand = ReactiveCommand.Create(ExecuteSaveBlurayDdsCommand); SaveBlurayCartridgeStatusCommand = ReactiveCommand.Create(ExecuteSaveBlurayCartridgeStatusCommand); SaveBluraySpareAreaInformationCommand = ReactiveCommand.Create(ExecuteSaveBluraySpareAreaInformationCommand); SaveBlurayPowResourcesCommand = ReactiveCommand.Create(ExecuteSaveBlurayPowResourcesCommand); SaveBlurayTrackResourcesCommand = ReactiveCommand.Create(ExecuteSaveBlurayTrackResourcesCommand); SaveBlurayRawDflCommand = ReactiveCommand.Create(ExecuteSaveBlurayRawDflCommand); SaveBlurayPacCommand = ReactiveCommand.Create(ExecuteSaveBlurayPacCommand); if (blurayDiscInformation != null) { SaveBlurayDiscInformationVisible = true; BlurayDiscInformationText = DI.Prettify(blurayDiscInformation); } if (blurayBurstCuttingArea != null) { SaveBlurayBurstCuttingAreaVisible = true; BlurayBurstCuttingAreaText = BCA.Prettify(blurayBurstCuttingArea); } if (blurayDds != null) { SaveBlurayDdsVisible = true; BlurayDdsText = DDS.Prettify(blurayDds); } if (blurayCartridgeStatus != null) { SaveBlurayCartridgeStatusVisible = true; BlurayCartridgeStatusText = Cartridge.Prettify(blurayCartridgeStatus); } if (bluraySpareAreaInformation != null) { SaveBluraySpareAreaInformationVisible = true; BluraySpareAreaInformationText = Spare.Prettify(bluraySpareAreaInformation); } if (blurayPowResources != null) { SaveBlurayPowResourcesVisible = true; BlurayPowResourcesText = DiscInformation.Prettify(blurayPowResources); } if (blurayTrackResources != null) { SaveBlurayTrackResourcesVisible = true; BlurayTrackResourcesText = DiscInformation.Prettify(blurayTrackResources); } SaveBlurayRawDflVisible = blurayRawDfl != null; SaveBlurayPacVisible = blurayPac != null; }
private static void WriteDAE_Animation_Source_translationOutput(XmlWriter writer, BCA.SRTContainer[] frames, ModelBase.BoneDef bone) { writer.WriteStartElement("source"); writer.WriteAttributeString("id", bone.m_ID + "_translate-output"); writer.WriteStartElement("float_array"); writer.WriteAttributeString("id", bone.m_ID + "_translate-output-array"); writer.WriteAttributeString("count", "" + (frames.Length * 3)); StringBuilder trans = new StringBuilder(); for (int i = 0; i < frames.Length; i++) { float x = frames[i].m_Translation.X; float y = frames[i].m_Translation.Y; float z = frames[i].m_Translation.Z; trans.Append(x.ToString(usa) + " " + y.ToString(usa) + " " + z.ToString(usa) + " "); } trans.Remove(trans.Length - 1, 1);// Remove extra space character at end writer.WriteString(trans.ToString()); writer.WriteEndElement();// float_array writer.WriteStartElement("technique_common"); writer.WriteStartElement("accessor"); writer.WriteAttributeString("count", "" + frames.Length); writer.WriteAttributeString("offset", "0"); writer.WriteAttributeString("source", "#" + bone.m_ID + "_translate-output-array"); writer.WriteAttributeString("stride", "3"); WriteDAE_Animation_Param_nameType(writer, "X", "float"); WriteDAE_Animation_Param_nameType(writer, "Y", "float"); WriteDAE_Animation_Param_nameType(writer, "Z", "float"); writer.WriteEndElement();// accessor writer.WriteEndElement();// technique_common writer.WriteEndElement();// source }
private static void WriteDAE_Animation_Source_rotationOutput(XmlWriter writer, BCA.SRTContainer[] frames, ModelBase.BoneDef bone, string component) { writer.WriteStartElement("source"); writer.WriteAttributeString("id", bone.m_ID + "_rotation" + component + "-output"); writer.WriteStartElement("float_array"); writer.WriteAttributeString("id", bone.m_ID + "_rotation" + component + "-output-array"); writer.WriteAttributeString("count", "" + frames.Length); StringBuilder rot = new StringBuilder(); for (int i = 0; i < frames.Length; i++) { float angle = 0.0f; Vector3 rotDeg = frames[i].GetRotationInDegrees(); switch (component.ToUpperInvariant()) { case "X": angle = rotDeg.X; break; case "Y": angle = rotDeg.Y; break; case "Z": angle = rotDeg.Z; break; } rot.Append(angle.ToString(usa) + " "); } rot.Remove(rot.Length - 1, 1);// Remove extra space character at end writer.WriteString(rot.ToString()); writer.WriteEndElement();// float_array writer.WriteStartElement("technique_common"); writer.WriteStartElement("accessor"); writer.WriteAttributeString("count", "" + frames.Length); writer.WriteAttributeString("offset", "0"); writer.WriteAttributeString("source", "#" + bone.m_ID + "_rotation" + component + "-output-array"); writer.WriteAttributeString("stride", "1"); WriteDAE_Animation_Param_nameType(writer, "ANGLE", "float"); writer.WriteEndElement();// accessor writer.WriteEndElement();// technique_common writer.WriteEndElement();// source }
private static void WriteDAE_Animation_Source_matrixOutput(XmlWriter writer, BCA.SRTContainer[] frames, ModelBase.BoneDef bone) { writer.WriteStartElement("source"); writer.WriteAttributeString("id", bone.m_ID + "_transform-output"); writer.WriteStartElement("float_array"); writer.WriteAttributeString("id", bone.m_ID + "_transform-output-array"); writer.WriteAttributeString("count", "" + (frames.Length * 16)); StringBuilder sb = new StringBuilder(); for (int i = 0; i < frames.Length; i++) { Matrix4 matrix = frames[i].m_Matrix; sb.Append(matrix.Column0.X.ToString(usa) + " " + matrix.Column0.Y.ToString(usa) + " " + matrix.Column0.Z.ToString(usa) + " " + matrix.Column0.W.ToString(usa) + " "); sb.Append(matrix.Column1.X.ToString(usa) + " " + matrix.Column1.Y.ToString(usa) + " " + matrix.Column1.Z.ToString(usa) + " " + matrix.Column1.W.ToString(usa) + " "); sb.Append(matrix.Column2.X.ToString(usa) + " " + matrix.Column2.Y.ToString(usa) + " " + matrix.Column2.Z.ToString(usa) + " " + matrix.Column2.W.ToString(usa) + " "); sb.Append(matrix.Column3.X.ToString(usa) + " " + matrix.Column3.Y.ToString(usa) + " " + matrix.Column3.Z.ToString(usa) + " " + matrix.Column3.W.ToString(usa) + " "); } sb.Remove(sb.Length - 1, 1);// Remove extra space character at end writer.WriteString(sb.ToString()); writer.WriteEndElement();// float_array writer.WriteStartElement("technique_common"); writer.WriteStartElement("accessor"); writer.WriteAttributeString("count", "" + frames.Length); writer.WriteAttributeString("offset", "0"); writer.WriteAttributeString("source", "#" + bone.m_ID + "_transform-output-array"); writer.WriteAttributeString("stride", "16"); WriteDAE_Animation_Param_nameType(writer, "TRANSFORM", "float4x4"); writer.WriteEndElement();// accessor writer.WriteEndElement();// technique_common writer.WriteEndElement();// source }
internal void LoadData(byte[] blurayDiscInformation, byte[] blurayBurstCuttingArea, byte[] blurayDds, byte[] blurayCartridgeStatus, byte[] bluraySpareAreaInformation, byte[] blurayPowResources, byte[] blurayTrackResources, byte[] blurayRawDfl, byte[] blurayPac) { DiscInformation = blurayDiscInformation; BurstCuttingArea = blurayBurstCuttingArea; Dds = blurayDds; CartridgeStatus = blurayCartridgeStatus; SpareAreaInformation = bluraySpareAreaInformation; PowResources = blurayPowResources; TrackResources = blurayTrackResources; RawDfl = blurayRawDfl; Pac = blurayPac; if (blurayDiscInformation != null) { grpBlurayDiscInformation.Visible = true; btnSaveBlurayDiscInformation.Visible = true; txtBlurayDiscInformation.Text = DI.Prettify(blurayDiscInformation); } if (blurayBurstCuttingArea != null) { grpBlurayBurstCuttingArea.Visible = true; btnSaveBlurayBurstCuttingArea.Visible = true; txtBlurayBurstCuttingArea.Text = BCA.Prettify(blurayBurstCuttingArea); } if (blurayDds != null) { grpBlurayDds.Visible = true; btnSaveBlurayDds.Visible = true; txtBlurayDds.Text = DDS.Prettify(blurayDds); } if (blurayCartridgeStatus != null) { grpBlurayCartridgeStatus.Visible = true; btnSaveBlurayCartridgeStatus.Visible = true; txtBlurayCartridgeStatus.Text = Cartridge.Prettify(blurayCartridgeStatus); } if (bluraySpareAreaInformation != null) { grpBluraySpareAreaInformation.Visible = true; btnSaveBluraySpareAreaInformation.Visible = true; txtBluraySpareAreaInformation.Text = Spare.Prettify(bluraySpareAreaInformation); } if (blurayPowResources != null) { grpBlurayPowResources.Visible = true; btnSaveBlurayPowResources.Visible = true; txtBlurayPowResources.Text = Decoders.SCSI.MMC.DiscInformation.Prettify(blurayPowResources); } if (blurayTrackResources != null) { grpBlurayTrackResources.Visible = true; btnSaveBlurayTrackResources.Visible = true; txtBlurayTrackResources.Text = Decoders.SCSI.MMC.DiscInformation.Prettify(blurayTrackResources); } btnSaveBlurayRawDfl.Visible = blurayRawDfl != null; btnSaveBlurayPac.Visible = blurayPac != null; Visible = grpBlurayDiscInformation.Visible || grpBlurayBurstCuttingArea.Visible || grpBlurayDds.Visible || grpBlurayCartridgeStatus.Visible || grpBluraySpareAreaInformation.Visible || grpBlurayPowResources.Visible || grpBlurayTrackResources.Visible || btnSaveBlurayRawDfl.Visible || btnSaveBlurayPac.Visible; }
public BCALoader(ModelBase model, BCA animation) : base(null) { m_BCA = animation; m_Model = model; }