void KisCanvasResourceProvider::setHDRExposure(float exposure) { m_resourceManager->setResource(HdrExposure, static_cast<double>(exposure)); KisExposureVisitor eV(exposure); m_view->image()->projection()->colorSpace()->profile()->setProperty("exposure", exposure); m_view->image()->rootLayer()->accept(eV); m_view->canvasBase()->updateCanvas(); m_view->canvasBase()->startUpdateCanvasProjection(m_view->image()->bounds()); }
bool Elasticity::evalSol (Vector& s, const FiniteElement& fe, const Vec3& X, const std::vector<int>& MNPC) const { // Extract element displacements Vectors eV(1); int ierr = 0; if (!primsol.empty() && !primsol.front().empty()) if ((ierr = utl::gather(MNPC,nsd,primsol.front(),eV.front()))) { std::cerr <<" *** Elasticity::evalSol: Detected "<< ierr <<" node numbers out of range."<< std::endl; return false; } return this->evalSol2(s,eV,fe,X); }
void gV(void) {eV();}
//================== ѕо шарову ========================================================= CMatrix CMatrix::Inverse_Sharov() { if ( Data == NULL ) return CMatrix(); if ( Rows != Columns) return CMatrix(); // ----------- double cv; // ----------- CMatrix Vp = CMatrix(Rows, 1); CMatrix Vk = CMatrix(Rows, 1); CMatrix Pv = CMatrix(Rows, 1); CMatrix H0 = CMatrix(Rows, 1); CMatrix Sv = CMatrix(Rows, 1); CMatrix Result = CMatrix(Rows, Rows); CMatrix Mvs = CMatrix(Rows, Rows); CMatrix Mv = CMatrix(Rows, Rows); // ----------- if (Rows == 1) { Result.Data[0][0] = 1 / Data[0][0]; return Result; } // ----------- for (int i = 0; i < Rows; i++) H0.Data[i][0] = (i+1)*(i+1) + 1; // ---- !!!! ---- hz 1 () for (int l = 0; l < Rows; l++){ for (int k = 0; k < Rows - 1; k++) for (int i = 0; i < Rows; i++) if (k < l) Mvs.Data[i][k] = Data[i][k ]; else Mvs.Data[i][k] = Data[i][k+1]; // ------- for (int i = 0; i < Rows; i++) Pv.Data[i][0] = Mvs.Data[i][0]; eV(&Pv, Rows, &Vp); for (int i = 0; i < Rows; i++) Mv.Data[i][0] = Vp.Data[i][0]; for (int k = 1; k < Rows - 1; k++){ for (int i = 0; i < Rows; i++) Pv.Data[i][0] = Mvs.Data[i][k]; for (int i = 0; i < Rows; i++) Sv.Data[i][0] = 0.0; for (int m = 0; m <= k - 1; m++) { for (int i = 0; i < Rows; i++) Vp.Data[i][0] = Mv.Data[i][m]; suv(&Pv, &Vp, Rows, &cv); ucvV(cv,&Vp, Rows, &Vk); for (int i = 0; i < Rows; i++) Sv.Data[i][0] = Vk.Data[i][0]+Sv.Data[i][0]; } for (int i = 0; i < Rows; i++) Vk.Data[i][0] = Pv.Data[i][0]-Sv.Data[i][0]; eV(&Vk, Rows,&Vp); for (int i = 0; i < Rows; i++) Mv.Data[i][k] = Vp.Data[i][0]; } double cv = 0.0; for (int i = 0; i < Rows; i++) Sv.Data[i][0] = cv; for (int m = 0; m < Rows - 1; m++){ for (int i = 0; i < Rows; i++) Vp.Data[i][0] = Mv.Data[i][m]; suv(&H0,&Vp, Rows, &cv); ucvV(cv,&Vp, Rows, &Pv); for (int i = 0; i < Rows; i++) Sv.Data[i][0] = Pv.Data[i][0] + Sv.Data[i][0]; } for (int i = 0; i < Rows; i++) Pv.Data[i][0] = H0.Data[i][0]-Sv.Data[i][0]; eV(&Pv, Rows, &Vp); for (int i = 0; i < Rows; i++) Pv.Data[i][0] = Data[i][l]; suv(&Vp,&Pv, Rows, &cv); ucvV(cv, &Vp, Rows, &Vk); double mad = cv * cv; for (int i = 0; i < Rows; i++) { Result.Data[i][l] = ( mad != 0 ) ? Vk.Data[i][0] / mad : 0; } } for (int i = 0; i < Rows; i++) for (int j = 0; j < Rows; j++) Mv.Data[i][j] = Result.Data[j][i]; for (int i = 0; i < Rows; i++) for (int j = 0; j < Rows; j++){ Result.Data[i][j] = Mv.Data[i][j]; } return Result; }