//@ Process // Release_ProcessorSpline public bool Release_ProcessorSpline() { m_bBuildedCurve = false; if (null != m_ProcessCurve_Activate) { m_ProcessCurve_Activate.ReleaseSpline(); m_ProcessCurve_Activate = null; } ClearCurvePathInstant(); if (null != m_arrSectionCurve) { Array.Clear(m_arrSectionCurve, 0, m_arrSectionCurve.Length); m_arrSectionCurve = null; } return(true); } // public bool Release_ProcessorSpline()
private async void InitializeApp() { Log.system = new RichLog(systemRichLog); rns = new RNS(rnsRichLog, rnsTabControl, rnsProgressBar); vtwin = new VTWIN(vtwinRichLog, vtwinTabControl, vtwinProgressBar); vts500 = new VTS500(vtsRichLog, vtsTabControl, vtsProgressBar); zenith = new ZENITH(zenithRichLog, zenithTabControl, zenithProgressBar); bool downloaded = await Task.Run(() => Config.dbDownload() ); if (downloaded) { // Envio la AOI VTWIN22309 a la ultima posicion de la lista de maquinas a inspeccionar // Por algun motivo demora mas que el resto en procesar las inspecciones Config.toEndInspect.Add(Machine.findByCode("VT-WIN2-2309")); rns.TotalMachines(); vtwin.TotalMachines(); vts500.TotalMachines(); zenith.TotalMachines(); if (Config.isAutoStart()) { rns.Start(true); vtwin.Start(true); vts500.Start(true); zenith.Start(true); } else { /* * En el siguiente update se deberian implementar eventos, esto permite a un sysadmin * enviar un correo a una lista de contactos si el evento se disparo */ //Evento.alerta("El modo 'autostart' no esta activo, el sistema no iniciara automaticamente los procesos!"); } } }
//@ Process // BuildupCurve_spline() public bool BuildupCurve_spline(E_TYPE_SPLINE eTypeCurve, float fDivisionWeight) { if (m_listCurvepathunit.Count > 0) { m_listPath_Spline.Clear(); foreach (CCurvePathUnit flypathUnit in m_listCurvepathunit) { if (flypathUnit) { m_listPath_Spline.Add(flypathUnit.getPosUnit()); } } } if (m_listPath_Spline.Count < 1) { Debug.Log("Cant Buildup CurveList. no Instant Custom Point!!//"); return(false); } float fDivisionWeight__ = -1.0f; if (fDivisionWeight < 0) { fDivisionWeight__ = m_fDivisionWeight_LineCurve; } else { fDivisionWeight__ = m_fDivisionWeight_LineCurve = fDivisionWeight; } // if(fDivisionWeight < 0) if (E_TYPE_SPLINE.SPLINE_NULL == eTypeCurve) { eTypeCurve = m_typeSplineCurve; if (E_TYPE_SPLINE.SPLINE_NULL == eTypeCurve) { eTypeCurve = DEFLT_TYPE_SPLINECURVE; } } // if (E_TYPE_SPLINE.SPLINE_NULL == eTypeCurve) m_typeSplineCurve = eTypeCurve; bool bBuildCurve = false; switch (m_typeSplineCurve) { case E_TYPE_SPLINE.SPLINE_ROUNDEDNONUNIFORMSPLINE: { RNS __ProcessCurve_rns = new RNS(); foreach (Vector3 v3PntCurve in m_listPath_Spline) { __ProcessCurve_rns.AddNode(v3PntCurve); } bBuildCurve = __ProcessCurve_rns.BuildSpline_rns(); if (false == bBuildCurve) { Debug.Log("FALSE !! __ProcessCurve_rns.BuildSpline_rns()"); return(false); } m_ProcessCurve_Activate = __ProcessCurve_rns; } break; case E_TYPE_SPLINE.SPLINE_SMOOTHNONUNIFORMSPLINE: { SNS __ProcessCurve_sns = new SNS(); foreach (Vector3 v3PntCurve in m_listPath_Spline) { __ProcessCurve_sns.AddNode(v3PntCurve); } bBuildCurve = __ProcessCurve_sns.BuildSpline_sns(); if (false == bBuildCurve) { Debug.Log("FALSE !! __ProcessCurve_sns.BuildSpline_sns()"); return(false); } m_ProcessCurve_Activate = __ProcessCurve_sns; } break; case E_TYPE_SPLINE.SPLINE_TIMEDUNIFORMSPLINE: { TNS __ProcessCurve_tns = new TNS(); foreach (Vector3 v3PntCurve in m_listPath_Spline) { __ProcessCurve_tns.AddNode(v3PntCurve); } bBuildCurve = __ProcessCurve_tns.BuildSpline_tns(); if (false == bBuildCurve) { Debug.Log("FALSE !! __ProcessCurve_tns.BuildSpline_tns()"); return(false); } m_ProcessCurve_Activate = __ProcessCurve_tns; } break; default: { Debug.Log("m_typeSplineCurve is not valid type."); m_ProcessCurve_Activate = null; return(false); } } // switch(m_typeSplineCurve) int iCntTime_Division = (int)(m_ProcessCurve_Activate.m_fmaxDistance * fDivisionWeight__ * multiply_adjust_divisionWeight); m_arrSectionCurve = new Vector3[iCntTime_Division]; //@ First, Last Position are we just knew. m_arrSectionCurve[0] = m_listPath_Spline[0]; m_arrSectionCurve[iCntTime_Division - 1] = m_listPath_Spline[m_listPath_Spline.Count - 1]; for (int iSeq = 1; iSeq <= iCntTime_Division - 1; ++iSeq) { float fT = (float)iSeq / (float)iCntTime_Division; Vector3 v3PosNew_Curve = new Vector3(); v3PosNew_Curve = m_ProcessCurve_Activate.GetPositionSpline(fT); m_arrSectionCurve[iSeq] = v3PosNew_Curve; } m_bBuildedCurve = true; return(true); } // public bool BuildupCurve_spline(E_TYPE_SPLINE eTypeCurve)