您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ trans函数代码示例

51自学网 2021-06-03 08:56:59
  C++
这篇教程C++ trans函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中trans函数的典型用法代码示例。如果您正苦于以下问题:C++ trans函数的具体用法?C++ trans怎么用?C++ trans使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了trans函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: sr2k

 M1 & sr2k (M1 &m1, const T1 &t1, const T2 &t2, const M2 &m2, const M3 &m3) {     return m1 = t1 * m1 + t2 * (prod (m2, trans (m3)) + prod (m3, trans (m2))); }
开发者ID:Amplifying,项目名称:intensityengine,代码行数:4,


示例2: errorCode

// Try LocalXyzPointer types with NULL pointers.void LocalPointerTest::TestLocalXyzPointerNull() {    {        IcuTestErrorCode errorCode(*this, "TestLocalXyzPointerNull/LocalUConverterSelectorPointer");        static const char *const encoding="ISO-8859-1";        LocalUConverterSelectorPointer null;        LocalUConverterSelectorPointer sel(            ucnvsel_open(&encoding, 1, NULL, UCNV_ROUNDTRIP_SET, errorCode));        sel.adoptInstead(NULL);    }#if !UCONFIG_NO_FORMATTING    {        IcuTestErrorCode errorCode(*this, "TestLocalXyzPointerNull/LocalUCalendarPointer");        LocalUCalendarPointer null;        LocalUCalendarPointer cal(ucal_open(NULL, 0, "root", UCAL_GREGORIAN, errorCode));        if(!errorCode.logDataIfFailureAndReset("ucal_open()")) {            cal.adoptInstead(NULL);        }    }    {        IcuTestErrorCode errorCode(*this, "TestLocalXyzPointerNull/LocalUDateTimePatternGeneratorPointer");        LocalUDateTimePatternGeneratorPointer null;        LocalUDateTimePatternGeneratorPointer patgen(udatpg_open("root", errorCode));        patgen.adoptInstead(NULL);    }    {        IcuTestErrorCode errorCode(*this, "TestLocalXyzPointerNull/LocalUMessageFormatPointer");        UnicodeString hello=UNICODE_STRING_SIMPLE("Hello {0}!");        LocalUMessageFormatPointer null;        LocalUMessageFormatPointer msg(            umsg_open(hello.getBuffer(), hello.length(), "root", NULL, errorCode));        msg.adoptInstead(NULL);    }#endif /* !UCONFIG_NO_FORMATTING */#if !UCONFIG_NO_REGULAR_EXPRESSIONS    {        IcuTestErrorCode errorCode(*this, "TestLocalXyzPointerNull/LocalURegularExpressionPointer");        UnicodeString pattern=UNICODE_STRING_SIMPLE("abc|xy+z");        LocalURegularExpressionPointer null;        LocalURegularExpressionPointer regex(            uregex_open(pattern.getBuffer(), pattern.length(), 0, NULL, errorCode));        if(!errorCode.logDataIfFailureAndReset("urege_open()")) {            regex.adoptInstead(NULL);        }    }#endif /* !UCONFIG_NO_REGULAR_EXPRESSIONS */#if !UCONFIG_NO_TRANSLITERATION    {        IcuTestErrorCode errorCode(*this, "TestLocalXyzPointerNull/LocalUTransliteratorPointer");        UnicodeString id=UNICODE_STRING_SIMPLE("Grek-Latn");        LocalUTransliteratorPointer null;        LocalUTransliteratorPointer trans(            utrans_openU(id.getBuffer(), id.length(), UTRANS_FORWARD, NULL, 0, NULL, errorCode));        if(!errorCode.logDataIfFailureAndReset("utrans_openU()")) {            trans.adoptInstead(NULL);        }    }#endif /* !UCONFIG_NO_TRANSLITERATION */}
开发者ID:simul,项目名称:icu,代码行数:62,


示例3: QgsPoint

