Exemplo n.º 1
0
void can_project_micropolygon() {
    MeshPoint mp1(-10, -10, 100);
    MeshPoint mp2(10, -10, 100);
    MeshPoint mp3(-10, 10, 100);
    MeshPoint mp4(10, 10, 100);
    MicroPolygon poly;
    poly.a = mp1;
    poly.b = mp2;
    poly.c = mp3;
    poly.d = mp4;

    FrameBuffer fb(500, 500);
    fb.projectMicroPolygon(poly);

    ASSERT_EQUAL_FLOAT(poly.a.getX(), 206.699, 0.1);
    ASSERT_EQUAL_FLOAT(poly.a.getY(), 206.699, 0.1);

    ASSERT_EQUAL_FLOAT(poly.b.getX(), 293.301, 0.1);
    ASSERT_EQUAL_FLOAT(poly.b.getY(), 206.699, 0.1);

    ASSERT_EQUAL_FLOAT(poly.c.getX(), 206.699, 0.1);
    ASSERT_EQUAL_FLOAT(poly.c.getY(), 293.301, 0.1);

    ASSERT_EQUAL_FLOAT(poly.d.getX(), 293.301, 0.1);
    ASSERT_EQUAL_FLOAT(poly.d.getY(), 293.301, 0.1);
}
Exemplo n.º 2
0
void can_project_mesh_point() {
    FrameBuffer fb(500, 500);
    MeshPoint mp(0, 0, 100);
    fb.projectAndScalePoint(mp);

    ASSERT_EQUAL_FLOAT(mp.getX(), 250, 0.1);
    ASSERT_EQUAL_FLOAT(mp.getY(), 250, 0.1);

    MeshPoint mp2(-10, -10, 100);
    fb.projectAndScalePoint(mp2);

    ASSERT_EQUAL_FLOAT(mp2.getX(), 206.699, 0.1);
    ASSERT_EQUAL_FLOAT(mp2.getY(), 206.699, 0.1);
}
Exemplo n.º 3
0
        void serializeMultipartToEntity()
        {
            cxxtools::MimeMultipart mp;
            mp.addObject();
            mp.addObject();

            cxxtools::SerializationInfo si;
            si <<= mp;

            cxxtools::MimeEntity me;
            si >>= me;

            CXXTOOLS_UNIT_ASSERT(me.isMultipart());

            cxxtools::MimeMultipart mp2(me);
            CXXTOOLS_UNIT_ASSERT_EQUALS(mp2.size(), 2);
        }
