static int srTraj3d(void* p_void) { int res = 0; srTIgorTrj3dInputStruct* pStr = (srTIgorTrj3dInputStruct*)p_void; double *pOutBtxData=0, *pOutXData=0, *pOutBtyData=0, *pOutYData=0, *pOutBtzData=0, *pOutZData=0; int hStateHorAng, hStateHorCoor, hStateLongDer, hStateLongCoor, hStateVerAng, hStateVerCoor; int iElecBeam = 0, iMagFld = 0; try { int ns; double sStart, sStep; ProcErr(srTIgorSend::GetTrj3dDataPointers(pStr->wOutHorAng, pStr->wOutHorCoor, pStr->wOutLongDer, pStr->wOutLongCoor, pStr->wOutVerAng, pStr->wOutVerCoor, pOutBtxData, pOutXData, pOutBtyData, pOutYData, pOutBtzData, pOutZData, ns, sStart, sStep, hStateHorAng, hStateHorCoor, hStateLongDer, hStateLongCoor, hStateVerAng, hStateVerCoor)); ProcErr(srTIgorSend::GetAndSetElecBeamThin(&iElecBeam, pStr->wElectronBeam)); ProcErr(srTIgorSend::GetAndSetMagFieldGen(&iMagFld, pStr->wField)); ProcErr(srElecTrjComp(pOutBtxData, pOutXData, pOutBtyData, pOutYData, pOutBtzData, pOutZData, ns, sStart, sStep, iElecBeam, iMagFld)); DeleteObjects(iElecBeam, iMagFld); ProcErr(srTIgorSend::FinishWorkingWithTrj3dDataPointers(pStr->wOutHorAng, pStr->wOutHorCoor, pStr->wOutLongDer, pStr->wOutLongCoor, pStr->wOutVerAng, pStr->wOutVerCoor, hStateHorAng, hStateHorCoor, hStateLongDer, hStateLongCoor, hStateVerAng, hStateVerCoor)); } catch(int ErrNo) { if(res = srTIgorSend::FinishWorkingWithTrj3dDataPointers(pStr->wOutHorAng, pStr->wOutHorCoor, pStr->wOutLongDer, pStr->wOutLongCoor, pStr->wOutVerAng, pStr->wOutVerCoor, hStateHorAng, hStateHorCoor, hStateLongDer, hStateLongCoor, hStateVerAng, hStateVerCoor)) return res; DeleteObjects(iElecBeam, iMagFld); return ErrNo; } return 0; }
static int srWfrCSR(void* p_void) { srTIgorUtiWfrCSR* pStr = (srTIgorUtiWfrCSR*)p_void; int iElecBeam = 0, iMagFld = 0, iWfrSmp = 0; srTSRWRadInData SRWRadInData; try { ProcErr(srTIgorSend::GetSRWRadInData(pStr->wRad, &SRWRadInData)); ProcErr(srTIgorSend::GetAndSetMagFieldGen(&iMagFld, pStr->wField)); ProcErr(srTIgorSend::GetAndSetWfrSampling(&iWfrSmp, pStr->wObservation)); ProcErr(srTIgorSend::GetAndSetElecBeamGen(&iElecBeam, pStr->wElectronBeam)); double arPrecParam[8]; double *pPrecParam = arPrecParam; long auxNp = 0; ProcErr(srTIgorSend::GetArrDoubleFromNumWave1D(pStr->wIntPar, 8, pPrecParam, auxNp)); ProcErr(csrElecFldCompExt(&SRWRadInData, iElecBeam, iMagFld, iWfrSmp, arPrecParam)); ProcErr(srTIgorSend::FinishWorkingWithSRWRadStruct(&SRWRadInData)); DeleteObjects(iElecBeam, iMagFld, iWfrSmp); } catch(int ErrNo) { srTIgorSend::FinishWorkingWithSRWRadStruct(&SRWRadInData); DeleteObjects(iElecBeam, iMagFld, iWfrSmp); return ErrNo; } return 0; }
// // ShutdownGL // - place all memory releases and stuff here // void ShutdownGL(void) { DeleteObjects(); ShutdownLights(); DeleteObjects(); ShutdownFireAnts(); ShutdownWorld(); Delete_Wall_List(); Delete_Col_List(); // destroy particle set Destroy_ParticleSet(); Super_KillText(); // Call after shutdown fireants Super_KillFires(); Super_DeleteNetwork(); // This should probably be close to last Super_KillGlobals(); DestroyGlobals(); } // end of the function
static int srStokesArb(void* p_void) { srTIgorStokesArbInputStruct* pStr = (srTIgorStokesArbInputStruct*)p_void; int iElecBeam = 0, iMagFld = 0, iWfrSmp = 0; srTParPrecStokesArb PrecStokesArb; srTSRWStokesInData StokesInData; try { ProcErr(srTIgorSend::GetAndSetElecBeamThick(&iElecBeam, pStr->wElectronBeam)); ProcErr(srTIgorSend::GetAndSetMagFieldGen(&iMagFld, pStr->wGenMagField)); ProcErr(srTIgorSend::GetAndSetWfrSampling(&iWfrSmp, pStr->wObservation)); ProcErr(srTIgorSend::GetPrecParamStokesArbComp(pStr->wPrecPar, &PrecStokesArb)); ProcErr(srTIgorSend::GetSRWStokesInData(pStr->wStokes, &StokesInData)); ProcErr(srStokesCompExt(&StokesInData, iElecBeam, iMagFld, iWfrSmp, &PrecStokesArb)); ProcErr(srTIgorSend::FinishWorkingWithSRWStokesStruct(&StokesInData)); DeleteObjects(iElecBeam, iMagFld, iWfrSmp); } catch(int ErrNo) { srTIgorSend::FinishWorkingWithSRWStokesStruct(&StokesInData); DeleteObjects(iElecBeam, iMagFld, iWfrSmp); return ErrNo; } return 0; }
static int srLoop(void* p_void) { //SR.Send.SetIgorRadInputStruct((srTIgorRadInputStruct*)p_void); //return SR.ComputeSR_DirectOut(); srTIgorRadInputStruct* pStr = (srTIgorRadInputStruct*)p_void; int iElecBeam = 0, iMagFld = 0, iWfrSmp = 0; srTSRWRadInData SRWRadInData; try { ProcErr(srTIgorSend::GetSRWRadInData(pStr->wRad, &SRWRadInData)); double I, Neb, sElecBeam, Mom1Arr[6]; ProcErr(srTIgorSend::GetElecBeamThin(pStr->wElectronBeam, I, Neb, Mom1Arr, sElecBeam)); ProcErr(srElecBeamSet(&iElecBeam, I, Neb, Mom1Arr, 5, 0, 0, sElecBeam)); ProcErr(srTIgorSend::GetAndSetMagFieldGen(&iMagFld, pStr->wField)); ProcErr(srTIgorSend::GetAndSetWfrSampling(&iWfrSmp, pStr->wObservation)); bool AllowAutoChoiceOfNxNzForPropag = true; double NxNzOversamplingParam = 1.; ProcErr(srTIgorSend::GetPrecParamWfrSamplingForPropag(pStr->wAuxParam, AllowAutoChoiceOfNxNzForPropag, NxNzOversamplingParam)); int IntegMethNo = 2; double RelPrecOrStep = 0.005, sStartInt = 0., sEndInt = 0.; bool ShowProgrIndic = true; //ProcErr(srTIgorSend::GetPrecParamElectricFieldComp(pStr->wIntPar, IntegMethNo, RelPrecOrStep, sStartInt, sEndInt)); ProcErr(srTIgorSend::GetPrecParamElectricFieldComp(pStr->wIntPar, IntegMethNo, RelPrecOrStep, sStartInt, sEndInt, ShowProgrIndic)); //srTParPrecElecFld PrecElecFld(IntegMethNo, RelPrecOrStep, sStartInt, sEndInt, NxNzOversamplingParam); srTParPrecElecFld PrecElecFld(IntegMethNo, RelPrecOrStep, sStartInt, sEndInt, NxNzOversamplingParam, ShowProgrIndic); //OC180312 //int iWfr = 0; //ProcErr(srElecFldComp(&iWfr, iElecBeam, iMagFld, iWfrSmp, &PrecElecFld)); ProcErr(srElecFldCompExt(&SRWRadInData, iElecBeam, iMagFld, iWfrSmp, &PrecElecFld)); ProcErr(srTIgorSend::FinishWorkingWithSRWRadStruct(&SRWRadInData)); DeleteObjects(iElecBeam, iMagFld, iWfrSmp); } catch(int ErrNo) { srTIgorSend::FinishWorkingWithSRWRadStruct(&SRWRadInData); DeleteObjects(iElecBeam, iMagFld, iWfrSmp); return ErrNo; } return 0; }
void CAcctHierDlg::OnOrgListingMode() { m_rbEquipView.SetCheck( DISABLE ); m_rbListView.SetCheck( ENABLE ); m_rbPpkgsView.SetCheck( DISABLE ); m_rbPpkgsComp.SetCheck( DISABLE ); m_rbAlaCarteView.SetCheck( DISABLE ); /* CAMqa83432 Dynamic allocation of memory depending upon the number of accts in the hierarchy window*/ int nCountAcct; if (galHierCountAcctSelection(m_hAPI, m_iHierId, &nCountAcct, &m_lpError ) == GAL_FAILURE ) { EndWaitCursor(); CGuiMsg::GuiMessage(GUIMSG_ERROR_COUNTING_ACCOUNT); return; } m_iMaxAlaProducts = nCountAcct + 1; DeleteObjects(); BuildAcct(); }
bool CSimulate::On_Execute(void){ AssignParameters(); CalculateFire(); DeleteObjects(); return true; }//method
/**----------------------------------------------------------------------------- * 프로그램 시작점 *------------------------------------------------------------------------------ */ INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT ) { /// 윈도우 클래스 등록 WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, NULL, NULL, NULL, "BasicFrame", NULL }; RegisterClassEx( &wc ); /// 윈도우 생성 HWND hWnd = CreateWindow( "BasicFrame", WINDOW_TITLE, WS_OVERLAPPEDWINDOW, 100, 100, WINDOW_W, WINDOW_H, GetDesktopWindow(), NULL, wc.hInstance, NULL ); g_hwnd = hWnd; srand( GetTickCount() ); /// Direct3D 초기화 if( SUCCEEDED( InitD3D( hWnd ) ) ) { if( SUCCEEDED( InitObjects() ) ) { if( SUCCEEDED( InitGeometry() ) ) { /// 윈도우 출력 ShowWindow( hWnd, SW_SHOWDEFAULT ); UpdateWindow( hWnd ); /// 메시지 루프 MSG msg; ZeroMemory( &msg, sizeof(msg) ); while( msg.message!=WM_QUIT ) { /// 메시지큐에 메시지가 있으면 메시지 처리 if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } else /// 처리할 메시지가 없으면 Render()함수 호출 Render(); } } } } DeleteObjects(); UnregisterClass( "BasicFrame", wc.hInstance ); return 0; }
static int srStokesUnd(void* p_void) { //SR.Send.SetIgorPerStokesInputStruct((srTIgorPerStokesInputStruct*)p_void); //return SR.ComputePerStokes(); //int res = 0; srTIgorPerStokesInputStruct* pStr = (srTIgorPerStokesInputStruct*)p_void; int iElecBeam=0, iMagFld=0, iWfrSmp=0; srTSRWStokesInData StokesInData; try { ProcErr(srTIgorSend::GetAndSetElecBeamThick(&iElecBeam, pStr->wElectronBeam)); ProcErr(srTIgorSend::GetAndSetMagFieldGen(&iMagFld, pStr->wPerField)); ProcErr(srTIgorSend::GetAndSetWfrSampling(&iWfrSmp, pStr->wObservation)); int InitHarm, FinHarm; double Kns, Knphi; char IntensityOrFlux; ProcErr(srTIgorSend::GetPrecParamStokesPerComp(pStr->wPerIntPar, InitHarm, FinHarm, Kns, Knphi, IntensityOrFlux)); srTParPrecStokesPer PrecStokesPer(InitHarm, FinHarm, Kns, Knphi, IntensityOrFlux); ProcErr(srTIgorSend::GetSRWStokesInData(pStr->wStokes, &StokesInData)); //int iWfr = 0; //ProcErr(srStokesComp(&iWfr, iElecBeam, iMagFld, iWfrSmp, &PrecStokesPer)); ProcErr(srStokesCompExt(&StokesInData, iElecBeam, iMagFld, iWfrSmp, &PrecStokesPer)); ProcErr(srTIgorSend::FinishWorkingWithSRWStokesStruct(&StokesInData)); DeleteObjects(iElecBeam, iMagFld, iWfrSmp); } catch(int ErrNo) { srTIgorSend::FinishWorkingWithSRWStokesStruct(&StokesInData); DeleteObjects(iElecBeam, iMagFld, iWfrSmp); return ErrNo; } return 0; }
static int srPowDens(void* p_void) { //SR.Send.SetIgorPowDensInputStruct((srTIgorPowDensInputStruct*)p_void); //return SR.ComputePowerDensity(); int res = 0; srTIgorPowDensInputStruct* pStr = (srTIgorPowDensInputStruct*)p_void; int iElecBeam=0, iMagFld=0, iWfrSmp=0; srTSRWPowDensInData SRWPowDensInData; if(res = srTIgorSend::GetSRWPowDensInData(pStr->wPowDens, &SRWPowDensInData)) return res; try { ProcErr(srTIgorSend::GetAndSetElecBeamThick(&iElecBeam, pStr->wElectronBeam)); ProcErr(srTIgorSend::GetAndSetMagFieldGen(&iMagFld, pStr->wGenMagField)); ProcErr(srTIgorSend::GetAndSetWfrSampling(&iWfrSmp, pStr->wObservation)); double PrecFact; int Method, UseSpecIntLim; double sIntStart, sIntFin; ProcErr(srTIgorSend::GetPrecParamPowDensComp(pStr->wPowDensIntPar, PrecFact, Method, UseSpecIntLim, sIntStart, sIntFin)); srTParPrecPowDens PrecPowDens(Method, PrecFact, UseSpecIntLim, sIntStart, sIntFin); //int iWfr = 0; //ProcErr(srPowDensComp(&iWfr, iElecBeam, iMagFld, iWfrSmp, &PrecPowDens)); ProcErr(srPowDensCompExt(&SRWPowDensInData, iElecBeam, iMagFld, iWfrSmp, &PrecPowDens)); ProcErr(srTIgorSend::FinishWorkingWithSRWPowDensStruct(&SRWPowDensInData)); DeleteObjects(iElecBeam, iMagFld, iWfrSmp); } catch(int ErrNo) { srTIgorSend::FinishWorkingWithSRWPowDensStruct(&SRWPowDensInData); DeleteObjects(iElecBeam, iMagFld, iWfrSmp); return ErrNo; } return 0; }
CDlg_Search::~CDlg_Search() { TRACE(_T("CDlg_Search Destroy\r\n")); m_vecRcmmWordList.clear(); if(m_nSearchTimer) KillTimer(m_nSearchTimer); if(m_nRecommTimer) KillTimer(m_nRecommTimer); if( m_BackBrush.m_hObject ) m_BackBrush.DeleteObject(); DeleteObjects(); }
static int srWfrGsnBeam(void* p_void) { //SR.Send.SetIgorGsnBeamInputStruct((srTIgorGsnBeamInputStruct*)p_void); //return SR.ComputeWfrGsnBeam(); //int res = 0; srTIgorGsnBeamInputStruct* pStr = (srTIgorGsnBeamInputStruct*)p_void; int iGsnBeam = 0, iWfrSmp = 0; srTSRWRadInData SRWRadInData; try { ProcErr(srTIgorSend::GetAndSetGaussianBeam(&iGsnBeam, pStr->wGsnBeam)); ProcErr(srTIgorSend::GetAndSetWfrSampling(&iWfrSmp, pStr->wObservation)); ProcErr(srTIgorSend::GetSRWRadInData(pStr->wRad, &SRWRadInData)); bool AllowAutoChoiceOfNxNzForPropag = true; double NxNzOversamplingParam = -1.; ProcErr(srTIgorSend::GetPrecParamWfrSamplingForPropag(pStr->wAuxParam, AllowAutoChoiceOfNxNzForPropag, NxNzOversamplingParam)); srTParPrecElecFldGaus PrecElecFldGaus(NxNzOversamplingParam); //int iWfr = 0; //ProcErr(srElecFldGausBeamComp(&iWfr, iGsnBeam, iWfrSmp, &PrecElecFldGaus)); ProcErr(srElecFldGausBeamCompExt(&SRWRadInData, iGsnBeam, iWfrSmp, &PrecElecFldGaus)); ProcErr(srTIgorSend::FinishWorkingWithSRWRadStruct(&SRWRadInData)); DeleteObjects(iWfrSmp, iGsnBeam); } catch(int ErrNo) { srTIgorSend::FinishWorkingWithSRWRadStruct(&SRWRadInData); DeleteObjects(iWfrSmp, iGsnBeam); return ErrNo; } return 0; }
void CAcctHierDlg::OnOrgPpkgscomp() { m_iBuildComponents = TRUE; m_rbEquipView.SetCheck( DISABLE ); m_rbListView.SetCheck( DISABLE ); m_rbPpkgsView.SetCheck( DISABLE ); m_rbPpkgsComp.SetCheck( ENABLE ); m_rbAlaCarteView.SetCheck( DISABLE ); /* CAMqa83432,83195*/ int nCountPpkgscomp; int nCountAcct; int nCountPpkgs; if (galHierCountAcctSelection(m_hAPI, m_iHierId, &nCountAcct, &m_lpError ) == GAL_FAILURE ) { EndWaitCursor(); CGuiMsg::GuiMessage(GUIMSG_ERROR_COUNTING_ACCOUNT); return; } if (galHierCountPkgSelection(m_hAPI, m_iHierId, &nCountPpkgs, &m_lpError ) == GAL_FAILURE ) { EndWaitCursor(); CGuiMsg::GuiMessage(GUIMSG_ERROR_COUNTING_PACKAGE); return; } if (galHierCountPkgCompSelection(m_hAPI, m_iHierId, &nCountPpkgscomp, &m_lpError ) == GAL_FAILURE ) { EndWaitCursor(); CGuiMsg::GuiMessage(GUIMSG_ERROR_COUNTING_PACKAGE_COMPONENTS); return; } m_iMaxAlaProducts = nCountAcct + nCountPpkgs+ nCountPpkgscomp + 1; DeleteObjects(); BuildAcct(); BuildPkgs(); m_iBuildComponents = FALSE; }
World::~World() { if(pCurrentCamera != NULL) { delete pCurrentCamera; } if(kdtree != NULL) { delete kdtree; } DeleteObjects(); DeleteLights(); DeleteMaterials(); }
// // ShutdownGL // - place all memory releases and stuff here // void ShutdownGL(void) { #if 1 KillFont(); // kill the font DeleteObjects(); ShutdownBots(); ShutdownFireAnts(); nest.shutdown(); trail_set.shutdown(); garden.shutdown(); ShutdownWorld(); // hope I got all these Delete_Wall_List(); Delete_Col_List(); // ShutdownLights(); Destroy_ParticleSet(); Super_KillText(); // Try to place code below -- Super_KillBots(); Super_KillFires(); // make sure thispretty close to last Super_KillGlobals(); DestroyGlobals(); #if ENABLE_CONSOLE KillConsole(); // kill launched console screen #endif #endif } // end of the function
void clutl::ParameterObjectCache::Init(const clcpp::Function* function) { DeleteObjects(); // Calculate the total space occupied by parameters unsigned int total_param_size = 0; for (unsigned int i = 0; i < function->parameters.size; i++) total_param_size += ParamAllocSize(function->parameters[i]); // Pre-allocate the data for the parameters m_Data.Reset(); m_Data.Alloc(total_param_size); // And put all write pointers back at the beginning m_Data.Reset(); m_Parameters.Reset(); }
void GameEngine::Run() { while(!_input->GetKey("ESC") && _process->WindowMessage() == 0) { _gameTime->UpdateTime(); _input->UpdateKey(); CheckCollision(); UpdateObject(); _renderer->Clear(); RenderObject(); _renderer->Flip(); DeleteObjects(); } }
void CUIGlobals::ClearTables() { // make sure all our gdi objects are deleted DeleteObjects(); // delete the tables, null the pointers, and zero the counters #define FREETABLE(member, memnum) \ { \ if (member != NULL) \ delete [] member; \ member = NULL; \ memnum = 0; \ } FREETABLE(m_pElement, m_nElements); FREETABLE(m_pFont, m_nFonts); FREETABLE(m_pBrush, m_nBrushes); FREETABLE(m_pPen, m_nPens); FREETABLE(m_pColor, m_nColors); }
CImage::~CImage() { CMD_PARMS parms; // notify the Image Forum that this image has been destroyed. ImageForum.NotifyImageChange(this, IMAGE_DESTROYED); if (AltObjList.lpHead) AlphaEditImage(this, &parms); // free up memory occupied by the image if (lpCmdList) DestroyCommandList(lpCmdList); // delete the image's object list if (ObjList.lpHead) // do we have any objects yet? DeleteObjects(NULL, NO); // free up memory occupied by images palette look-up-table if (lpPaletteLUT) FreeUp((LPTR)lpPaletteLUT); // free up the palette GDI object if (hPal) { // see if this is a palette that belongs to the image if (hPal != lpBltScreen->hGrayPal && hPal != lpBltScreen->hColorPal) ::DeleteObject(hPal); } // free up the brush cache if (hLastBrush) DestroyMgxBrush((HMGXBRUSH)hLastBrush); if( Control.CMSEnabled && m_cmsXform && lpKCMSFreeProc ) ( *lpKCMSFreeProc )( m_cmsXform ); if (lpClipObject) ObjFreeUp(lpClipObject); }
void AseFile::DeleteAll() { int i; DeleteObjects(); for( i=0; i<materials.size(); i++) { if(materials[i].pSubMaterials!=NULL) { delete [] materials[i].pSubMaterials; } } materials.clear(); for( i=0; i<textureNames.size(); i++) delete [] textureNames[i]; textureNames.clear(); if(tDiffuse)delete [] tDiffuse; tDiffuse = NULL; if(tNormal)delete [] tNormal; tNormal = NULL; if(tHeight)delete [] tHeight; tHeight = NULL; static_lights.clear(); }
void CGWIC_Cell::SetActive(bool on) { if (on == active) return; if (!terrain) return; std::cout << "Setting activation for cell " << posX; std::cout << " : " << posY; std::cout << " -> " << on << std::endl; if (on) { vector3df ps = getIrrlichtCenter(); ps.Y = 100 * GWIC_IRRUNITS_PER_METER; // ournodes.push_back(scManager->addLightSceneNode(NULL,ps,SColorf(1.f,1.f,1.f),1600,1)); IMesh* phyterr = TerrainToMesh(2); ournodes.push_back(scManager->addMeshSceneNode(phyterr)); ournodes.back()->setPosition(terrain->getPosition()); ournodes.back()->setVisible(false); terra_collision = new IBvhTriangleMeshShape(ournodes.back(),phyterr,0.f); phyterr->drop(); if (terra_collision) ourphys.push_back(phy_world->addRigidBody(terra_collision)); LoadObjectStates(); } else { while (ourphys.size() > 0) { phy_world->removeCollisionObject(ourphys.back(),true); //ourphys.back()->remove(); ourphys.pop_back(); } while (ournodes.size() > 0) { ournodes.back()->remove(); ournodes.pop_back(); } terrain->setTriangleSelector(NULL); SaveObjectStates(); DeleteObjects(); } active = on; }
///////////////////////////////////////////////////////////////////////////// // FUNCTION....: EditMenuDialogProc // // DESCRIPTION.: // ///////////////////////////////////////////////////////////////////////////// BOOL CALLBACK _export EditMenuDialogProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { BOOL result; OBJECTID objID; switch ( message ) { case WM_INITDIALOG: SetWindowLong(hDlg, DWL_USER, lParam); InitDialog(hDlg, (OBJECTID)lParam); AUtlSetTitleFont(OTYPE_MENU, NULL, GetDlgItem(hDlg, IDD_OBJECT)); AUtlCenterDialog(hDlg, 0); result = FALSE; break; case WM_COMMAND: objID = (OBJECTID)GetWindowLong(hDlg, DWL_USER); switch ( wParam ) { case IDOK: SetFocus(GetDlgItem(hDlg, IDOK)); UpdateObject(hDlg, objID); EndDialog(hDlg, TRUE); result = TRUE; break; case IDCANCEL: SetFocus(GetDlgItem(hDlg, IDCANCEL)); EndDialog(hDlg, FALSE); result = TRUE; break; case IDHELP: // WinHelp (hDlg, "serhelp.hlp", HELP_CONTEXT, HELPID_OBJD_Menu) ; result = TRUE; break; case BTN_DISPLAYNAME: case BTN_DISPLAYTITLE: LbTitleUpdate(hDlg, LB_SOURCE, TRUE); LbTitleUpdate(hDlg, LB_DESTINATION, TRUE); result = TRUE; break; case BTN_SHOWITEMS: case BTN_SHOWMENUS: LbContentUpdate(hDlg,objID); UpdateAddButton(hDlg); result = TRUE; break; case BTN_ADD: InsertObject(hDlg); UpdateAddButton(hDlg); UpdateSeparateButton(hDlg); result = TRUE; break; case BTN_REMOVE: DeleteObjects(hDlg); UpdateEditButton(hDlg); UpdateRemoveButton(hDlg); UpdateSeparateButton(hDlg); result = TRUE; break; case BTN_EDIT: EditObject(hDlg); LbTitleUpdate(hDlg, LB_SOURCE, TRUE); LbTitleUpdate(hDlg, LB_DESTINATION, TRUE); result = TRUE; break; case BTN_SEPARATOR: InsertSeparator(hDlg); result = TRUE; break; case LB_SOURCE: UpdateAddButton(hDlg); if (HIWORD(lParam) == LBN_DBLCLK) { InsertObject(hDlg); UpdateAddButton(hDlg); UpdateSeparateButton(hDlg); } result = TRUE; break; case LB_DESTINATION: UpdateRemoveButton(hDlg); UpdateEditButton(hDlg); if (HIWORD(lParam) == LBN_DBLCLK) { EditObject(hDlg); LbTitleUpdate(hDlg, LB_SOURCE, TRUE); LbTitleUpdate(hDlg, LB_DESTINATION, TRUE); } result = TRUE; break; default: result = FALSE; } break; default: result = FALSE; break; } return result; }
static void DeleteObjects(int Obj1, int Obj2, int Obj3, int Obj4, int Obj5) { int ObjsToDel[] = {Obj1, Obj2, Obj3, Obj4, Obj5}; DeleteObjects(ObjsToDel, 5); }
clutl::ParameterObjectCache::~ParameterObjectCache() { DeleteObjects(); }
Factory::~Factory() { DeleteObjects(); }
void C4GameObjects::Clear(bool fClearInactive) { DeleteObjects(); if (fClearInactive) InactiveObjects.Clear(); ResortProc = NULL; LastUsedMarker = 0; }
static int srElecBeamPropag(void* p_void) { //int res = 0; srTIgorElecBeamPropag* pStr = (srTIgorElecBeamPropag*)p_void; int iElecBeam = 0, iOptElem = 0; try { double I, Neb, s0_ebm, Mom1Arr[6], Mom2Arr[30]; double HorTwissArr[4], VertTwissArr[4], HorEmit, VertEmit; int nMom2; int TypeDistrTrans, TypeDistrLong; double NoiseFactor; ProcErr(srTIgorSend::GetElecBeamThick(pStr->wElectronBeam, I, Neb, Mom1Arr, Mom2Arr, nMom2, s0_ebm, TypeDistrTrans, TypeDistrLong, NoiseFactor)); ProcErr(srTIgorSend::GetElecBeamTwiss(pStr->wElectronBeam, HorTwissArr, VertTwissArr)); ProcErr(srElecBeamSet(&iElecBeam, I, Neb, Mom1Arr, 5, Mom2Arr, nMom2, s0_ebm)); double &SigmaX2 = Mom2Arr[0], &MixMomX = Mom2Arr[1], &SigmaPrimeX2 = Mom2Arr[2]; double &SigmaZ2 = Mom2Arr[3], &MixMomZ = Mom2Arr[4], &SigmaPrimeZ2 = Mom2Arr[5]; double &SigmaE2 = Mom2Arr[10]; ProcErr(srElecBeamMom2EmitAndTwiss(&HorEmit, HorTwissArr, HorTwissArr + 1, SigmaX2, SigmaPrimeX2, MixMomX, SigmaE2, HorTwissArr[2], HorTwissArr[3])); ProcErr(srElecBeamMom2EmitAndTwiss(&VertEmit, VertTwissArr, VertTwissArr + 1, SigmaZ2, SigmaPrimeZ2, MixMomZ, SigmaE2, VertTwissArr[2], VertTwissArr[3])); vector<string> OptElemInfo; ProcErr(srTIgorSend::GetVectorOfStrings(pStr->wOptElem, &OptElemInfo)); int AmOfStrings = OptElemInfo.size(); if(AmOfStrings == 0) return 0; char** DescrArr = new char*[AmOfStrings]; for(int i=0; i<AmOfStrings; i++) { const char* CurStr = OptElemInfo[i].c_str(); if(CurStr == 0) continue; int CurLen = strlen(CurStr); if(CurLen == 0) continue; DescrArr[i] = new char[CurLen + 1]; strcpy(DescrArr[i], CurStr); } ProcErr(srOptElemSet(&iOptElem, DescrArr, &AmOfStrings, 0, 0)); ProcErr(srElecBeamPropagate(iElecBeam, iOptElem)); ProcErr(srElecBeamGet(&I, Mom1Arr, Mom2Arr, &s0_ebm, iElecBeam)); //BUG fixed: propagation in presence of dispersion (??!!): Eta chnages, EtaPrime stays constant //ProcErr(srElecBeamMom2EmitAndTwiss(&HorEmit, HorTwissArr, HorTwissArr + 1, SigmaX2, SigmaPrimeX2, MixMomX, SigmaE2, HorTwissArr[2], HorTwissArr[3])); //ProcErr(srElecBeamMom2EmitAndTwiss(&VertEmit, VertTwissArr, VertTwissArr + 1, SigmaZ2, SigmaPrimeZ2, MixMomZ, SigmaE2, VertTwissArr[2], VertTwissArr[3])); ProcErr(srElecBeamMomAndEmit2Twiss(HorTwissArr, HorTwissArr + 1, HorTwissArr + 2, &HorEmit, SigmaX2, SigmaPrimeX2, MixMomX, SigmaE2, HorTwissArr[3])); //EtaPrime is input only ProcErr(srElecBeamMomAndEmit2Twiss(VertTwissArr, VertTwissArr + 1, VertTwissArr + 2, &VertEmit, SigmaZ2, SigmaPrimeZ2, MixMomZ, SigmaE2, VertTwissArr[3])); //EtaPrime is input only ProcErr(srTIgorSend::SetElecBeamThick(pStr->wElectronBeam, I, Mom1Arr, Mom2Arr, s0_ebm, TypeDistrTrans, TypeDistrLong, NoiseFactor)); ProcErr(srTIgorSend::SetElecBeamEmitAndTwiss(pStr->wElectronBeam, HorEmit, VertEmit, HorTwissArr, VertTwissArr)); DeleteObjects(iElecBeam, iOptElem); for(int k=0; k<AmOfStrings; k++) { if(DescrArr[k] != 0) delete[] (DescrArr[k]); DescrArr[k] = 0; } if(DescrArr != 0) delete[] DescrArr; } catch(int ErrNo) { DeleteObjects(iElecBeam, iOptElem); return ErrNo; } return 0; }
void CUIGlobals::RecreateObjects() { DeleteObjects(); CreateObjects(); }
static int srMagArb2Per(void* p_void) { //int res = 0; srTIgorMagArb2Per* pStr = (srTIgorMagArb2Per*)p_void; int iMagArb=0, iMagPer=0; try { //double FieldAbsZeroTol = 1.E-12, sStartB, sStepB, *pBH, *pBV; //long NpB; //bool BHIsZero, BVIsZero; //ProcErr(srTIgorSend::GetMagFieldTransvUnif(pStr->wTrUnifMagField, FieldAbsZeroTol, sStartB, sStepB, NpB, pBH, BHIsZero, pBV, BVIsZero)); //ProcErr(srMagFldTrUnifSet(&iMagArb, sStartB, sStepB, NpB, pBH, pBV)); ProcErr(srTIgorSend::GetAndSetMagFieldGen(&iMagArb, pStr->wTrUnifMagField)); double RelPrec, MaxPerLen_m; int MaxAmOfHarm; ProcErr(srTIgorSend::GetPrecParamMagArb2Per(pStr->wPrecPar, RelPrec, MaxAmOfHarm, MaxPerLen_m)); ProcErr(srMagFldPerSetFromTrUnif(&iMagPer, iMagArb, RelPrec, MaxAmOfHarm, MaxPerLen_m)); double PerLength, TotLength, sCen, SpecPar, TaperPar_TU=0, PhaseSh_OK=0, Fund_keV_per_GeV2; int AmOfHarm, TypeOfUnd; // 0- infinite; 1- normal; 2- tapered; 3- optical clystron char Type; //'c'- conventional, 't'- tapered, 'k'- optical klystron, 'i'- infinite ProcErr(srMagFldPerGet(iMagPer, &PerLength, &TotLength, &sCen, &AmOfHarm, &Type, &SpecPar, &Fund_keV_per_GeV2)); if(Type == 'i') TypeOfUnd = 0; else if(Type == 'c') TypeOfUnd = 1; else if(Type == 't') { TypeOfUnd = 2; TaperPar_TU = SpecPar;} else if(Type == 'k') { TypeOfUnd = 3; PhaseSh_OK = SpecPar;} int* ArrHarmNo=0; char* ArrXorZ=0; double *ArrK=0, *ArrPhase=0; if(AmOfHarm > 0) { ArrHarmNo = new int[AmOfHarm]; ArrXorZ = new char[AmOfHarm]; ArrK = new double[AmOfHarm]; ArrPhase = new double[AmOfHarm]; ProcErr(srMagFldPerHarmGet(iMagPer, ArrHarmNo, ArrXorZ, ArrK, ArrPhase)); } if(AmOfHarm > 20) //limitation for Igor Pro { AmOfHarm = 20; ProcErr(TOO_LARGE_MAX_MAG_FIELD_HARMONIC_NUMBER); } ProcErr(srTIgorSend::SetMagFieldPeriodic(pStr->wPerMagField, PerLength, TotLength, AmOfHarm, ArrHarmNo, ArrXorZ, ArrK, ArrPhase, TypeOfUnd, TaperPar_TU, PhaseSh_OK, Fund_keV_per_GeV2)); if(ArrHarmNo != 0) delete[] ArrHarmNo; if(ArrXorZ != 0) delete[] ArrXorZ; if(ArrK != 0) delete[] ArrK; if(ArrPhase != 0) delete[] ArrPhase; DeleteObjects(iMagArb, iMagPer); } catch(int ErrNo) { DeleteObjects(iMagArb, iMagPer); return ErrNo; } return 0; }
/******************************************************************************** Destructor ********************************************************************************/ CGrid::~CGrid(void) { DeleteObjects(); }