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());
}
Exemplo n.º 2
0
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);
}
Exemplo n.º 3
0
void gV(void) {eV();}
Exemplo n.º 4
0
//================== ѕо шарову =========================================================
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;
}