capd::map::CnCoeff<MatrixType> linearSubstitution(
      const MatrixType& N,
      const capd::map::CnCoeff<MatrixType>& s,
      const MatrixType& M
   )
{
   typedef capd::vectalg::Multiindex::MultiindexVector MultiindexVector;
   typedef typename MatrixType::ScalarType ScalarType;
   int dimension = s.dimension();
   int rank = s.rank();

   capd::vectalg::Multiindex::IndicesSet indices;
   capd::vectalg::Multiindex::generateList(dimension,rank,indices);
   if(dimension!=M.numberOfRows() || dimension!=M.numberOfColumns() || dimension!=N.numberOfRows() || dimension!=N.numberOfColumns() )
   {
      throw std::runtime_error("normalForms::linearSubstitution - incompatible dimensions");
   }
   
   capd::map::CnCoeff<MatrixType> result (dimension,rank);

   for(int r=1;r<=rank;++r)
   {
      capd::vectalg::Multipointer mp = s.first(r);
      do{
         typename capd::map::CnCoeff<MatrixType>::VectorType temp(dimension);
         
         MultiindexVector::iterator b=indices[r-1].begin(), e=indices[r-1].end();
         while(b!=e)
         {
            ScalarType product = M((*b)[0]+1,mp[0]+1);
            for(int j=1;j<r;++j)
               product *= M((*b)[j]+1,mp[j]+1);

            capd::vectalg::Multipointer mp2(b->dimension(),b->begin());
            std::sort(mp2.begin(),mp2.end());
            temp += s(mp2)*product;
            ++b;
         }

         result(mp) = N*temp;
      }while(s.next(mp));
   }

   return result;
}
Exemplo n.º 5
0
void bounding_box_for_microPolygon_has_right_coords() {
    MeshPoint mp1(-10, -10, 100);
    MeshPoint mp2(10, -10, 100);
    MeshPoint mp3(-10, 10, 100);
    MeshPoint mp4(10, 10, 100);
    MicroPolygon poly;
    poly.a = mp1;
    poly.b = mp2;
    poly.c = mp3;
    poly.d = mp4;

    FrameBuffer fb(500, 500);
    fb.projectMicroPolygon(poly);

    BoundingBox box = poly.getBoundingBox();
    ASSERT_EQUAL_INT(box.X_start, 206);
    ASSERT_EQUAL_INT(box.Y_start, 206);
    ASSERT_EQUAL_INT(box.X_stop, 294);
    ASSERT_EQUAL_INT(box.Y_stop, 294);
}
Exemplo n.º 6
0
int main(int argc, char** argv) {
    BinarySerializer bs;
    Point<double> p(2);
    p.mX[0] = 1;
    p.mX[1] = 2;
    bs << p;
    MultiPoint<double> mp(2,2);
    mp.mParam.mX[0] = 1;
    mp.mParam.mX[1] = 2;
    mp.mCrit.mX[0] = 3;
    mp.mCrit.mX[1] = 4;
    bs << mp;
    Point<double> q(2);
    bs.reset();
    bs >> q;
    //rintf("%s\n", q.toString().c_str());
    BNB_ASSERT((p.mX[0] == q.mX[0]) && (p.mX[1] == q.mX[1]));
    MultiPoint<double> mq(2,2);
    bs >> mq;
    //printf("%s\n", mq.toString().c_str());
    BNB_ASSERT((mp.mParam.mX[0] == mq.mParam.mX[0]) && (mp.mParam.mX[1] == mq.mParam.mX[1]));
    BNB_ASSERT((mp.mCrit.mX[0] == mq.mCrit.mX[0]) && (mp.mCrit.mX[1] == mq.mCrit.mX[1]));
    MultiPoint<double> mp1(2,3);
    mp1.mParam.mX[0] = 0;
    mp1.mParam.mX[1] = 1;
    mp1.mCrit.mX[0] = 3;
    mp1.mCrit.mX[1] = 4;
    mp1.mCrit.mX[2] = 5;
    MultiPoint<double> mp2(2,3);
    mp2.mParam.mX[0] = 10;
    mp2.mParam.mX[1] = 11;
    mp2.mCrit.mX[0] = 5;
    mp2.mCrit.mX[1] = 4;
    mp2.mCrit.mX[2] = 3;
    MPSimpBag<double> mpsbag;
    mpsbag.put(mp1);
    mpsbag.put(mp2);
    bs.reset();
    bs << mpsbag;
    bs.reset();
    MPSimpBag<double> mpsbagn;
    bs >> mpsbagn;
    //printf("%s\n", mpsbagn.toString().c_str());
    BNB_ASSERT(mpsbagn.size() == 2);
    bs.reset();

    Box<double> bx1(2);
    bx1.mA[0] = 1;
    bx1.mA[1] = 2;
    bx1.mB[0] = 3;
    bx1.mB[1] = 4;
    bs << bx1;
    Box<double> bx2(2);
    bs.reset();
    bs >> bx2;
    //printf("%s\n", BoxUtils::toString(bx2).c_str());
    BNB_ASSERT(bx1.mA[0] == bx2.mA[0]);
    BNB_ASSERT(bx1.mA[1] == bx2.mA[1]);
    BNB_ASSERT(bx1.mB[0] == bx2.mB[0]);
    BNB_ASSERT(bx1.mB[1] == bx2.mB[1]);
    
    SimpBoxBag<double> sb;
    sb.put(bx1);
    sb.put(bx2);
    bs.reset();
    bs << sb;
    bs.reset();
    SimpBoxBag<double> sb1;
    bs >> sb1;
    //printf("sb1: %s\n", sb1.toString().c_str());
    BNB_ASSERT(sb1.size() == 2);
    return 0;
}
Exemplo n.º 7
0
int main()
{
	write(mp2(10000));
	return 0;
}
Exemplo n.º 8
0
int main(int argc, char *argv[])
{
  b_po::variables_map vmgeneral;
  parsecommandlineExtract(argc, argv, vmgeneral);
  ralab::findmf::apps::Params aparam;
  analysisParameters(aparam,vmgeneral);
  int res = 0;
  boost::filesystem::path p1,p2;

  {
    // LOG(INFO)  << "i::::" << i << std::endl;
    p1 = ralab::findmf::createOutputs(aparam.infile,"");
    p2 = ralab::findmf::createOutputs(aparam.infile,"filtered");

    if( !boost::filesystem::exists(aparam.infile) )
    {
      return -1;
    }

    ralab::findmf::datastruct::MSFileInfoPtr sip;
    try{
      ralab::findmf::SwathPropertiesReader swathPropReader(aparam.infile);
      sip = swathPropReader.getSwathInfo();
    } catch(std::exception & e){
      std::cerr << "infile : " << aparam.infile << std::endl;
      std::cerr  << "can't open file: " << e.what() << std::endl;
      return 0;
    }

    double ppm = aparam.ppm;
    pwiz::msdata::MSDataPtr msdataptr = pwiz::msdata::MSDataPtr(new pwiz::msdata::MSDataFile(aparam.infile));
    ralab::findmf::LCMSImageReader sm(msdataptr, sip, ppm, aparam.rt2sum_ );
    ralab::findmf::datastruct::LCMSImage mp;
    sm.getMap( 0 , aparam.minmass, aparam.maxmass, mp);
    // LOG(INFO) << " " << mp.getMZsize() << " " << mp.getRTsize();

    ralab::findmf::datastruct::LCMSImage mp2( mp );
    {
      ralab::findmf::LCMSImageFilterGauss imgf;
      // imgf.filterMap( mp2.getImageMap().getMap() , aparam.mzpixelwidth , aparam.rtpixelwidth, aparam.mzscale, aparam.rtscale);

      imgf.filter( mp2.getImageMap().getMap() , aparam.mzpixelwidth , aparam.rtpixelwidth, aparam.mzscale, aparam.rtscale);
      mp2.getImageMap().updateImageRange();
      std::cout << mp2.getImageMap().getImageMin() << std::endl;
      //imgf.filterMap();
    }

    // feature finding
    ralab::findmf::FeatureFinderLocalMax ff;
    ff.findFeature( mp2.getImageMap().getMap() , aparam.minintensity );

    ralab::findmf::datastruct::FeaturesMap map;
    map.setMapDescription(mp2.getMapDescription());
    ralab::findmf::ComputeFeatureStatistics cfs;
    cfs.extractFeatures(map,mp2.getImageMap().getMap(),ff.getLabels());

    //this writes the accessor....
   cfs.writeFeatures(aparam.outdir , p1.stem().string() );

    ralab::FeaturesMapPrinter fp;
    fp.writeFeatures(aparam.outdir , p1.stem().string(), map);

    ralab::MultiArrayVisSegments<int> mavL( ff.getLabels() );
    //write filtered data into mzML file

    //TODO check why this isn't working
    sm.write( p2.string() , mp2 );

    if(1){
      QApplication app(argc, argv);
      ralab::TwoPaneledImageWidget tpi;
      ralab::MultiArrayVisLog<float> adapt2( mp2.getImageMap().getMap() );

      ralab::MultiArrayVisAsinh<float> adapt1( mp2.getImageMap().getMap() );
      ralab::MultiArrayVisLog<float> adapt0( mp.getImageMap().getMap() );

      tpi.setTopMap(&mavL);
      //tpi.setBottomMap(&adapt0);
      tpi.setBottomMap(&adapt0);

      tpi.show();
      res = app.exec();
    }
  }
  return res;
}
CPatcher_EnableFSAA::CPatcher_EnableFSAA( void )
{
	patchname = "Enable FSAA";

	addrReadFSAA = CAddr::Addr(CGameOptionMgr_ReadFSAA);
	addrReadFSAAQuality = CAddr::Addr(CGameOptionMgr_ReadFSAAQuality);

	if (!addrReadFSAA ||
        !addrReadFSAAQuality)
	{
		WriteLog("Patch initialization failed: %s.\n", patchname.c_str());
		WriteLog("   Missing dependency.\n");
		return;
	}

	vector<WORD> patch1;
	vector<WORD> backup1;
	backup1 +=
		0x89, 0x7E, 0x10,						// +3B: MOV [ESI+10h], EDI
		0x89, 0x7E, 0x14,						// +3E: MOV [ESI+14h], EDI
		0xE8, -1, -1, -1, -1,					// +41: CALL pleione::CGameOptionMgr::ReadDithering(void)
		0x8B, 0xCE,								// +46: MOV ECX, ESI
		0x88, 0x46, 0x4C,						// +48: MOV [ESI+4Ch], AL
		0xE8, -1, -1, -1, -1,					// +4B: CALL xxxxxxxx
		0x8B, 0xCE,								// +50: MOV ECX, ESI
		0x88, 0x46, 0x4D;						// +52: MOV [ESI+4Dh], AL

	patch1 +=
		0xE9, 0x01FF, 0x01FF, 0x01FF, 0x01FF,	// +3B: JMP LONG patchFSAA
		0x90,									//      NOP
		-1, -1, -1, -1, -1, -1, -1,	-1, -1, -1,
		-1, -1, -1, -1, -1,	-1, -1,	-1, -1, -1;

	MemoryPatch mp1( NULL, patch1, backup1 );
	mp1.Search( L"Pleione.dll" );
	mp1.PatchRelativeAddress( 0x01, (LPBYTE)patchFSAA );

	addrTargetReturn = mp1.GetAddr() + 6;	// Size of patch

	vector<WORD> patch2;
	vector<WORD> backup2;
	backup2 +=
		0x83, 0x4D, 0xFC, 0xFF,				// +59E: OR [EBP-04h], 0xFFFFFFFF
		0x8D, 0x4D, 0x08,					// +5A2: LEA ECX, [EBP+08h]
		0xFF, 0xD6,							// +5A5: CALL ESI
		0x8B, 0x8B, 0x1C, 0x01, 0x00, 0x00,	// +5A7: MOV ECX, [EBX+11Ch]
		0x8B, 0x01,							// +5AD: MOV EAX, [ECX]
		0x6A, 0x00,							// +5AF: PUSH 0x00
		0xFF, 0x50, 0x4C,					// +5B1: CALL DWORD PTR [EAX+4Ch]
		0x6A, 0x0B;							// +5B4: PUSH 0x0B
	patch2 +=
		-1, -1, -1, -1, -1, -1, -1, -1, -1,
		-1, -1, -1, -1, -1, -1, -1, -1,
		0x6A, 0x01,							// +5AF: PUSH 0x00 => PUSH 0x01
		-1, -1, -1, -1, -1;

	MemoryPatch mp2( NULL, patch2, backup2 );
	mp2.Search( L"Pleione.dll" );
	
	patches += mp1;
	patches += mp2;
	if (CheckPatches())
		WriteLog("Patch initialization successful: %s.\n", patchname.c_str());
	else
		WriteLog("Patch initialization failed: %s.\n", patchname.c_str());
}