void AttributeDelegate::setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const { if(editor != NULL) { if(dynamic_cast<QCheckBox*>(editor) != NULL) { SetModelData(dynamic_cast<QCheckBox*>(editor),model,index); } else if(dynamic_cast<QDoubleSpinBox*>(editor) != NULL) { SetModelData(dynamic_cast<QDoubleSpinBox*>(editor),model, index); } else if(dynamic_cast<QSpinBox*>(editor) != NULL) { SetModelData(dynamic_cast<QSpinBox*>(editor),model,index); } else if(dynamic_cast<AttributeEditor*>(editor) != NULL) { AttributeDelegate::list list; SetModelData(dynamic_cast<AttributeEditor*>(editor),model,index, list); } else if(dynamic_cast<QLineEdit*>(editor) != NULL) { SetModelData(dynamic_cast<QLineEdit*>(editor),model,index); } } }
void CScriptPlayerActor::SetupOnlineModelData() { if (x310_loadedCharIdx != x2e8_suitRes.GetCharacterNodeId() || !x64_modelData || !x64_modelData->HasAnimData()) { x2e8_suitRes.SetCharacterNodeId(x310_loadedCharIdx); SetModelData(std::make_unique<CModelData>(x2e8_suitRes)); CAnimPlaybackParms parms(x2e8_suitRes.GetDefaultAnim(), -1, 1.f, true); x64_modelData->AnimationData()->SetAnimation(parms, false); if (x354_24_setBoundingBox) SetBoundingBox(x64_modelData->GetBounds(GetTransform().getRotation())); } }
void CScriptPlayerActor::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) { switch (msg) { case EScriptObjectMessage::InitializedInArea: x354_31_deferOnlineLoad = true; if (x350_flags & 0x8) { const CGameArea* area = mgr.GetWorld()->GetAreaAlways(x4_areaId); ++const_cast<CGameArea::CPostConstructed*>(area->GetPostConstructed())->x113c_playerActorsLoading; x355_24_areaTrackingLoad = true; } if (GetActive()) { SetupEnvFx(mgr, true); SetIntoStateManager(mgr, true); } break; case EScriptObjectMessage::Activate: if (!GetActive()) { if (x350_flags & 0x1) LoadSuit(GetNextSuitCharIdx(mgr)); SetIntoStateManager(mgr, true); SetupEnvFx(mgr, true); x354_30_enableLoading = true; } break; case EScriptObjectMessage::Increment: if (x350_flags & 0x1) { x354_25_deferOnlineModelData = false; x354_26_deferOfflineModelData = true; mgr.GetPlayer().AsyncLoadSuit(mgr); } break; case EScriptObjectMessage::Deactivate: if (GetActive()) { if (!(x350_flags & 0x10)) SetIntoStateManager(mgr, false); SetupEnvFx(mgr, false); } if (!(x350_flags & 0x4)) break; [[fallthrough]]; case EScriptObjectMessage::Reset: if (GetActive() || msg == EScriptObjectMessage::Reset) { x30c_setBeamId = CPlayerState::EBeamId::Invalid; x310_loadedCharIdx = -1; x314_beamModelData.reset(); x318_suitModelData.reset(); x31c_beamModel = TLockedToken<CModel>(); x320_suitModel = TLockedToken<CModel>(); x324_suitSkin = TLockedToken<CSkinRules>(); x328_backupModelData = TLockedToken<CSkinnedModel>(); x338_phazonIndirectTexture = TLockedToken<CTexture>(); x348_deallocateBackupCountdown = 0; x350_flags &= ~0x1; x354_25_deferOnlineModelData = false; x354_26_deferOfflineModelData = false; x354_27_beamModelLoading = false; x354_28_suitModelLoading = false; x354_30_enableLoading = false; SetModelData(std::make_unique<CModelData>(CModelData::CModelDataNull())); } break; case EScriptObjectMessage::Deleted: SetIntoStateManager(mgr, false); break; default: break; } CScriptActor::AcceptScriptMsg(msg, uid, mgr); }
void CScriptPlayerActor::Think(float dt, CStateManager& mgr) { auto& pState = *mgr.GetPlayerState(); if (x354_31_deferOnlineLoad) { x354_25_deferOnlineModelData = true; x354_31_deferOnlineLoad = false; x308_suit = pState.GetCurrentSuitRaw(); LoadSuit(GetSuitCharIdx(mgr, x308_suit)); } if (x354_30_enableLoading) { if (!(x350_flags & 0x1)) { u32 tmpIdx = GetSuitCharIdx(mgr, pState.GetCurrentSuitRaw()); if (tmpIdx != x310_loadedCharIdx) { SetModelData(std::make_unique<CModelData>(CModelData::CModelDataNull())); LoadSuit(tmpIdx); x354_25_deferOnlineModelData = true; } } LoadBeam(x304_beam != CPlayerState::EBeamId::Invalid ? x304_beam : pState.GetCurrentBeam()); if (x354_27_beamModelLoading) PumpBeamModel(mgr); if (x354_28_suitModelLoading) PumpSuitModel(mgr); if (!x354_29_loading) { if (x354_28_suitModelLoading || x354_27_beamModelLoading || !x64_modelData || x64_modelData->IsNull() || !x64_modelData->IsLoaded(0)) x354_29_loading = true; } if (x354_29_loading && !x354_28_suitModelLoading && !x354_27_beamModelLoading && x64_modelData && !x64_modelData->IsNull() && x64_modelData->IsLoaded(0)) { if (x355_24_areaTrackingLoad) { const CGameArea* area = mgr.GetWorld()->GetAreaAlways(x4_areaId); --const_cast<CGameArea::CPostConstructed*>(area->GetPostConstructed())->x113c_playerActorsLoading; x355_24_areaTrackingLoad = false; } x354_29_loading = false; SendScriptMsgs(EScriptObjectState::Arrived, mgr, EScriptObjectMessage::None); } } if (x2e8_suitRes.GetCharacterNodeId() == 3) { if (!x338_phazonIndirectTexture) x338_phazonIndirectTexture = g_SimplePool->GetObj("PhazonIndirectTexture"); } else { if (x338_phazonIndirectTexture) x338_phazonIndirectTexture = TLockedToken<CTexture>(); } if (x338_phazonIndirectTexture) { x34c_phazonOffsetAngle += 0.03f; x34c_phazonOffsetAngle = zeus::CRelAngle(x34c_phazonOffsetAngle).asRel(); } CScriptActor::Think(dt, mgr); }
Image2D TestSetGenerator::MakeTestSet(int number, Mask2D& rfi, unsigned width, unsigned height, int gaussianNoise) { Image2D image; switch(number) { case 0: // Image of all zero's return Image2D::MakeZeroImage(width, height); case 1: // Image of all ones image = Image2D::MakeUnsetImage(width, height); image.SetAll(1.0); break; case 2: // Noise return MakeNoise(width, height, gaussianNoise); case 3: { // Several broadband lines image = MakeNoise(width, height, gaussianNoise); AddBroadbandToTestSet(image, rfi, 1.0); } break; case 4: { // Several broadband lines image = MakeNoise(width, height, gaussianNoise); AddBroadbandToTestSet(image, rfi, 0.5); } break; case 5: { // Several broadband lines of random length image = MakeNoise(width, height, gaussianNoise); AddVarBroadbandToTestSet(image, rfi); } break; case 6: { // Different broadband lines + low freq background image = MakeNoise(width, height, gaussianNoise); AddVarBroadbandToTestSet(image, rfi); for(unsigned y=0;y<image.Height();++y) { for(unsigned x=0;x<image.Width();++x) { image.AddValue(x, y, sinn(num_t(x)*M_PIn*5.0 / image.Width()) + 0.1); } } } break; case 7: { // Different broadband lines + high freq background image = MakeNoise(width, height, gaussianNoise); for(unsigned y=0;y<image.Height();++y) { for(unsigned x=0;x<image.Width();++x) { image.AddValue(x, y, sinn((long double) (x+y*0.1)*M_PIn*5.0L / image.Width() + 0.1)); image.AddValue(x, y, sinn((long double) (x+pown(y, 1.1))*M_PIn*50.0L / image.Width() + 0.1)); } } AddVarBroadbandToTestSet(image, rfi); for(unsigned y=0;y<image.Height();++y) { for(unsigned x=0;x<image.Width();++x) { image.AddValue(x, y, 1.0); } } } break; case 8: { // Different droadband lines + smoothed&subtracted high freq background image = MakeNoise(width, height, gaussianNoise); for(unsigned y=0;y<image.Height();++y) { for(unsigned x=0;x<image.Width();++x) { image.AddValue(x, y, sinn((num_t) (x+y*0.1)*M_PIn*5.0 / image.Width() + 0.1)); image.AddValue(x, y, sinn((num_t) (x+pown(y, 1.1))*M_PIn*50.0 / image.Width() + 0.1)); } } SubtractBackground(image); AddVarBroadbandToTestSet(image, rfi); } break; case 9: { //FFT of 7 image = MakeTestSet(7, rfi, width, height); Image2D copy(image); FFTTools::CreateHorizontalFFTImage(image, copy, false); for(unsigned y=0;y<rfi.Height();++y) { for(unsigned x=0;x<rfi.Width();++x) { image.SetValue(x, y, image.Value(x, y) / sqrtn(image.Width())); } } } break; case 10: { // Identity matrix image = Image2D::MakeZeroImage(width, height); unsigned min = width < height ? width : height; for(unsigned i=0;i<min;++i) { image.SetValue(i, i, 1.0); rfi.SetValue(i, i, true); } } break; case 11: { // FFT of identity matrix image = MakeTestSet(10, rfi, width, height); Image2D copy(image); FFTTools::CreateHorizontalFFTImage(image, copy, false); for(unsigned y=0;y<rfi.Height();++y) { for(unsigned x=0;x<rfi.Width();++x) { image.SetValue(x, y, image.Value(x, y) / sqrtn(width)); } } } break; case 12: { // Broadband contaminating all channels image = MakeNoise(width, height, gaussianNoise); for(unsigned y=0;y<image.Height();++y) { for(unsigned x=0;x<image.Width();++x) { image.AddValue(x, y, sinn((num_t) (x+y*0.1)*M_PIn*5.0 / image.Width() + 0.1)); image.AddValue(x, y, sinn((num_t) (x+powl(y, 1.1))*M_PIn*50.0 / image.Width() + 0.1)); } } AddBroadbandToTestSet(image, rfi, 1.0); } break; case 13: { // Model of three point sources with broadband RFI SetModelData(image, rfi, 3); Image2D noise = MakeNoise(image.Width(), image.Height(), gaussianNoise); image += noise; AddBroadbandToTestSet(image, rfi, 1.0); } break; case 14: { // Model of five point sources with broadband RFI SetModelData(image, rfi, 5); Image2D noise = MakeNoise(image.Width(), image.Height(), gaussianNoise); image += noise; AddBroadbandToTestSet(image, rfi, 1.0); } break; case 15: { // Model of five point sources with partial broadband RFI SetModelData(image, rfi, 5); Image2D noise = MakeNoise(image.Width(), image.Height(), gaussianNoise); image += noise; AddBroadbandToTestSet(image, rfi, 0.5); } break; case 16: { // Model of five point sources with random broadband RFI SetModelData(image, rfi, 5); Image2D noise = MakeNoise(image.Width(), image.Height(), gaussianNoise); image += noise; AddVarBroadbandToTestSet(image, rfi); } break; case 17: { // Background-fitted model of five point sources with random broadband RFI SetModelData(image, rfi, 5); Image2D noise = MakeNoise(image.Width(), image.Height(), gaussianNoise); image += noise; SubtractBackground(image); AddVarBroadbandToTestSet(image, rfi); } break; case 18: { // Model of three point sources with random RFI SetModelData(image, rfi, 3); Image2D noise = MakeNoise(image.Width(), image.Height(), gaussianNoise); image += noise; AddVarBroadbandToTestSet(image, rfi); } break; case 19: { // Model of three point sources with noise SetModelData(image, rfi, 3); Image2D noise = MakeNoise(image.Width(), image.Height(), gaussianNoise); image += noise; } break; case 20: { // Model of five point sources with noise SetModelData(image, rfi, 5); Image2D noise = MakeNoise(image.Width(), image.Height(), gaussianNoise); image += noise; } break; case 21: { // Model of three point sources SetModelData(image, rfi, 3); } break; case 22: { // Model of five point sources image = Image2D::MakeZeroImage(width, height); SetModelData(image, rfi, 5); } break; case 23: image = MakeNoise(width, height, gaussianNoise); AddBroadbandToTestSet(image, rfi, 0.5, 0.1, true); break; case 24: image = MakeNoise(width, height, gaussianNoise); AddBroadbandToTestSet(image, rfi, 0.5, 10.0, true); break; case 25: image = MakeNoise(width, height, gaussianNoise); AddBroadbandToTestSet(image, rfi, 0.5, 1.0, true); break; case 26: { // Several Gaussian broadband lines image = MakeNoise(width, height, gaussianNoise); AddBroadbandToTestSet(image, rfi, 1.0, 1.0, false, GaussianShape); } break; case 27: { // Several Sinusoidal broadband lines image = MakeNoise(width, height, gaussianNoise); AddBroadbandToTestSet(image, rfi, 1.0, 1.0, false, SinusoidalShape); } break; case 28: { // Several slewed Gaussian broadband lines image = MakeNoise(width, height, gaussianNoise); AddSlewedBroadbandToTestSet(image, rfi, 1.0); } break; case 29: { // Several bursty broadband lines image = MakeNoise(width, height, gaussianNoise); AddBurstBroadbandToTestSet(image, rfi); } break; case 30: { // noise + RFI ^-2 distribution image = sampleRFIDistribution(width, height, 1.0); rfi.SetAll<true>(); } break; case 31: { // noise + RFI ^-2 distribution image = sampleRFIDistribution(width, height, 0.1); rfi.SetAll<true>(); } break; case 32: { // noise + RFI ^-2 distribution image = sampleRFIDistribution(width, height, 0.01); rfi.SetAll<true>(); } break; } return image; }