void QgsGrassNewMapset::setSelectedRegion(){  // mRegionsPoints are in EPSG 4326 = LL WGS84  int index = 2 * mRegionsComboBox->currentIndex();  std::vector<QgsPoint> points;  // corners ll lr ur ul  points.push_back( QgsPoint( mRegionsPoints[index] ) );  points.push_back( QgsPoint( mRegionsPoints[index+1].x(),                              mRegionsPoints[index].y() ) );  points.push_back( QgsPoint( mRegionsPoints[index+1] ) );  points.push_back( QgsPoint( mRegionsPoints[index].x(),                              mRegionsPoints[index+1].y() ) );  // Convert to currently selected coordinate system  // Warning: seems that crashes if source == dest  if ( mProjectionSelector->selectedCrsId() != GEOCRS_ID )  {    // Warning: QgsCoordinateReferenceSystem::EpsgCrsId is broken (using epsg_id)    //QgsCoordinateReferenceSystem source ( 4326, QgsCoordinateReferenceSystem::EpsgCrsId );    QgsCoordinateReferenceSystem source = QgsCoordinateReferenceSystem::fromSrsId( GEOCRS_ID );    if ( !source.isValid() )    {      QgsGrass::warning( tr( "Cannot create QgsCoordinateReferenceSystem" ) );      return;    }    QgsCoordinateReferenceSystem dest = QgsCoordinateReferenceSystem::fromSrsId( mProjectionSelector->selectedCrsId() );    if ( !dest.isValid() )    {      QgsGrass::warning( tr( "Cannot create QgsCoordinateReferenceSystem" ) );      return;    }    QgsCoordinateTransform trans( source, dest );    bool ok = true;    for ( int i = 0; i < 4; i++ )    {      QgsDebugMsg( QString( "%1,%2->" ).arg( points[i].x() ).arg( points[i].y() ) );      try      {        points[i] = trans.transform( points[i] );        QgsDebugMsg( QString( "%1,%2" ).arg( points[i].x() ).arg( points[i].y() ) );      }      catch ( QgsCsException &cse )      {        Q_UNUSED( cse );        QgsDebugMsg( "Cannot transform point" );        ok = false;        break;      }    }    if ( !ok )    {      QgsGrass::warning( tr( "Cannot reproject selected region." ) );      return;    }  }  double n = -90.0, s = 90.0, e = -180.0, w = 180.0;  if ( mCellHead.proj == PROJECTION_LL )  {    n = points[2].y();    s = points[0].y();    e = points[1].x();    w = points[0].x();    if ( n > 90 )      n = 90;    if ( s < -90 )      s = -90;#if 0    if ( e > 180 )      e = 180;    if ( w < -180 )      w = 180;#endif  }  else  {    for ( int i = 0; i < 4; i++ )    {      if ( i == 0 || points[i].y() > n )        n = points[i].y();      if ( i == 0 || points[i].y() < s )        s = points[i].y();      if ( i == 0 || points[i].x() > e )        e = points[i].x();      if ( i == 0 || points[i].x() < w )        w = points[i].x();    }  }//.........这里部分代码省略.........
开发者ID:kukupigs,项目名称:QGIS,代码行数:101,


示例4: LinearSolverInternal

  CSparseCholeskyInternal::CSparseCholeskyInternal(const CRSSparsity& sparsity, int nrhs)  : LinearSolverInternal(sparsity,nrhs){    L_ = 0;    S_ = 0;    casadi_assert_message(sparsity==trans(sparsity),"CSparseCholeskyInternal: supplied sparsity must be symmetric, got " << sparsity.dimString() << ".");  }
开发者ID:Snkrnryn,项目名称:casadi,代码行数:6,


示例5: Feff

//**********************************************************************void IsotropicPlaneStressWrinkling::CalculateCauchyStresses(    Vector& Cauchy_StressVector,    const Matrix& F,    const Vector& PK2_StressVector,    const Vector& GreenLagrangeStrainVector){    //compute effective thickness variation    Vector EffectiveStrain =  GreenLagrangeStrainVector;    Matrix Feff(2,2);    if (MathUtils<double>::Norm3(mEw) != 0)    {        EffectiveStrain += mEw;        //double emin=0.00; double emax=0.00;        Vector vmin;        Vector vmax;        Matrix Finv(2,2);        double Fdet;        MathUtils<double>::InvertMatrix2(F,Finv,Fdet);        Matrix wwt(2,2);        Matrix Ewrink(2,2);        Ewrink(0,0) = mEw[0];        Ewrink(0,1) = mEw[2]*0.5;        Ewrink(1,0) = mEw[2]*0.5;        Ewrink(1,1) = mEw[1];        noalias(wwt) = prod( Ewrink, trans(Finv) );        wwt = prod(Finv, wwt);        std::cout << "oribbbbbbbbbile" << std::endl;//			noalias(wwt) = prod( Finv, prod( Ewrink, trans(Finv) ) ); std::cout << "efficiency" << std::endl;//			noalias(wwt) = prod( Finv, prod<Matrix>(Ewrink,trans(Finv)) );//			Matrix::MatMulAndAdd_B_D_Btrans(wwt,Finv,Ewrink);        double alpha = fabs(wwt(0,0) + wwt(1,1));        wwt /= alpha;        double beta = -1.00 + sqrt(2*alpha+1.00);        noalias(Feff) = prod(wwt,F);        //Matrix::MatMul(Feff,wwt,F);        Feff *= beta;        Feff += F;    }    else    {        Feff = F;    }    double epsz = ((mNU)/(1-mNU))*(EffectiveStrain[0] + EffectiveStrain[1]);    double h_h0_ratio = sqrt(1-2.00*epsz);    double DetF = MathUtils<double>::Det2(Feff);    Matrix S(2,2);    S(0,0) = PK2_StressVector[0];    S(0,1) = PK2_StressVector[2];    S(1,0) = PK2_StressVector[2];    S(1,1) = PK2_StressVector[1];    Matrix s(2,2);    noalias(s) = prod(Feff, Matrix(prod(S, trans(Feff)) ) );    std::cout << "efficienza!!" << std::endl;//		noalias(s) = prod(Feff, prod<Matrix>(S, trans(Feff) ) );//		Matrix::MatMulAndAdd_B_D_Btrans(s,Feff,S); //s = F*S*Ftrans    Cauchy_StressVector[0] = s(0,0);    Cauchy_StressVector[1] = s(1,1);    Cauchy_StressVector[2] = s(0,1);    Cauchy_StressVector /= DetF * h_h0_ratio;}
开发者ID:KratosCSIC,项目名称:trunk,代码行数:66,


示例6: prod

    // Accumulate from L_AB_t    auto sboxi = source_tree.box_begin(L_max - L);    for (auto&& L_AB : local[tbox]) {      source_box_type sbox = *sboxi;      ++sboxi;      const point_type& s_center  = sbox.center();      target_box_type pbox = sbox.parent();      const point_type& p_center = pbox.center();      int p_idx = pbox.index() - source_tree.box_begin(pbox.level())->index();      // Multiply  lhs_j += LgM_ij L_AB_i      lhs.fill(0);      prod(trans(LgM), L_AB, lhs);      // Precompute phase * L_AB   TODO: can reuse L_AB?      auto li = std::begin(lhs);      auto ci = std::begin(c_cheb);      for (auto&& L_AcBp_i : local[cbox][p_idx]) {        L_AcBp_i += *li *  unit_polar(_M_ * (K.phase(*ci, s_center) -                                             K.phase(*ci, p_center)));        ++li; ++ci;      }    }  }};
开发者ID:ronojoy,项目名称:fmmtl,代码行数:27,


示例7: diff

double diff(const vec& x, const mat& A, const vec& b) {  return diff(trans(A), x, b);}
开发者ID:0xDEC0DE8,项目名称:mcsema,代码行数:3,


示例8: Animate

void Animate(){    //Show FPS    //showFpsCounter();    if(bAnim == true)    {        static OSG::Real64   t0 = OSG::getSystemTime();                OSG::Real64          t = OSG::getSystemTime() - t0;                OSG::Real32          rot0 = t * 0.25;        if(rot0 > 360.0)            rot0 -= 360.0;                OSG::Real32          rota = t * 0.5;        if(rota > 360.0)            rota -= 360.0;                OSG::Real32          rotb = t * 1.0;        if(rotb > 360.0)            rotb -= 360.0;                OSG::Real32          rotc = t * 1.5;        if(rotc > 360.0)            rotc -= 360.0;                OSG::Real32          rotd = t * 2.0;        if(rotd > 360.0)            rotd -= 360.0;                //    _light2_trans->editMatrix().setTranslate(-100.0*sin(rota),-100.0*cos(rota), 250.0);                //animate Trees        OSG::Quaternion      q;                q.setValueAsAxisRad(1, 1, 1, 0.5 * sin(rota));        _tree1_trans->editMatrix().setRotate(q);        _tree1_trans->editMatrix().setScale(OSG::Vec3f(12.0, 12.0, 10.0));                q.setIdentity();                q.setValueAsAxisRad(1, 1, 1, 0.5 * sin(rotc));        _tree2_trans->editMatrix().setRotate(q);        _tree2_trans->editMatrix().setScale(OSG::Vec3f(12.0, 12.0, 10.0));                q.setIdentity();                q.setValueAsAxisRad(1, 1, 1, 0.5 * sin(rotb));        _tree3_trans->editMatrix().setRotate(q);        _tree3_trans->editMatrix().setScale(OSG::Vec3f(12.0, 12.0, 10.0));                q.setIdentity();                q.setValueAsAxisRad(1, 1, 1, 0.5 * sin(rotb));        _tree4_trans->editMatrix().setRotate(q);        _tree4_trans->editMatrix().setScale(OSG::Vec3f(12.0, 12.0, 10.0));                q.setIdentity();                q.setValueAsAxisRad(1, 1, 1, 0.5 * sin(rotc));        _tree5_trans->editMatrix().setRotate(q);        _tree5_trans->editMatrix().setScale(OSG::Vec3f(12.0, 12.0, 10.0));                q.setIdentity();                q.setValueAsAxisRad(1, 1, 1, 0.5 * sin(rotb));        _tree6_trans->editMatrix().setRotate(q);        _tree6_trans->editMatrix().setScale(OSG::Vec3f(12.0, 12.0, 10.0));                q.setIdentity();                q.setValueAsAxisRad(1, 1, 1, 0.5 * sin(rotd));        _tree7_trans->editMatrix().setRotate(q);        _tree7_trans->editMatrix().setScale(OSG::Vec3f(12.0, 12.0, 10.0));                q.setIdentity();                q.setValueAsAxisRad(1, 1, 1, 0.5 * sin(rotb));        _tree8_trans->editMatrix().setRotate(q);        _tree8_trans->editMatrix().setScale(OSG::Vec3f(12.0, 12.0, 10.0));                q.setIdentity();                q.setValueAsAxisRad(1, 1, 1, 0.5 * sin(rotc));        _tree9_trans->editMatrix().setRotate(q);        _tree9_trans->editMatrix().setScale(OSG::Vec3f(12.0, 12.0, 10.0));                q.setIdentity();                {            OSG::Matrix  m;            m.setIdentity();            OSG::Vec3f   scale(0.15f,0.15f,0.15f);            OSG::Vec3f   trans(-40.0 * sin(rotb),-40.0 * cos(rotb),                          50.0 + 25.0 * sin(rotd));            q.setValueAsAxisRad(0, 0, 1, -rotb);            m.setTransform(trans, q, scale);            _obj1_trans->setMatrix(m);        }//.........这里部分代码省略.........
开发者ID:Himbeertoni,项目名称:OpenSGDevMaster,代码行数:101,


示例9: BaseImage

bool BaseSurfaceOSystem::finishLoad() {	BaseImage *image = new BaseImage();	if (!image->loadFile(_filename)) {		delete image;		return false;	}	_width = image->getSurface()->w;	_height = image->getSurface()->h;	bool isSaveGameGrayscale = scumm_strnicmp(_filename.c_str(), "savegame:", 9) == 0 && (_filename.c_str()[_filename.size() - 1] == 'g' || _filename.c_str()[_filename.size() - 1] == 'G');	if (isSaveGameGrayscale) {		warning("grayscaleConversion not yet implemented");		// FIBITMAP *newImg = FreeImage_ConvertToGreyscale(img); TODO	}	// no alpha, set color key	/*  if (surface->format.bytesPerPixel != 4)	        SDL_SetColorKey(surf, SDL_TRUE, SDL_MapRGB(surf->format, ck_red, ck_green, ck_blue));*/	// convert 32-bit BMPs to 24-bit or they appear totally transparent (does any app actually write alpha in BMP properly?)	// Well, actually, we don't convert via 24-bit as the color-key application overwrites the Alpha-channel anyhow.	_surface->free();	delete _surface;	bool needsColorKey = false;	bool replaceAlpha = true;	if (_filename.hasSuffix(".bmp") && image->getSurface()->format.bytesPerPixel == 4) {		_surface = image->getSurface()->convertTo(g_system->getScreenFormat(), image->getPalette());		needsColorKey = true;		replaceAlpha = false;	} else if (image->getSurface()->format.bytesPerPixel == 1 && image->getPalette()) {		_surface = image->getSurface()->convertTo(g_system->getScreenFormat(), image->getPalette());		needsColorKey = true;	} else if (image->getSurface()->format.bytesPerPixel >= 3 && image->getSurface()->format != g_system->getScreenFormat()) {		_surface = image->getSurface()->convertTo(g_system->getScreenFormat());		if (image->getSurface()->format.bytesPerPixel == 3) {			needsColorKey = true;		}	} else {		_surface = new Graphics::Surface();		_surface->copyFrom(*image->getSurface());		if (_surface->format.aBits() == 0) {			needsColorKey = true;		}	}		if (needsColorKey) {		TransparentSurface trans(*_surface);		trans.applyColorKey(_ckRed, _ckGreen, _ckBlue, replaceAlpha);	}	_hasAlpha = hasTransparency(_surface);	_valid = true;	_gameRef->addMem(_width * _height * 4);	delete image;	_loaded = true;	return true;}
开发者ID:Fyre91,项目名称:scummvm,代码行数:63,


示例10: mStepXY

GMCube::GMCube(std::string aName)  :    mP0     (0,0),    mSz     (20000,20000),    aFp     ( aName.c_str(),ELISE_fp::READ),    mX0     ( aFp.read_REAL8()),    mY0     ( aFp.read_REAL8()),    mZ0     ( aFp.read_REAL8()),    mStepXY ( aFp.read_REAL8()),    mStepZ  ( aFp.read_REAL8()),    mTx     ( aFp.read_INT4()),    mTy     ( aFp.read_INT4()),    mTz     ( aFp.read_INT4()),    mIZmin  ( mTx, mTy),    mIZmax  ( mTx, mTy),    mZoom   (1.0),    mW      (Video_Win::WStd(Pt2di(mTx,mTy),mZoom)),    mW2     (Video_Win::WStd(Pt2di(mTx,mTy),mZoom)),    mW3     (Video_Win::WStd(Pt2di(200,100),mZoom)),    mW4     (Video_Win::WStd(Pt2di(mTx,mTy),mZoom)),    mDisp   (mW2.disp()){   mSz = Inf(mSz,Pt2di(mTx,mTy));   INT aNbZ =0;   long aDeb = aFp.tell();   INT aMaxZ =0;   INT aVMax = -1000000;   INT aVMin = 100000;   for(INT y=0;y<mTy;++y)   {      for(INT x=0;x<mTx;++x)      {          INT2 zM  = aFp.read_INT2();          INT2 aN  = aFp.read_INT2();          mIZmin.data()[y][x] = zM;          mIZmax.data()[y][x] = zM+aN;          ElSetMax(aMaxZ ,(INT) aN);          for (INT z=0 ; z<aN ; z++)          {              INT2 aVal =  aFp.read_INT2();              ElSetMin(aVMin,aVal);              ElSetMax(aVMax,aVal);          }          aNbZ += aN;      }   }   cout << "NbZ = " << aNbZ <<  "  " << mStepZ << "/n";   pSCA =     cInterfaceCoxAlgo::StdNewOne              (                  mSz,                  trans(mIZmin.in(),mP0),                  trans(mIZmax.in(),mP0),                  2,                  true              );cout << "AAAAAAAAAAAAa/n";      aFp.seek_begin(aDeb);   Im2D_INT2 zCor(mTx,mTy);   Im2D_U_INT1 CorMax(mTx,mTy);   for(INT y=0;y<mTy;++y)   {      for(INT x=0;x<mTx;++x)      {          INT2 z1  = aFp.read_INT2();          INT2 z2  = z1+aFp.read_INT2();           INT cMax = -100000;          INT zMax = z1;          bool OkP2 = (x>=mP0.x) && (x<mP0.x+mSz.x) && (y>=mP0.y) && (y<mP0.y+mSz.y);          for (INT z=z1 ; z<z2 ; z++)          {              INT2 aVal =  aFp.read_INT2();              if (aVal > cMax)              {                   cMax = aVal;                   zMax = z;              }              aVal = round_ni((aVMax-aVal)/(aVMax/100.0));              if (OkP2)                  pSCA->SetCost(Pt3di(x-mP0.x,y-mP0.y,z),aVal);          }          zCor.data()[y][x] = zMax;          CorMax.data()[y][x] = (INT)(255 * (1.0-cMax/900.0));      }   }   cout << "VALS = [" << aVMin << " , " << aVMax << "]/n";//.........这里部分代码省略.........
开发者ID:jakexie,项目名称:micmac,代码行数:101,


示例11: hb

hObj hb(const rowvec &eta,       const rowvec &data, const mat &iS,       const rowvec &mu0, const rowvec &mu1, const rowvec &mu2,       const rowvec &lambda0,        const rowvec &lambda1,        const rowvec &lambda2,       const rowvec &beta0,       const rowvec &beta1,       const rowvec &beta2,       const rowvec &gamma,       const rowvec &gamma2,       int fast=0) {    unsigned ny=mu0.n_elem+mu1.n_elem+mu2.n_elem;  int k=3+ny;  colvec h(k);  unsigned pos=2;  unsigned dpos = 0;  //  cerr << "mu0" << endl;  for (unsigned i=0; i<mu0.n_elem; i++) {    pos++;    //    cerr << data(dpos) << "; ";    h(pos) = data(dpos)-mu0(i)-lambda0(i)*eta(0);    dpos++;  }  //  cerr << "mu1" << endl;  for (unsigned i=0; i<mu1.n_elem; i++) {    pos++;    //    cerr << data(dpos) << "; ";    h(pos) = data(dpos)-mu1(i)-lambda1(i)*eta(1);    dpos++;  }  //  cerr << "mu2" << endl;  for (unsigned i=0; i<mu2.n_elem; i++) {    pos++;    //    cerr << data(dpos) << "; ";    h(pos) = data(dpos)-mu2(i)-lambda2(i)*eta(2);    dpos++;  }  double zeta2 = eta(2)-gamma(0)*eta(0)-gamma(1)*eta(0)*eta(0);  double zeta1 = eta(1)-gamma2(0)*eta(0)-gamma2(1)*eta(0)*eta(0);  double zeta0 = eta(0);  // cerr << "dpos=" << dpos << endl;  // cerr << "mu0=" << mu0 << endl;  // cerr << "mu1=" << mu1 << endl;  // cerr << "mu2=" << mu2 << endl;  //  cerr << "beta" << endl;  for (unsigned i=0; i<beta0.n_elem; i++) {    //    cerr << data(dpos) << "; ";    zeta0 -= beta0(i)*data(dpos);    dpos++;  }  for (unsigned i=0; i<beta1.n_elem; i++) {    zeta1 -= beta1(i)*data(dpos);    dpos++;  }  for (unsigned i=0; i<beta2.n_elem; i++) {    zeta2 -= beta2(i)*data(dpos);    dpos++;  }  h(0) = zeta0;  h(1) = zeta1;  h(2) = zeta2;  mat iSh = iS*h;  hObj res;  res.h = h;  res.hSh = -0.5*as_scalar(trans(h)*iSh);  if (fast==1)     return(res);    mat D = zeros(k,3);  D(0,0) = 1;  D(1,0) = -gamma2(0)-2*gamma2(1)*eta(0); D(2,0) = -gamma(0)-2*gamma(1)*eta(0);  D(1,1) = 1; D(2,2) = 1;  //  D[1,1] = 1; D[2,2] = 1;  pos = 3;  for (unsigned i=0; i<mu0.n_elem; i++) {    D(pos,0) = -lambda0(i);    pos++;  }  for (unsigned i=0; i<mu1.n_elem; i++) {    D(pos,1) = -lambda1(i);    pos++;  }  for (unsigned i=0; i<mu2.n_elem; i++) {    D(pos,2) = -lambda2(i);    pos++;  }  // cerr << "D=/n" << D << endl;  mat dS = -trans(D)*iS;    res.grad = dS*h;  res.hess = dS*D;  //mat dummy = trans(iSh)*d2eta0;  //res.hess(0,0) -= dummy[0];  res.hess(0,0) -= -2*gamma(1)*iSh(2) - 2*gamma2(1)*iSh(1);  return(res);}
开发者ID:rforge,项目名称:lava,代码行数:97,


示例12: switch

void RecordedCamera::moveCamera_mouse(int x, int y){    Quat newQuat;    const unsigned int widthViewport = p_widthViewport.getValue();    const unsigned int heightViewport = p_heightViewport.getValue();    if (isMoving)    {        if (currentMode == TRACKBALL_MODE)        {            float x1 = (2.0f * widthViewport / 2.0f - widthViewport) / widthViewport;            float y1 = (heightViewport- 2.0f *heightViewport / 2.0f) /heightViewport;            float x2 = (2.0f * (x + (-lastMousePosX + widthViewport / 2.0f)) - widthViewport) / widthViewport;            float y2 = (heightViewport- 2.0f * (y + (-lastMousePosY +heightViewport / 2.0f))) /heightViewport;            currentTrackball.ComputeQuaternion(x1, y1, x2, y2);            //fetch rotation            newQuat = currentTrackball.GetQuaternion();            Vec3 pivot;            switch (p_pivot.getValue())            {            case WORLD_CENTER_PIVOT:                pivot = Vec3(0.0, 0.0, 0.0);                break;            case SCENE_CENTER_PIVOT :            default:                pivot = sceneCenter;                break;            }            BaseCamera::rotateWorldAroundPoint(newQuat, pivot, this->getOrientation());        }        else if (currentMode == ZOOM_MODE)        {            Vec3 trans(0.0, 0.0, -p_zoomSpeed.getValue() * (y - lastMousePosY) / heightViewport);            trans = cameraToWorldTransform(trans);            translate(trans);            translateLookAt(trans);        }        else if (currentMode == PAN_MODE)        {            Vec3 trans(lastMousePosX - x,  y-lastMousePosY, 0.0);            trans = cameraToWorldTransform(trans)*p_panSpeed.getValue();            translate(trans);            translateLookAt(trans);        }        //must call update afterwards        lastMousePosX = x;        lastMousePosY = y;    }    else if (currentMode == WHEEL_ZOOM_MODE)    {        Vec3 trans(0.0, 0.0, -p_zoomSpeed.getValue() * (y*0.5) / heightViewport);        trans = cameraToWorldTransform(trans);        translate((trans));        translateLookAt(trans);        currentMode = NONE_MODE;    }    computeZ();}
开发者ID:FabienPean,项目名称:sofa,代码行数:62,


示例13: collisionBoundingBox

bool collisionBoundingBox(Ball &ball, bool debugVisual, Peg &peg){	GLfloat collisionDist = INFINITY;	GLfloat cornerDist;	int cornerIndex = -1;		Point2f *vertices = new Point2f[5];	vertices[0].setXY(peg.radius + peg.position._x, peg.radius + peg.position._y);	vertices[1].setXY(peg.radius + peg.position._x, -peg.radius + peg.position._y);	vertices[2].setXY(-peg.radius + peg.position._x, -peg.radius + peg.position._y);	vertices[3].setXY(-peg.radius + peg.position._x, peg.radius +  peg.position._y);	vertices[4].setXY(peg.radius + peg.position._x, peg.radius + peg.position._y);		Point2f * orthogVecs = new Point2f[4];	orthogVecs[0].setXY(1.0, 0.0);	orthogVecs[0].setXY(0.0, -1.0);	orthogVecs[0].setXY(-1.0, 0.0);	orthogVecs[0].setXY(0.0, 1.0);		//Vector parallel to hit box edge remainder;	Point2f hitRemaidner;		//Component orthogonal to hit box edge	GLfloat orthogDist;		//Component paraell to hit box edge	GLfloat hitRemainderDist;		//Caluclate the ball's position in transformed co-ordinates	Point2f orig(ball.position._x - peg.position._x, ball.position._y - peg.position._y);		Point2f trans(cosf(peg.rotation) * orig._x + sinf(peg.rotation) * orig._y, 	-sin(peg.rotation) * orig._x + cosf(peg.rotation) * orig._y);		for(int i = 0; i < 4; i++)	{		orthogDist = dotProduct(orthogVecs[i], trans);		hitRemaidner._x = trans._x - orthogDist * orthogVecs[i]._x;		hitRemaidner._y = trans._y - orthogDist * orthogVecs[i]._y;		hitRemainderDist = hitRemaidner.magnitude();		//std::cout << "hitRemainderDist : "<<  hitRemainderDist << std::endl;		//std::cout << "peg.Radius : "<<  peg.radius << std::endl;		if(orthogDist >= 0.0 && hitRemainderDist <= peg.radius)		{						glColor3f(1.0f, 0.0f, 0.0f);			collisionDist = orthogDist - (peg.radius + ball.radius);		}		else		{			glColor3f(1.0f, 1.0f, 1.0f);		}				if(debugVisual)		{			glBegin(GL_LINES);			glVertex2f(vertices[i]._x, vertices[i]._y);			glVertex2f(vertices[i+1]._x, vertices[i+1]._y);			glEnd();		}					}	/*check Corners */	if(collisionDist == INFINITY)	{		for(int i = 0; i < 4; i++)		{			cornerDist = sqrt((trans._x - vertices[i]._x) 			* (trans._x - vertices[i]._x) + (trans._y - vertices[i]._y)			* (trans._y - vertices[i]._y)) - ball.radius;						if(cornerDist < collisionDist)			{				cornerIndex = i;				collisionDist = cornerDist;			}					}				if(debugVisual)		{			glColor3f(1.0f, 0.0f, 0.0f);			glPointSize(3);			glBegin(GL_POINTS);			glVertex2f(vertices[cornerIndex]._x, vertices[cornerIndex]._y);			glEnd();		}			}//	std::cout << "collisionDist : "<<  collisionDist << std::endl;	if(collisionDist > 0.0)		return false;	else		return true;}
开发者ID:doomscout,项目名称:RTRASSIGN3,代码行数:95,


示例14: H1_error

        double H1_error(const space_ptrtype & Xh, const element_type & T, const double & values) const        {            // replace params by specified values            ex solution = getSolution(values);            auto gradg = expr<1,Dim,2>(grad(solution,vars), vars );            auto mesh = Xh->mesh();            double L2error = L2_error(Xh, T, values);            double H1seminorm = math::sqrt( integrate( elements(mesh), Px()*(gradv(T) - gradg)*trans(gradv(T) - gradg) ).evaluate()(0,0) );            return math::sqrt( L2error*L2error + H1seminorm*H1seminorm);        }
开发者ID:dbarbier,项目名称:feelpp,代码行数:12,


示例15: read_dem

DEM read_dem (){int c;DEM f, a, b, d, x;int i;char buf[200];DEM s;DEM d1;int flags1;DEM used1;extern DEM used;loop:	do c = readchar ();	while (c==' ' || c=='/t' || c=='/n' || c==0);	switch (c)	{		case 'I': return I;		case 'K': return K;		case 'S': return S;		case 'E': return E;		case 'F': return If;		case 'O': return Ord;		case '-':			f = read_dem ();			a = read_dem ();			return ap (f, a);		case '/':			a = read_dem ();			b = read_dem ();			return transym (a, b);                case 'T':                        a = read_dem ();                        b = read_dem ();                        return trans (a, b);                case 'X':                        a = read_dem ();                        return sym (a);                case '#':                        a = read_dem ();                        b = read_dem ();                        return Axm (a, b);		case 'i':			a = read_dem ();			return defI (a);		case 'k':			a = read_dem ();			b = read_dem ();			return defK (a, b);		case 's':			a = read_dem ();			b = read_dem ();                        d = read_dem ();                        return defS (a, b, d);                           case ')':                        a = read_dem ();                        b = read_dem ();                        return IfNode (a, b);                case '1': return Ext1;                case '2': return Ext2;                case '3': return Ext3;                case '4': return Ext4;                case '5': return Ext5;                case '6': return Ext6;		case 'e': return AE;                case 'f': return EA0;                        /*                        a = read_dem ();                                return EA (a);                        */                case 'm': return MP;                case 'a': return AI;                case 'b': return AK;                case 'c': return AS;                case 'r': return RPA;                case '0': return ZeroIsOrd;                case '+': return SucIsOrd;                case 'w': return LimIsOrd;                case 'p': return PredIsOrd;                case 'n': return StepIsOrd;                case 'W': return TfI;                                case '<':                        a = read_dem ();                        return left (a);                case '>':                        a = read_dem ();//.........这里部分代码省略.........
开发者ID:jbailhache,项目名称:log,代码行数:101,


示例16: interpret

///////////////// FUNCTIONS /////////////////void interpret(CREATURE *crit, char *buf){	CREATURE *xcrit=0;	OBJECT *obj=0;	SOCIAL *social=0;	EXIT *exit=0;	ROOM *room=0;	char command[MAX_BUFFER];	char temp[MAX_BUFFER];	char *pbuf = command;	char **arguments;	char **editargs;	long i = 0, x = 0;	long string = 0;	bool found = 0;	bool command_ok = 0;	bool social_ok = 0;	strcpy(temp,buf);	while( isspace(*buf) )		buf++;	// check for one character commands without spaces to 	// seperate arguments. - i.e. chat yo = .yo | pip	if(ispunct(*buf))		*pbuf++ = *buf++;	else	{		while( !isspace(*buf) && *buf != '/0' )			*pbuf++ = *buf++;	}	*pbuf = '/0';	while( isspace(*buf) )		buf++;	// moved exits before other commands - pip.	// insert full exit name for abbreviated one.	for( i = 0; directions[i].abbr; i++)	{		if (directions[i].abbr[0] != '/0' && !strcasecmp(command,directions[i].abbr))		{			sprintf(command,"%s",directions[i].name);			break;		}	}	if(!IsDisabled(crit))	{		for(exit = crit->in_room->exits; exit; exit = exit->next )		{			if( !strindex(exit->name, command) )			{				if((room = hashfind_room(exit->to_vnum)) == 0)				{					sendcrit(crit,"That exit enters into a domain far too powerful for you to handle.");					mudlog("exit(%s) in room(%s:%d) has bad to_vnum(%d)!",						exit->name, crit->in_room->name, crit->in_room->vnum,						exit->to_vnum);					continue;				}				if (exit->door >= DOOR_CLOSED && !IsImmortal(crit))				{					sendcritf(crit,"The %s door is closed.",exit->name);					return;				}				if (crit->rider)				{					sendcritf(crit,"You can't move on your own until %s dismounts you.",crit->rider->name);					return;				}				// adding mounts!				if (crit->mount)					message("$n ride$x $p on $N.",crit,crit->mount,exit->name);				else										message("$n leave$x $p.",crit,0,exit->name);				trans(crit,room);				if (crit->mount)				{					trans(crit->mount,crit);					message("$n arrive$x riding $N.",crit,crit->mount,crit->in_room);				}				message("$n $v arrived.",crit,crit->in_room,0);				interpret(crit,"look");				return;			}		}	}	// check if they in editor and get a successful return (edited something)	// otherwise let them use normal commands	if(IsEditing(crit))	{		if(crit->socket->string)		{//.........这里部分代码省略.........
开发者ID:borlak,项目名称:acmud,代码行数:101,


示例17: fproxyprotocol

const std::string ForumTemplateViewThreadPage::GenerateContent(const std::string &method, const std::map<std::string,QueryVar> &queryvars){	int postcount=0;	std::string fproxyprotocol("");	std::string fproxyhost("");	std::string fproxyport("");	std::string maincontent("");	std::string result("");	std::map<std::string,std::string> vars;	std::vector<std::pair<std::string,std::string> > breadcrumblinks;	std::string threadidstr("");	std::string boardidstr("");	std::string pagestr("");	std::string boardname("");	std::string firstunreadidstr("");	std::string threadpostrowodd("");	std::string threadpostroweven("");	std::string postrows("");	std::string threadpostattachment("");	std::string postattachments("");	std::string trusttable("");	bool showsignatures=false;	bool showavatars=false;	SQLite3DB::Transaction trans(m_db);	Option opt(m_db);	std::vector<std::string> skipspace;	SQLite3DB::Statement fileattachmentst=m_db->Prepare("SELECT Key, Size FROM tblMessageFileAttachment WHERE MessageID=?;");	SQLite3DB::Statement truststpeeronly=m_db->Prepare("SELECT PeerMessageTrust, PeerTrustListTrust FROM tblIdentity WHERE IdentityID=?;");	SQLite3DB::Statement truststboth=m_db->Prepare("SELECT tblIdentityTrust.LocalMessageTrust, tblIdentity.PeerMessageTrust, tblIdentityTrust.LocalTrustListTrust, tblIdentity.PeerTrustListTrust FROM tblIdentity LEFT JOIN tblIdentityTrust ON tblIdentity.IdentityID=tblIdentityTrust.IdentityID WHERE tblIdentity.IdentityID=? AND tblIdentityTrust.LocalIdentityID=?;");	opt.GetBool("ForumShowSignatures",showsignatures);	opt.GetBool("ForumShowAvatars",showavatars);	opt.Get("FProxyProtocol",fproxyprotocol);	opt.Get("FProxyHost",fproxyhost);	opt.Get("FProxyPort",fproxyport);	skipspace.push_back(" ");	if(queryvars.find("messageuuid")!=queryvars.end())	{		SQLite3DB::Statement st=m_db->Prepare("SELECT tblMessage.MessageID, tblThreadPost.ThreadID, tblThread.BoardID FROM tblMessage LEFT JOIN tblThreadPost ON tblMessage.MessageID=tblThreadPost.MessageID LEFT JOIN tblThread ON tblThreadPost.ThreadID=tblThread.ThreadID WHERE MessageUUID=?;");		st.Bind(0,(*queryvars.find("messageuuid")).second.GetData());		st.Step();		if(st.RowReturned())		{			int messageid=0;			int threadid=0;			int boardid=0;			st.ResultInt(2,boardid);			m_viewstate.SetBoardID(boardid);			if(st.ResultNull(1)==false)			{				st.ResultInt(1,threadid);				m_viewstate.SetThreadID(threadid);			}			else			{				m_viewstate.SetThreadID(0);			}		}		st.Finalize();	}	if(queryvars.find("threadid")!=queryvars.end())	{		int temp=0;		threadidstr=(*queryvars.find("threadid")).second.GetData();		StringFunctions::Convert(threadidstr,temp);		m_viewstate.SetThreadID(temp);	}	else	{		int temp=0;		temp=m_viewstate.GetThreadID();		StringFunctions::Convert(temp,threadidstr);	}	if(queryvars.find("page")!=queryvars.end())	{		pagestr=(*queryvars.find("page")).second.GetData();		int temp=0;		if(StringFunctions::Convert(pagestr,temp)==true)		{			m_viewstate.SetPage(temp);		}	}	else	{		int temp=0;		temp=m_viewstate.GetPage();		StringFunctions::Convert(temp,pagestr);	}	if(queryvars.find("boardid")!=queryvars.end())	{		boardidstr=(*queryvars.find("boardid")).second.GetData();		int temp=0;		if(StringFunctions::Convert(boardidstr,temp)==true)		{			m_viewstate.SetBoardID(temp);		}//.........这里部分代码省略.........
开发者ID:steveatinfincia,项目名称:fms,代码行数:101,


示例18: f_sur

//.........这里部分代码省略.........   	// Update the isotropicFactor vector	/*	// This way does not work!	int x_grow = 1;	if(fabs(f_sur(0) + dfx_iso) < fabs(f_sur(0)))	{		// opserr << "Softening!/n";		x_grow = -1;	}		int y_grow = 1;	if(fabs(f_sur(1) + dfy_iso) < fabs(f_sur(1)))		y_grow = -1;	*/	int x_grow = 1, y_grow = 1;	if(getIsoPlasticStiffness(0) < 0)		x_grow = -1;	if(getIsoPlasticStiffness(1) < 0)		y_grow = -1;		if(evolDebug)	{		opserr << "F_Surface Vector: " << f_sur;		opserr << "Fx_new = " << fx_new << ", Fy_new = " << fy_new << endln;		opserr << "Gradient: " << gl;	    opserr << "KpxIso = " << getIsoPlasticStiffness(0) << ", KpyIso = " <<  getIsoPlasticStiffness(1) << endln;	    opserr << "F_surf(1) = " << f_sur(1) << ", dfy_iso = " << dfy_iso << endln;	    opserr << "x_grow = " <<  x_grow << ", y_grow = " <<  y_grow << endln;	    opserr << "---------------------------------------------------------" << endln;     }	Vector mgnf(2);	mgnf = isotropicFactor_hist;	if(flag==1)		mgnf = isotropicFactor;	Vector delMag(2);		if(deformable)	{		delMag(0) = x_grow*fabs(dfx_iso);		delMag(1) = y_grow*fabs(dfy_iso);	}	else	{		double dR = sqrt(dfx_iso*dfx_iso + dfy_iso*dfy_iso);		if(!iso_harden)		dR = -1*dR;		delMag(0) = dR;		delMag(1) = dR;	}	Vector isoFact = mgnf + delMag;	//check 2: For min isotropic factor	 if( (isotropicFactor(0) + delMag(0)) <= minIsoFactor)	{		delMag(0) = 0.0;		dfx_kin = 0.0;        freezeEvolution = true;		if(!deformable)// nothing to do			return 0;	}	if( (isotropicFactor(1) + delMag(1)) <= minIsoFactor)	{		delMag(1) = 0.0;		dfy_kin = 0.0;		freezeEvolution = true;		if(!deformable)			return 0;	}	// update the translation vector	double fx_aim = f_sur(0) + dfx_kin;	double fy_aim = f_sur(1) + dfy_kin;    //cout << "YS_Evolution2D - F_Surface = " << F_Surface;	toOriginalCoord(fx_aim, fy_aim);	Vector f_aim(2);	f_aim(0) = fx_aim;	f_aim(1) = fy_aim;	v2 = getEvolDirection(f_aim);	Vector df_kin = ys->translationTo(f_aim, v2);	// correct for isotropic factor	Vector trans(2);	trans = translate_hist;	if(flag==1)		trans = translate;    // Update the quantities	translate(0) = trans(0) + df_kin(0)*isotropicFactor(0);	translate(1) = trans(1) + df_kin(1)*isotropicFactor(1);	isotropicFactor = mgnf + delMag;	return 0;}
开发者ID:DBorello,项目名称:OpenSees,代码行数:101,


示例19: minSize

void QSplitter::recalc( bool update ){    int fi = 2*frameWidth();    int maxl = fi;    int minl = fi;    int maxt = QWIDGETSIZE_MAX;    int mint = fi;    int n = data->list.count();    bool first = TRUE;    /*      The splitter before a hidden widget is always hidden.      The splitter before the first visible widget is hidden.      The splitter before any other visible widget is visible.    */    for ( int i = 0; i< n; i++ ) {	QSplitterLayoutStruct *s = data->list.at(i);	if ( !s->isSplitter ) {	    QSplitterLayoutStruct *p = (i > 0) ? data->list.at( i-1 ) : 0;	    if ( p && p->isSplitter )		if ( first || s->wid->isHidden() )		    p->wid->hide(); //may trigger new recalc		else		    p->wid->show(); //may trigger new recalc	    if ( !s->wid->isHidden() )		first = FALSE;	}    }    bool empty=TRUE;    for ( int j = 0; j< n; j++ ) {	QSplitterLayoutStruct *s = data->list.at(j);	if ( !s->wid->isHidden() ) {	    empty = FALSE;	    if ( s->isSplitter ) {		minl += s->sizer;		maxl += s->sizer;	    } else {		QSize minS = minSize(s->wid);		minl += pick( minS );		maxl += pick( s->wid->maximumSize() );		mint = QMAX( mint, trans( minS ));		int tm = trans( s->wid->maximumSize() );		if ( tm > 0 )		    maxt = QMIN( maxt, tm );	    }	}    }    if ( empty )	maxl = maxt = 0;    else	maxl = QMIN( maxl, QWIDGETSIZE_MAX );    if ( maxt < mint )	maxt = mint;    if ( orient == Horizontal ) {	setMaximumSize( maxl, maxt );	setMinimumSize( minl, mint );    } else {	setMaximumSize( maxt, maxl );	setMinimumSize( mint, minl );    }    if ( update )	doResize();}
开发者ID:opieproject,项目名称:opie,代码行数:64,


示例20: createGMSHMesh

voidBeam<nDim,nOrder>::run(){    this->changeRepository( boost::format( "doc/manual/solid/%1%/%2%/P%3%/h_%4%/" )                            % this->about().appName()                            % entity_type::name()                            % nOrder                            % meshSize );    /*     * First we create the mesh     */    mesh_ptrtype mesh = createGMSHMesh( _mesh=new mesh_type,                                        _update=MESH_UPDATE_EDGES|MESH_UPDATE_FACES|MESH_CHECK,                                        _desc=domain( _name=( boost::format( "beam-%1%" ) % nDim ).str() ,                                                      _shape="hypercube",                                                      _xmin=0., _xmax=0.351,                                                      _ymin=0., _ymax=0.02,                                                      _zmin=0., _zmax=0.02,                                                      _h=meshSize ) );    // add marker clamped to the mesh    mesh->addMarkerName( "clamped",( nDim==2 )?1:19, (nDim==2)?1:2);    mesh->addMarkerName( "tip",( nDim==2)?3:27, (nDim==2)?1:2);    /*     * The function space and some associate elements are then defined     */    timers["init"].first.restart();    space_ptrtype Xh = space_type::New( mesh );    Xh->printInfo();    element_type u( Xh, "u" );    element_type v( Xh, "v" );    timers["init"].second = timers["init"].first.elapsed();    /*     * Data associated with the simulation     */    auto E = doption(_name="E")*pascal;    const double nu = doption(_name="nu");    auto mu = E/( 2*( 1+nu ) );    auto lambda = E*nu/( ( 1+nu )*( 1-2*nu ) );    auto density = 1e3;    auto gravity = -2*newton/pow<Dim>(meter);//-density*0.05;    LOG(INFO) << "lambda = " << lambda << "/n"          << "mu     = " << mu << "/n"          << "gravity= " << gravity << "/n";    /*     * Construction of the right hand side     *     * /f$ f = /int_/Omega g * v /f$ where /f$ g /f$ is a vector     * directed in the /f$ y /f$ direction.     */    auto F = backend()->newVector( Xh );    F->zero();    timers["assembly"].first.restart();    if ( Dim == 3 )        form1( _test=Xh, _vector=F ) = integrate( elements( mesh ), trans( gravity.value()*oneZ() )*id( v ) );    else        form1( _test=Xh, _vector=F ) = integrate( elements( mesh ), trans( gravity.value()*oneY() )*id( v ) );    timers["assembly"].second = timers["assembly"].first.elapsed();    /*     * Construction of the left hand side     */    auto D = backend()->newMatrix( Xh, Xh );    timers["assembly"].first.restart();    auto deft = sym(gradt(u));    auto def = sym(grad(u));    auto a = form2( _test=Xh, _trial=Xh, _matrix=D );    a = integrate( elements( mesh ),                   lambda.value()*divt( u )*div( v )  +                   2.*mu.value()*trace( trans( deft )*def ) );    if ( M_bctype == 1 ) // weak Dirichlet bc    {        auto Id = eye<nDim>();        a += integrate( markedfaces( mesh, "clamped" ),                        - trans( ( 2.*mu.value()*deft+lambda.value()*trace( deft )*Id )*N() )*id( v )                        - trans( ( 2.*mu.value()*def+lambda.value()*trace( def )*Id )*N() )*idt( u )                        + bcCoeff*std::max(2.*mu.value(),lambda.value())*trans( idt( u ) )*id( v )/hFace() );    }    if ( M_bctype == 0 )        a += on( markedfaces( mesh, "clamped" ), u, F, zero<nDim,1>() );    timers["assembly"].second += timers["assembly"].first.elapsed();    backend(_rebuild=true)->solve( _matrix=D, _solution=u, _rhs=F );    v = vf::project( Xh, elements( Xh->mesh() ), P() );    this->exportResults( 0, u, v );    auto i1 = mean( _range=markedfaces( mesh, "tip"  ), _expr=idv( u ) );    LOG(INFO) << "deflection: " << i1 << "/n";//.........这里部分代码省略.........
开发者ID:LANTZT,项目名称:feelpp,代码行数:101,


示例21: render

//.........这里部分代码省略.........                ps2.move_to(100+32,  100+77);                ps2.line_to(100+473, 100+263);                ps2.line_to(100+351, 100+290);                ps2.line_to(100+354, 100+374);                ps2.close_polygon();                m_ras.reset();                m_ras.add_path(ps1);                ren.color(agg::rgba(0, 0, 0, 0.1));                agg::render_scanlines(m_ras, m_sl, ren);                m_ras.reset();                m_ras.add_path(stroke);                ren.color(agg::rgba(0, 0.6, 0, 0.1));                agg::render_scanlines(m_ras, m_sl, ren);                generate_alpha_mask(ps1);                perform_rendering(stroke);            }            break;            case 2:            {                //------------------------------------                // Great Britain and Arrows                //                agg::path_storage gb_poly;                agg::path_storage arrows;                make_gb_poly(gb_poly);                make_arrows(arrows);                agg::trans_affine mtx1;                agg::trans_affine mtx2;                mtx1 *= agg::trans_affine_translation(-1150, -1150);                mtx1 *= agg::trans_affine_scaling(2.0);                mtx2 = mtx1;                mtx2 *= agg::trans_affine_translation(m_x - initial_width()/2,                                                       m_y - initial_height()/2);                agg::conv_transform<agg::path_storage> trans_gb_poly(gb_poly, mtx1);                agg::conv_transform<agg::path_storage> trans_arrows(arrows, mtx2);                m_ras.add_path(trans_gb_poly);                ren.color(agg::rgba(0.5, 0.5, 0, 0.1));                agg::render_scanlines(m_ras, m_sl, ren);                agg::conv_stroke<agg::conv_transform<agg::path_storage> > stroke_gb_poly(trans_gb_poly);                stroke_gb_poly.width(0.1);                m_ras.add_path(stroke_gb_poly);                ren.color(agg::rgba(0, 0, 0));                agg::render_scanlines(m_ras, m_sl, ren);                        m_ras.add_path(trans_arrows);                ren.color(agg::rgba(0.0, 0.5, 0.5, 0.1));                agg::render_scanlines(m_ras, m_sl, ren);                generate_alpha_mask(trans_gb_poly);                perform_rendering(trans_arrows);            }            break;            case 3:
开发者ID:ONLYOFFICE,项目名称:core,代码行数:67,


示例22: iwl_testmode_reg

/* * This function handles the user application commands for register access. * * It retrieves command ID carried with IWL_TM_ATTR_COMMAND and calls to the * handlers respectively. * * If it's an unknown commdn ID, -ENOSYS is returned; or -ENOMSG if the * mandatory fields(IWL_TM_ATTR_REG_OFFSET,IWL_TM_ATTR_REG_VALUE32, * IWL_TM_ATTR_REG_VALUE8) are missing; Otherwise 0 is replied indicating * the success of the command execution. * * If IWL_TM_ATTR_COMMAND is IWL_TM_CMD_APP2DEV_REG_READ32, the register read * value is returned with IWL_TM_ATTR_REG_VALUE32. * * @hw: ieee80211_hw object that represents the device * @tb: gnl message fields from the user space */static int iwl_testmode_reg(struct ieee80211_hw *hw, struct nlattr **tb){	struct iwl_priv *priv = hw->priv;	u32 ofs, val32, cmd;	u8 val8;	struct sk_buff *skb;	int status = 0;	if (!tb[IWL_TM_ATTR_REG_OFFSET]) {		IWL_DEBUG_INFO(priv, "Error finding register offset/n");		return -ENOMSG;	}	ofs = nla_get_u32(tb[IWL_TM_ATTR_REG_OFFSET]);	IWL_INFO(priv, "testmode register access command offset 0x%x/n", ofs);	/* Allow access only to FH/CSR/HBUS in direct mode.	Since we don't have the upper bounds for the CSR and HBUS segments,	we will use only the upper bound of FH for sanity check. */	cmd = nla_get_u32(tb[IWL_TM_ATTR_COMMAND]);	if ((cmd == IWL_TM_CMD_APP2DEV_DIRECT_REG_READ32 ||		cmd == IWL_TM_CMD_APP2DEV_DIRECT_REG_WRITE32 ||		cmd == IWL_TM_CMD_APP2DEV_DIRECT_REG_WRITE8) &&		(ofs >= FH_MEM_UPPER_BOUND)) {		IWL_DEBUG_INFO(priv, "offset out of segment (0x0 - 0x%x)/n",			FH_MEM_UPPER_BOUND);		return -EINVAL;	}	switch (cmd) {	case IWL_TM_CMD_APP2DEV_DIRECT_REG_READ32:		val32 = iwl_read_direct32(trans(priv), ofs);		IWL_INFO(priv, "32bit value to read 0x%x/n", val32);		skb = cfg80211_testmode_alloc_reply_skb(hw->wiphy, 20);		if (!skb) {			IWL_DEBUG_INFO(priv, "Error allocating memory/n");			return -ENOMEM;		}		NLA_PUT_U32(skb, IWL_TM_ATTR_REG_VALUE32, val32);		status = cfg80211_testmode_reply(skb);		if (status < 0)			IWL_DEBUG_INFO(priv,				       "Error sending msg : %d/n", status);		break;	case IWL_TM_CMD_APP2DEV_DIRECT_REG_WRITE32:		if (!tb[IWL_TM_ATTR_REG_VALUE32]) {			IWL_DEBUG_INFO(priv,				       "Error finding value to write/n");			return -ENOMSG;		} else {			val32 = nla_get_u32(tb[IWL_TM_ATTR_REG_VALUE32]);			IWL_INFO(priv, "32bit value to write 0x%x/n", val32);			iwl_write_direct32(trans(priv), ofs, val32);		}		break;	case IWL_TM_CMD_APP2DEV_DIRECT_REG_WRITE8:		if (!tb[IWL_TM_ATTR_REG_VALUE8]) {			IWL_DEBUG_INFO(priv, "Error finding value to write/n");			return -ENOMSG;		} else {			val8 = nla_get_u8(tb[IWL_TM_ATTR_REG_VALUE8]);			IWL_INFO(priv, "8bit value to write 0x%x/n", val8);			iwl_write8(trans(priv), ofs, val8);		}		break;	case IWL_TM_CMD_APP2DEV_INDIRECT_REG_READ32:		val32 = iwl_read_prph(trans(priv), ofs);		IWL_INFO(priv, "32bit value to read 0x%x/n", val32);		skb = cfg80211_testmode_alloc_reply_skb(hw->wiphy, 20);		if (!skb) {			IWL_DEBUG_INFO(priv, "Error allocating memory/n");			return -ENOMEM;		}		NLA_PUT_U32(skb, IWL_TM_ATTR_REG_VALUE32, val32);		status = cfg80211_testmode_reply(skb);		if (status < 0)			IWL_DEBUG_INFO(priv,					"Error sending msg : %d/n", status);		break;	case IWL_TM_CMD_APP2DEV_INDIRECT_REG_WRITE32:		if (!tb[IWL_TM_ATTR_REG_VALUE32]) {			IWL_DEBUG_INFO(priv,//.........这里部分代码省略.........
开发者ID:Excito,项目名称:compat-wireless,代码行数:101,


示例23: test

//.........这里部分代码省略.........  vcl_x = viennacl::linalg::prod(vcl_A_ell, vcl_x);  check(std_y, vcl_x, "x = A*x (sparse, ell)", epsilon);  viennacl::copy(std_x, vcl_x);  vcl_x = viennacl::linalg::prod(vcl_A_sell, vcl_x);  check(std_y, vcl_x, "x = A*x (sparse, sell)", epsilon);  viennacl::copy(std_x, vcl_x);  vcl_x = viennacl::linalg::prod(vcl_A_hyb, vcl_x);  check(std_y, vcl_x, "x = A*x (sparse, hyb)", epsilon);  std::cout << std::endl;  //  // Matrix-Matrix (dense times dense):  //  test_gemm<op_assign>(epsilon, std_A, std_B, std_C, vcl_A, "A", vcl_B, "B", vcl_A, true);  test_gemm<op_assign>(epsilon, std_B, std_A, std_C, vcl_B, "B", vcl_A, "A", vcl_A, false);  test_gemm<op_assign>(epsilon, std_A, std_A, std_C, vcl_A, "A", vcl_A, "A", vcl_A, true);  std::cout << std::endl;  test_gemm<op_plus_assign>(epsilon, std_A, std_B, std_C, vcl_A, "A", vcl_B, "B", vcl_A, true);  test_gemm<op_plus_assign>(epsilon, std_B, std_A, std_C, vcl_B, "B", vcl_A, "A", vcl_A, false);  test_gemm<op_plus_assign>(epsilon, std_A, std_A, std_C, vcl_A, "A", vcl_A, "A", vcl_A, true);  std::cout << std::endl;  test_gemm<op_minus_assign>(epsilon, std_A, std_B, std_C, vcl_A, "A", vcl_B, "B", vcl_A, true);  test_gemm<op_minus_assign>(epsilon, std_B, std_A, std_C, vcl_B, "B", vcl_A, "A", vcl_A, false);  test_gemm<op_minus_assign>(epsilon, std_A, std_A, std_C, vcl_A, "A", vcl_A, "A", vcl_A, true);  std::cout << std::endl;  //  // Matrix-Matrix (sparse times dense)  //  // A = sparse * A  viennacl::copy(std_A, vcl_A);  for (std::size_t i = 0; i<std_A.size(); ++i)    for (std::size_t j = 0; j<std_A[i].size(); ++j)    {      NumericT tmp = 0;      for (std::size_t k = 0; k<std_A[i].size(); ++k)        tmp += std_Asparse[i][KeyType(k)] * std_A[k][j];      std_C[i][j] = tmp;    }  viennacl::copy(std_A, vcl_A);  vcl_A = viennacl::linalg::prod(vcl_A_csr, vcl_A);  check(std_C, vcl_A, "A = csr*A", epsilon);  viennacl::copy(std_A, vcl_A);  vcl_A = viennacl::linalg::prod(vcl_A_coo, vcl_A);  check(std_C, vcl_A, "A = coo*A", epsilon);  viennacl::copy(std_A, vcl_A);  vcl_A = viennacl::linalg::prod(vcl_A_ell, vcl_A);  check(std_C, vcl_A, "A = ell*A", epsilon);  viennacl::copy(std_A, vcl_A);  //vcl_A = viennacl::linalg::prod(vcl_A_sell, vcl_A);  //check(std_C, vcl_A, "A = sell*A", epsilon);  viennacl::copy(std_A, vcl_A);  vcl_A = viennacl::linalg::prod(vcl_A_hyb, vcl_A);  check(std_C, vcl_A, "A = hyb*A", epsilon);  // A = sparse * A^T  viennacl::copy(std_A, vcl_A);  for (std::size_t i = 0; i<std_A.size(); ++i)    for (std::size_t j = 0; j<std_A[i].size(); ++j)    {      NumericT tmp = 0;      for (std::size_t k = 0; k<std_A[i].size(); ++k)        tmp += std_Asparse[i][KeyType(k)] * std_A[j][k];      std_C[i][j] = tmp;    }  viennacl::copy(std_A, vcl_A);  vcl_A = viennacl::linalg::prod(vcl_A_csr, trans(vcl_A));  check(std_C, vcl_A, "A = csr*A^T", epsilon);  viennacl::copy(std_A, vcl_A);  vcl_A = viennacl::linalg::prod(vcl_A_coo, trans(vcl_A));  check(std_C, vcl_A, "A = coo*A^T", epsilon);  viennacl::copy(std_A, vcl_A);  vcl_A = viennacl::linalg::prod(vcl_A_ell, trans(vcl_A));  check(std_C, vcl_A, "A = ell*A^T", epsilon);  viennacl::copy(std_A, vcl_A);  //vcl_A = viennacl::linalg::prod(vcl_A_sell, trans(vcl_A));  //check(std_C, vcl_A, "A = sell*A^T", epsilon);  viennacl::copy(std_A, vcl_A);  vcl_A = viennacl::linalg::prod(vcl_A_hyb, trans(vcl_A));  check(std_C, vcl_A, "A = hyb*A^T", epsilon);  return EXIT_SUCCESS;}
开发者ID:Rombur,项目名称:viennacl-dev,代码行数:101,


示例24: iwl_testmode_driver

/* * This function handles the user application commands for driver. * * It retrieves command ID carried with IWL_TM_ATTR_COMMAND and calls to the * handlers respectively. * * If it's an unknown commdn ID, -ENOSYS is replied; otherwise, the returned * value of the actual command execution is replied to the user application. * * If there's any message responding to the user space, IWL_TM_ATTR_SYNC_RSP * is used for carry the message while IWL_TM_ATTR_COMMAND must set to * IWL_TM_CMD_DEV2APP_SYNC_RSP. * * @hw: ieee80211_hw object that represents the device * @tb: gnl message fields from the user space */static int iwl_testmode_driver(struct ieee80211_hw *hw, struct nlattr **tb){	struct iwl_priv *priv = hw->priv;	struct iwl_trans *trans = trans(priv);	struct sk_buff *skb;	unsigned char *rsp_data_ptr = NULL;	int status = 0, rsp_data_len = 0;	u32 devid, inst_size = 0, data_size = 0;	switch (nla_get_u32(tb[IWL_TM_ATTR_COMMAND])) {	case IWL_TM_CMD_APP2DEV_GET_DEVICENAME:		rsp_data_ptr = (unsigned char *)cfg(priv)->name;		rsp_data_len = strlen(cfg(priv)->name);		skb = cfg80211_testmode_alloc_reply_skb(hw->wiphy,							rsp_data_len + 20);		if (!skb) {			IWL_DEBUG_INFO(priv,				       "Error allocating memory/n");			return -ENOMEM;		}		NLA_PUT_U32(skb, IWL_TM_ATTR_COMMAND,			    IWL_TM_CMD_DEV2APP_SYNC_RSP);		NLA_PUT(skb, IWL_TM_ATTR_SYNC_RSP,			rsp_data_len, rsp_data_ptr);		status = cfg80211_testmode_reply(skb);		if (status < 0)			IWL_DEBUG_INFO(priv, "Error sending msg : %d/n",				       status);		break;	case IWL_TM_CMD_APP2DEV_LOAD_INIT_FW:		status = iwl_load_ucode_wait_alive(trans, IWL_UCODE_INIT);		if (status)			IWL_DEBUG_INFO(priv,				"Error loading init ucode: %d/n", status);		break;	case IWL_TM_CMD_APP2DEV_CFG_INIT_CALIB:		iwl_testmode_cfg_init_calib(priv);		iwl_trans_stop_device(trans);		break;	case IWL_TM_CMD_APP2DEV_LOAD_RUNTIME_FW:		status = iwl_load_ucode_wait_alive(trans, IWL_UCODE_REGULAR);		if (status) {			IWL_DEBUG_INFO(priv,				"Error loading runtime ucode: %d/n", status);			break;		}		status = iwl_alive_start(priv);		if (status)			IWL_DEBUG_INFO(priv,				"Error starting the device: %d/n", status);		break;	case IWL_TM_CMD_APP2DEV_LOAD_WOWLAN_FW:		iwl_scan_cancel_timeout(priv, 200);		iwl_trans_stop_device(trans);		status = iwl_load_ucode_wait_alive(trans, IWL_UCODE_WOWLAN);		if (status) {			IWL_DEBUG_INFO(priv,				"Error loading WOWLAN ucode: %d/n", status);			break;		}		status = iwl_alive_start(priv);		if (status)			IWL_DEBUG_INFO(priv,				"Error starting the device: %d/n", status);		break;	case IWL_TM_CMD_APP2DEV_GET_EEPROM:		if (priv->shrd->eeprom) {			skb = cfg80211_testmode_alloc_reply_skb(hw->wiphy,				cfg(priv)->base_params->eeprom_size + 20);			if (!skb) {				IWL_DEBUG_INFO(priv,				       "Error allocating memory/n");				return -ENOMEM;			}			NLA_PUT_U32(skb, IWL_TM_ATTR_COMMAND,				IWL_TM_CMD_DEV2APP_EEPROM_RSP);			NLA_PUT(skb, IWL_TM_ATTR_EEPROM,				cfg(priv)->base_params->eeprom_size,				priv->shrd->eeprom);//.........这里部分代码省略.........
开发者ID:Excito,项目名称:compat-wireless,代码行数:101,


示例25: iwl_testmode_trace

/* * This function handles the user application commands for uCode trace * * It retrieves command ID carried with IWL_TM_ATTR_COMMAND and calls to the * handlers respectively. * * If it's an unknown commdn ID, -ENOSYS is replied; otherwise, the returned * value of the actual command execution is replied to the user application. * * @hw: ieee80211_hw object that represents the device * @tb: gnl message fields from the user space */static int iwl_testmode_trace(struct ieee80211_hw *hw, struct nlattr **tb){	struct iwl_priv *priv = hw->priv;	struct sk_buff *skb;	int status = 0;	struct device *dev = trans(priv)->dev;	switch (nla_get_u32(tb[IWL_TM_ATTR_COMMAND])) {	case IWL_TM_CMD_APP2DEV_BEGIN_TRACE:		if (priv->testmode_trace.trace_enabled)			return -EBUSY;		if (!tb[IWL_TM_ATTR_TRACE_SIZE])			priv->testmode_trace.buff_size = TRACE_BUFF_SIZE_DEF;		else			priv->testmode_trace.buff_size =				nla_get_u32(tb[IWL_TM_ATTR_TRACE_SIZE]);		if (!priv->testmode_trace.buff_size)			return -EINVAL;		if (priv->testmode_trace.buff_size < TRACE_BUFF_SIZE_MIN ||		    priv->testmode_trace.buff_size > TRACE_BUFF_SIZE_MAX)			return -EINVAL;		priv->testmode_trace.total_size =			priv->testmode_trace.buff_size + TRACE_BUFF_PADD;		priv->testmode_trace.cpu_addr =			dma_alloc_coherent(dev,					   priv->testmode_trace.total_size,					   &priv->testmode_trace.dma_addr,					   GFP_KERNEL);		if (!priv->testmode_trace.cpu_addr)			return -ENOMEM;		priv->testmode_trace.trace_enabled = true;		priv->testmode_trace.trace_addr = (u8 *)PTR_ALIGN(			priv->testmode_trace.cpu_addr, 0x100);		memset(priv->testmode_trace.trace_addr, 0x03B,			priv->testmode_trace.buff_size);		skb = cfg80211_testmode_alloc_reply_skb(hw->wiphy,			sizeof(priv->testmode_trace.dma_addr) + 20);		if (!skb) {			IWL_DEBUG_INFO(priv,				"Error allocating memory/n");			iwl_trace_cleanup(priv);			return -ENOMEM;		}		NLA_PUT(skb, IWL_TM_ATTR_TRACE_ADDR,			sizeof(priv->testmode_trace.dma_addr),			(u64 *)&priv->testmode_trace.dma_addr);		status = cfg80211_testmode_reply(skb);		if (status < 0) {			IWL_DEBUG_INFO(priv,				       "Error sending msg : %d/n",				       status);		}		priv->testmode_trace.num_chunks =			DIV_ROUND_UP(priv->testmode_trace.buff_size,				     DUMP_CHUNK_SIZE);		break;	case IWL_TM_CMD_APP2DEV_END_TRACE:		iwl_trace_cleanup(priv);		break;	default:		IWL_DEBUG_INFO(priv, "Unknown testmode mem command ID/n");		return -ENOSYS;	}	return status;nla_put_failure:	kfree_skb(skb);	if (nla_get_u32(tb[IWL_TM_ATTR_COMMAND]) ==	    IWL_TM_CMD_APP2DEV_BEGIN_TRACE)		iwl_trace_cleanup(priv);	return -EMSGSIZE;}
开发者ID:Excito,项目名称:compat-wireless,代码行数:87,


示例26: setGrassRegionDefaults

/**************************** REGION ********************************/void QgsGrassNewMapset::setRegionPage(){  // Set defaults  if ( !mRegionModified )  {    setGrassRegionDefaults();  }  // Create new projection  QgsCoordinateReferenceSystem newCrs;  if ( mProjRadioButton->isChecked() )  {    QgsDebugMsg( QString( "selectedCrsId() = %1" ).arg( mProjectionSelector->selectedCrsId() ) );    if ( mProjectionSelector->selectedCrsId() > 0 )    {      newCrs.createFromSrsId( mProjectionSelector->selectedCrsId() );      if ( ! newCrs.isValid() )      {        QgsGrass::warning( tr( "Cannot create projection." ) );      }    }  }  // Reproject previous region if it was modified  // and if previous and current projection is valid  if ( mRegionModified && newCrs.isValid() && mCrs.isValid()       && newCrs.srsid() != mCrs.srsid() )  {    QgsCoordinateTransform trans( mCrs, newCrs );    double n = mNorthLineEdit->text().toDouble();    double s = mSouthLineEdit->text().toDouble();    double e = mEastLineEdit->text().toDouble();    double w = mWestLineEdit->text().toDouble();    std::vector<QgsPoint> points;    // TODO: this is not perfect    points.push_back( QgsPoint( w, s ) );    points.push_back( QgsPoint( e, n ) );    bool ok = true;    for ( int i = 0; i < 2; i++ )    {      try      {        points[i] = trans.transform( points[i] );      }      catch ( QgsCsException &cse )      {        Q_UNUSED( cse );        QgsDebugMsg( "Cannot transform point" );        ok = false;        break;      }    }    if ( ok )    {      int precision = newCrs.mapUnits() == Qgis::Degrees ? 6 : 1;      mNorthLineEdit->setText( qgsDoubleToString( points[1].y(), precision ) );      mSouthLineEdit->setText( qgsDoubleToString( points[0].y(), precision ) );      mEastLineEdit->setText( qgsDoubleToString( points[1].x(), precision ) );      mWestLineEdit->setText( qgsDoubleToString( points[0].x(), precision ) );    }    else    {      QgsGrass::warning( tr( "Cannot reproject previously set region, default region set." ) );      setGrassRegionDefaults();    }  }  // Set current region projection  mCrs = newCrs;  // Enable / disable region selection widgets  if ( mNoProjRadioButton->isChecked() )  {    mRegionMap->hide();    mCurrentRegionButton->hide();    mRegionsComboBox->hide();    mRegionButton->hide();    mSetRegionFrame->hide();  }  else  {    mRegionMap->show();    mCurrentRegionButton->show();    mRegionsComboBox->show();    mRegionButton->show();    mSetRegionFrame->show();    QgsRectangle ext = mIface->mapCanvas()->extent();    mCurrentRegionButton->setEnabled( !ext.isEmpty() );  }//.........这里部分代码省略.........
开发者ID:kukupigs,项目名称:QGIS,代码行数:101,


示例27: GetTypedOutput

voidavtResampleFilter::ResampleInput(void){    int  i, j, k;    avtDataset_p output = GetTypedOutput();    double bounds[6] = { 0, 0, 0, 0, 0, 0 };    bool is3D = GetBounds(bounds);    debug4 << "Resampling over space: " << bounds[0] << ", " << bounds[1]           << ": " << bounds[2] << ", " << bounds[3] << ": " << bounds[4]           << ", " << bounds[5] << endl;        //    // Our resampling leaves some invalid values in the data range.  The    // easiest way to bypass this is to get the data range from the input and    // pass it along (since resampling does not change it in theory).    //    double range[2];    if (GetInput()->GetInfo().GetAttributes().ValidActiveVariable())    {        GetDataExtents(range);        output->GetInfo().GetAttributes().GetDesiredDataExtents()->Set(range);    }    avtViewInfo view;    double scale[3];    CreateViewFromBounds(view, bounds, scale);    //    // What we want the width, height, and depth to be depends on the    // attributes.    //    int width, height, depth;    GetDimensions(width, height, depth, bounds, is3D);    //    // If there are no variables, then just create the mesh and exit.    //    bool thereAreNoVariables =           (GetInput()->GetInfo().GetAttributes().GetNumberOfVariables() <= 0);    if (thereAreNoVariables)    {        if (PAR_Rank() == 0)        {            vtkRectilinearGrid *rg = CreateGrid(bounds, width, height, depth,                                      0, width, 0, height, cellCenteredOutput, is3D);            avtDataTree_p tree = new avtDataTree(rg, 0);            rg->Delete();            SetOutputDataTree(tree);        }        else        {            //            // Putting in a NULL data tree can lead to seg faults, etc.            //            avtDataTree_p dummy = new avtDataTree();            SetOutputDataTree(dummy);        }        return;    }    //    // World space is a right-handed coordinate system.  Image space (as used    // in the sample point extractor) is a left-handed coordinate system.    // This is because large X is at the right and large Y is at the top.    // The z-buffer has the closest points at z=0, so Z is going away from the    // screen ===> left handed coordinate system.  If we reflect across X,    // then this will account for the difference between the coordinate     // systems.    //    scale[0] *= -1.;    //    // We don't want an Update to go all the way up the pipeline, so make    // a terminating source corresponding to our input.    //    avtDataset_p ds;    avtDataObject_p dObj = GetInput();    CopyTo(ds, dObj);    avtSourceFromAVTDataset termsrc(ds);    //    // The sample point extractor expects everything to be in image space.    //    avtWorldSpaceToImageSpaceTransform trans(view, scale);    trans.SetInput(termsrc.GetOutput());    bool doKernel =         (GetInput()->GetInfo().GetAttributes().GetTopologicalDimension() == 0);    avtSamplePointExtractor extractor(width, height, depth);    extractor.SendCellsMode(false);    extractor.Set3DMode(is3D);    extractor.SetInput(trans.GetOutput());    if (doKernel)        extractor.SetKernelBasedSampling(true);    avtSamplePoints_p samples = extractor.GetTypedOutput();    ////.........这里部分代码省略.........
开发者ID:HarinarayanKrishnan,项目名称:VisIt26RC_Trunk,代码行数:101,


示例28: QgsDebugMsg

void QgsGrassNewMapset::drawRegion(){  QPixmap pm = mPixmap;  mRegionMap->setPixmap( pm );  if ( mCellHead.proj == PROJECTION_XY )    return;  QgsDebugMsg( QString( "pm.isNull() = %1" ).arg( pm.isNull() ) );  QPainter p( &pm );  p.setPen( QPen( QColor( 255, 0, 0 ), 3 ) );  double n = mNorthLineEdit->text().toDouble();  double s = mSouthLineEdit->text().toDouble();  double e = mEastLineEdit->text().toDouble();  double w = mWestLineEdit->text().toDouble();  // Shift if LL and W > E  if ( mCellHead.proj == PROJECTION_LL && w > e )  {    if (( 180 - w ) < ( e + 180 ) )    {      w -= 360;    }    else    {      e += 360;    }  }  QList<QgsPoint> tpoints; // ll lr ur ul ll  tpoints << QgsPoint( w, s );  tpoints << QgsPoint( e, s );  tpoints << QgsPoint( e, n );  tpoints << QgsPoint( w, n );  tpoints << QgsPoint( w, s );  // Because of possible shift +/- 360 in LL we have to split  // the lines at least in 3 parts  QList<QgsPoint> points; //  for ( int i = 0; i < 4; i++ )  {    for ( int j = 0; j < 3; j++ )    {      double x = tpoints[i].x();      double y = tpoints[i].y();      double dx = ( tpoints[i+1].x() - x ) / 3;      double dy = ( tpoints[i+1].y() - y ) / 3;      QgsDebugMsg( QString( "dx = %1 x = %2" ).arg( dx ).arg( x + j*dx ) );      points << QgsPoint( x + j*dx, y + j*dy );    }  }  points << points[0]; // close polygon  // Warning: seems that crashes if source == dest  if ( mProjectionSelector->selectedCrsId() != GEOCRS_ID )  {    QgsCoordinateReferenceSystem source = QgsCoordinateReferenceSystem::fromSrsId( mProjectionSelector->selectedCrsId() );    if ( !source.isValid() )    {      QgsGrass::warning( tr( "Cannot create QgsCoordinateReferenceSystem" ) );      return;    }    QgsCoordinateReferenceSystem dest = QgsCoordinateReferenceSystem::fromSrsId( GEOCRS_ID );    if ( !dest.isValid() )    {      QgsGrass::warning( tr( "Cannot create QgsCoordinateReferenceSystem" ) );      return;    }    QgsCoordinateTransform trans( source, dest );    for ( int i = points.size() - 1; i >= 0; i-- )    {      // Warning: I found that with some projections (e.g. Abidjan 1987)      // if N = 90 or S = -90 the coordinate projected to      // WGS84 is nonsense (156.983,89.9988 regardless x) ->      // use 89.9 - for draw it is not so important      if ( mCellHead.proj == PROJECTION_LL )      {        if ( points[i].y() >= 89.9 )          points[i].setY( 89.9 );        if ( points[i].y() <= -89.9 )          points[i].setY( -89.9 );      }      QgsDebugMsg( QString( "%1,%2" ).arg( points[i].x() ).arg( points[i].y() ) );      // exclude points if transformation failed      try      {        points[i] = trans.transform( points[i] );        QgsDebugMsg( QString( " --> %1,%2" ).arg( points[i].x() ).arg( points[i].y() ) );      }//.........这里部分代码省略.........
开发者ID:kukupigs,项目名称:QGIS,代码行数:101,


示例29: srk

 M1 & srk (M1 &m1, const T1 &t1, const T2 &t2, const M2 &m2) {     return m1 = t1 * m1 + t2 * prod (m2, trans (m2)); }
开发者ID:Amplifying,项目名称:intensityengine,代码行数:4,



注:本文中的trans函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ transaction函数代码示例
C++ tramp_frame_prepend_unwinder函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。