void Update() { if (!m_baking || m_TrsArr == null || m_TrsArr.Length == 0) { return; } double t = EditorApplication.timeSinceStartup; if (t - _lastCheckTime > ELAPSE) { _lastCheckTime = t; foreach (var xfdata in m_Trs) { if (xfdata.HasDiff()) { XformData tmpData = XformData.Create(xfdata.tr); xfdata.Apply(); Undo.RecordObject(xfdata.tr, "baking"); tmpData.Apply(xfdata.tr); xfdata.CopyFrom(); //update saved data } } } }
private static void HandleSEWithoutAlias(Models.XformTransformationDetail transformationStepdetail, List <Models.SchemaColumnDetail> xformRawDbColumns, List <Models.SchemaColumnDetail> xformInterimDbColumns, Models.CSVBuilderTransformationListXML csvStrategyList) { var convertibleCSVStrategyList = csvStrategyList.MetaDataToStrategyList.Where(x => x.ExpressionButtonHeader.Equals("...")).ToList(); List <string> columnadded = new List <string>(); int nullcount = 0; int correctCount = 0; var xformData = new XformData(); log.Info(" "); log.Info(" "); log.Info("----------------------------------------"); log.Info("Handling of Simple Expression Starting"); synth.Speak("Handling of Simple Expression Starting"); foreach (var item in convertibleCSVStrategyList) { var csvrawdbColumn = GetRequiredFieldName(item.Field.Name); var csvInterimColumnName = GetRequiredFieldName(item.Alias ?? item.Field.Name); var xformRawDBName = xformRawDbColumns.FirstOrDefault(x => x.ColumnName.Equals(csvrawdbColumn, StringComparison.InvariantCultureIgnoreCase)); var xformInterimDBName = xformInterimDbColumns.FirstOrDefault(x => x.ColumnName.Equals(csvInterimColumnName, StringComparison.InvariantCultureIgnoreCase)); if (xformRawDBName == null || xformInterimDBName == null) { nullcount = nullcount + 1; } if (xformRawDBName != null && xformInterimDBName != null && !columnadded.Contains(xformInterimDBName.ColumnName)) { string expressionText = MakeExpressionText(xformRawDBName, xformInterimDBName); int xformMappingId = xformData.InsertInXformMappingTable(transformationStepdetail, expressionText); int outputofRawColumn = xformData.InsertinXformMappingFieldTable(xformMappingId, xformRawDBName.Id, 1); if (outputofRawColumn != 0) { Console.WriteLine(string.Format("Value inserted for RawColumn {0}", xformRawDBName.ColumnName)); log.InfoFormat("RawColumn: {0}", xformRawDBName.ColumnName); } int outputofintermColumn = xformData.InsertinXformMappingFieldTable(xformMappingId, xformInterimDBName.Id, 1); if (outputofintermColumn != 0) { Console.WriteLine(string.Format("Value inserted for Interim {0}", xformInterimDBName.ColumnName)); log.InfoFormat("InterimColumn: {0}", xformInterimDBName.ColumnName); } correctCount = correctCount + 1; columnadded.Add(xformInterimDBName.ColumnName); } } log.Info("Handling of Simple Expression Ending"); log.Info("----------------------------------------"); Console.WriteLine("Null Count={0}, Correct Count={1}", nullcount, correctCount); synth.Speak("Handling of Simple Expression Ending"); columnadded = null; }
/// <summary> /// record recursively /// </summary> private void _PrepareBlend(Transform extTr, List <BlendData> blendDatas) { BlendData newData = new BlendData(); newData.m_Tr = extTr; newData.m_StartTrData = XformData.Create(extTr); blendDatas.Add(newData); for (int idx = 0; idx < extTr.childCount; ++idx) { Transform tr = extTr.GetChild(idx); _PrepareBlend(tr, blendDatas); } }
private static void TransformAssignImpl(UnityEngine.Transform trans, ref XformData data) { if (data.flags.updatedPosition) { trans.localPosition = data.position; } if (data.flags.updatedRotation) { trans.localRotation = data.rotation; } if (data.flags.updatedScale) { trans.localScale = data.scale; } }
/// <summary> /// execute blend-in /// </summary> private static void _ExecuteBlendIn(CutsceneController cc) { if (cc.m_ReplRecord.Count == 0) { return; } float curAnimTime = cc.m_AnimState.time; if (curAnimTime > cc.m_BlendInTime) { return; } float t = curAnimTime / cc.m_BlendInTime; for (var ie = cc.m_ReplRecord.GetEnumerator(); ie.MoveNext();) { ReplData rData = ie.Current.Value; Transform extTr = ie.Current.Key.transform; for (int idx = 0; idx < rData.m_ExtGOBlendData.Count; ++idx) { BlendData bdata = rData.m_ExtGOBlendData[idx]; if (bdata.m_Tr == extTr) { XformData origBasedOnCC = rData.m_ExtGOTrDataBasedOnCC; extTr.localPosition = Vector3.Lerp(origBasedOnCC.pos, extTr.localPosition, t); extTr.localRotation = Quaternion.Slerp(origBasedOnCC.rot, extTr.localRotation, t); extTr.localScale = Vector3.Lerp(origBasedOnCC.scale, extTr.localScale, t); } else { bdata.DoBlend(t); } } } }
[DllImport("usdi")] public static extern Bool usdiXformWriteSample(Xform xf, ref XformData src, double t);
[DllImport("usdi")] public static extern Bool usdiXformReadSample(Xform xf, ref XformData dst, double t);
private static extern void usdiUniTransformAssign(UnityEngine.Transform trans, ref XformData data);
private static void HandleCEWithAlias(Models.XformTransformationDetail transformationStepdetail, List <Models.SchemaColumnDetail> xformRawDbColumns, List <Models.SchemaColumnDetail> xformInterimDbColumns, Models.CSVBuilderTransformationListXML csvStrategyList) { var convertibleCSVStrategyList = csvStrategyList.MetaDataToStrategyList.Where(x => x.ExpressionButtonHeader.Equals("E") && !x.Field.Expression.ToLower().Contains("portrecon.")).ToList(); List <string> columnadded = new List <string>(); int nullcount = 0; int correctCount = 0; string expressionText = string.Empty; int xformMappingId = 0; bool ifconvertible; var xformData = new XformData(); log.Info("----------------------------------------"); log.Info("Handling of Complex Expression starting"); synth.Speak("Handling of Complex Expression Starting"); foreach (var item in convertibleCSVStrategyList) { List <string> csvrawdbColumns = MakeRawDbColumnFromExpression(item.Field.Expression, xformRawDbColumns); var csvInterimColumnName = GetRequiredFieldName(item.Alias); var xformInterimDBName = xformInterimDbColumns.FirstOrDefault(x => x.ColumnName.Equals(csvInterimColumnName, StringComparison.InvariantCultureIgnoreCase)); if (xformInterimDBName != null && !columnadded.Contains(xformInterimDBName.SchemaName.ToString() + xformInterimDBName.ColumnName.ToString()) && csvrawdbColumns.Count > 0) { string rawdbexpressionText = MakeComplexExpression(item.Field.Expression, xformRawDbColumns.FirstOrDefault().SchemaName, csvrawdbColumns, xformRawDbColumns, out ifconvertible); if (ifconvertible == true) { expressionText = MakeExpressionTextforCE(xformInterimDBName, ConvertToXformColumnsCase(rawdbexpressionText, csvrawdbColumns, xformRawDbColumns)); xformMappingId = xformData.InsertInXformMappingTable(transformationStepdetail, expressionText); log.InfoFormat("Expression: {0}", expressionText); int outputofintermColumn = xformData.InsertinXformMappingFieldTable(xformMappingId, xformInterimDBName.Id, 1); if (outputofintermColumn != 0) { columnadded.Add(xformInterimDBName.SchemaName.ToString() + xformInterimDBName.ColumnName.ToString()); Console.WriteLine(string.Format("Value inserted for Interim {0}", xformInterimDBName.ColumnName)); log.InfoFormat("InterimColumn: {0}", xformInterimDBName.ColumnName); correctCount = correctCount + 1; } } else { continue; } } foreach (var csvrawcolumn in csvrawdbColumns) { var xformRawDBName = xformRawDbColumns.FirstOrDefault(x => x.ColumnName.Equals(csvrawcolumn, StringComparison.InvariantCultureIgnoreCase)); if (xformRawDBName == null || xformInterimDBName == null) { nullcount = nullcount + 1; } if (xformRawDBName != null && xformInterimDBName != null && !columnadded.Contains(xformInterimDBName.SchemaName.ToString() + xformInterimDBName.ColumnName.ToString() + xformRawDBName.SchemaName.ToString() + xformRawDBName.ColumnName.ToString())) { int outputofRawColumn = xformData.InsertinXformMappingFieldTable(xformMappingId, xformRawDBName.Id, 1); if (outputofRawColumn != 0) { columnadded.Add(xformInterimDBName.SchemaName.ToString() + xformInterimDBName.ColumnName.ToString() + xformRawDBName.SchemaName.ToString() + xformRawDBName.ColumnName.ToString()); Console.WriteLine(string.Format("Value inserted for RawColumn {0}", xformRawDBName.ColumnName)); log.InfoFormat("RawColumn: {0}", xformRawDBName.ColumnName); } } } } log.Info("Handling of Complex Expression Ending"); log.Info("----------------------------------------"); synth.Speak("Handling of Complex Expression Ending"); Console.WriteLine("Null Count={0}, Correct Count={1}", nullcount, correctCount); columnadded = null; }