Example #1
0
/**
 * A função executa_comando é uma das funções mais importantes pois é ela que vai reagir aos comandos dados pelo utilizador.
 * A função irá receber a linha de comando separa la em dois, no comando e nos argumentos do comando, e passa los para as funções associadas aos comandos.
 * @param Tab Tabuleiro do jogo
 * @param DIM dimensão do tabuleiro
 * @param linha Recebe uma string que corresponde á linha lida da shell.
 * @returns torna um inteiro que verifica se foi ou não bem sucedida a função. 
 */
int executa_comando(char *linha,int *DIM,Elem **Tab) {
  char cmd[1025];
  char args[1025];

	int nargs=sscanf(linha, "%s %[^\n]", cmd, args);

	if((strcmp(cmd, "b") == 0 || strcmp(cmd, "p") == 0 || strcmp(cmd, "i") == 0))
		return executaJogada(args,cmd,DIM,Tab);
	if(strcmp(cmd, "cr") == 0 )
		return executaCriaJogo(args,DIM,Tab);	
	if(strcmp(cmd,"gr")==0 )
		return executaGravaJogo(args,DIM,Tab);  
	if(strcmp(cmd,"?")==0 && nargs==1)
		return ajuda();	
	if(strcmp(cmd,"trp")==0 && nargs==1)
		return trp(Tab,DIM);
	if(strcmp(cmd,"snd")==0 && nargs==1)
		return snd(Tab,DIM);
	if(strcmp(cmd,"pis")==0 && nargs==1)
		return pis(Tab,DIM);
	if(strcmp(cmd,"pds")==0 && nargs==1)
		return pds(Tab,DIM);
	if(strcmp(cmd,"vb")==0 && nargs==1)
		return vb(Tab,DIM);
	if(strcmp(cmd,"vp")==0 && nargs==1)
		return vp(Tab,DIM);
	if(strcmp(cmd,"vl")==0 && nargs==1)
		return vl(Tab,DIM);
	if(strcmp(cmd,"q")==0)
		exit(0);

	return mensagem_de_erro(E_COMMAND);
}	
Example #2
0
kernel::ModelObjectsTemp MolecularDynamicsMover::do_get_inputs() const {
    kernel::ParticleIndexes pis(md_->get_simulation_particle_indexes());
    kernel::ModelObjectsTemp ret(pis.size());
    for (unsigned int i=0; i< pis.size(); ++i) {
        ret[i] = get_model()->get_particle(pis[i]);
    }
    return ret;
}
Example #3
0
double RigidBodyUmbrella::unprotected_evaluate(DerivativeAccumulator
                                               * accum) const {
    if (accum) IMP_THROW("Derivatives not implemented", ModelException);
    kernel::ParticleIndexes pis(1, pi_);
    internal::Coord x(internal::get_coordinates_from_rbs(get_model(), pis,
                ref_));
    double d2 = internal::get_squared_distance(x, x0_, k_);
    double score = 0.5 * alpha_ * d2;
    return score;
}
Example #4
0
Eigen::Vector3d Referential::compute_centroid() const {
  // get rigid body member coordinates
  RigidBody d(m_, pi_);
  ParticleIndexes pis(d.get_member_particle_indexes());
  Eigen::Matrix<double, Eigen::Dynamic, 3> coords(pis.size(), 3);
  for (unsigned i = 0; i < pis.size(); i++) {
    XYZ xyz(m_, pis[i]);
    coords(i, 0) = xyz.get_x();
    coords(i, 1) = xyz.get_y();
    coords(i, 2) = xyz.get_z();
  }
  return coords.colwise().mean();
}
int main(int argc, char* argv[])	{

	string datafile = argv[1];
	string partitionfile = argv[2];
	string outfile = argv[3];

	SequenceAlignment* protdata = new FileSequenceAlignment(datafile);
	if (protdata->GetNstate() != Naa)	{
		cerr << "error: should be protein datafile\n";
		exit(1);
	}
	StateSpace* statespace = protdata->GetStateSpace();

	int Nsite = protdata->GetNsite();

	ifstream pis(partitionfile.c_str());
	int Ngene;
	pis >> Ngene;

	int* genesize = new int[Ngene];
	int* genefirst = new int[Ngene];
	SequenceAlignment** genedata = new SequenceAlignment*[Ngene];
	int count = 0;
	for (int gene=0; gene<Ngene; gene++)	{
		pis >> genesize[gene];
		genefirst[gene] = count;
		count += genesize[gene];
		genedata[gene] = new SequenceAlignment(protdata,genefirst[gene],genesize[gene]);
	}
	if (count != Nsite)	{
		cerr << "error: non matching total size\n";
		cerr << "sum over genes: " << count << '\n';
		cerr << "concatenation : " << Nsite << '\n';
		exit(1);
	}

	cerr << "number of genes: " << Ngene << '\n';
	ofstream os(argv[3]);

	double* freq = new double[Naa];
	for (int gene=0; gene<Ngene; gene++)	{
		genedata[gene]->GetEmpiricalFreq(freq);
		os << gene;
		for (int k=0; k<Naa; k++)	{
			os << '\t' << freq[k];
		}
		os << '\n';
	}
}
Example #6
0
void parser::parse_option( parser_input &pi ) {
    if( pi.past_end() ) {
        return;
    }
    
     pisaver<parser_input,0> pis(pi);
     
     char *arg = pi.peek();
//      std::cout << "arg: " << arg << "\n";
     if( arg[0] != '-' ) {
        throw std::runtime_error( "WARNING: expected option. bailing out." );
     }
     
     char opt = arg[1];
     if( !std::isalnum(opt) ) {
         throw std::runtime_error( "WARNING: bad option. bailing out." );
     }
     if( !m_options[opt] ) {
         throw std::runtime_error( "WARNING: unknown option. bailing out." );
     }
     
     m_option_count[opt]++;
     pi.next();
     
     if( m_opt_has_argument[opt] ) {
         
         
         if( m_opt_values[opt] != 0 ) {
             if( m_opt_values[opt]->allow_empty() ) {
                 m_opt_values[opt]->set("1"); // HACK
             } else {
                 if( pi.past_end() ) {
                     throw std::runtime_error( "WARNING: option expects argument. bailing out." );
                 }
                 
                 m_opt_values[opt]->set(pi.peek());
                 pi.next();
             }
         }
         
     }
     pis.commit();

    
}
Example #7
0
Eigen::Matrix3d Referential::compute_base() const {
  RigidBody d(m_, pi_);
  ParticleIndexes pis(d.get_member_particle_indexes());
  if (pis.size() < 3)
    IMP_THROW("rigid body must contain at least 3 xyzs", ModelException);
  XYZ o(m_, pis[0]), x(m_, pis[1]), y(m_, pis[2]);
  Eigen::Vector3d vo, e1, e2;
  vo << o.get_x(), o.get_y(), o.get_z();
  e1 << x.get_x(), x.get_y(), x.get_z();
  e1 = e1 - vo;
  e1.normalize();
  e2 << y.get_x(), y.get_y(), y.get_z();
  e2 = e2 - vo;
  e2 = e2 - e2.dot(e1) * e1;
  e2.normalize();
  Eigen::Matrix3d retmat;
  retmat << e1, e2, e1.cross(e2);
  return retmat;
}
Example #8
0
void Transformer::transform() {
  // convert translation and rotation from local to global coords
  Eigen::Quaterniond refq = ref_.get_rotation();
  Eigen::Vector3d global_t(refq * t_);
  Eigen::Quaterniond global_q(pick_positive(refq * q_ * refq.conjugate()));
  // get rb centroid as a translation
  Eigen::Vector3d centroid(Referential(m_, target_).get_centroid());
  // transform each rigid member
  RigidBody d(m_, target_);
  ParticleIndexes pis(d.get_member_particle_indexes());
  for (unsigned i = 0; i < pis.size(); i++) {
    XYZ xyz(m_, pis[i]);
    Eigen::Vector3d coords;
    coords << xyz.get_x(), xyz.get_y(), xyz.get_z();
    Eigen::Vector3d newcoords = global_q * (coords - centroid) + centroid
                                    + global_t;
    xyz.set_x(newcoords(0));
    xyz.set_y(newcoords(1));
    xyz.set_z(newcoords(2));
  }
  // update rigid body
  d.set_reference_frame_from_members(pis);
}
Example #9
0
void demo_csgo::handle_protobuf(std::istream& is, int32_t data_length) {
    google::protobuf::io::IstreamInputStream pis(&is, data_length);
    google::protobuf::io::CodedInputStream pcis(&pis);
    while(data_length > 0) {
        uint32_t cmd;
        uint32_t size;

        if(!pcis.ReadVarint32(&cmd)) {
            std::cout << "!pcis.ReadVarint32(&cmd)" << std::endl;
            std::cin.ignore();
        }

        if(!pcis.ReadVarint32(&size)) {
            std::cout << "!pcis.ReadVarint32(&size)" << std::endl;
            std::cin.ignore();
        }

        data_length -= sizeof(cmd);
        data_length -= sizeof(size);

        google::protobuf::io::CodedInputStream::Limit limit = pcis.PushLimit(size);

        if(!(NET_Messages_IsValid(cmd) || SVC_Messages_IsValid(cmd))) {
            //std::cerr << "handle_protobuf(): !(NET_Messages_IsValid(cmd) || SVC_Messages_IsValid(cmd))" << std::endl;
            //std::cerr << "cmd=" << std::dec << cmd << ",size=" << size << std::endl;
        }

        switch(cmd) {
        case net_NOP:               handle_netmessages<CNETMsg_NOP, net_NOP>(pcis); break;
        case net_Disconnect:        handle_netmessages<CNETMsg_Disconnect, net_Disconnect>(pcis); break;
        case net_File:              handle_netmessages<CNETMsg_File, net_File>(pcis); break;
        case /* net_SplitScreenUser */ 3: std::cout << "handle_protobuf(): switch(3) not implemented" << std::endl; break; // handle_netmessages<CNETMsg_SplitScreenUser, net_SplitScreenUser>(pcis); break;
        case net_Tick:              handle_netmessages<CNETMsg_Tick, net_Tick>(pcis); break;
        case net_StringCmd:         handle_netmessages<CNETMsg_StringCmd, net_StringCmd>(pcis); break;
        case net_SetConVar:         handle_netmessages<CNETMsg_SetConVar, net_SetConVar>(pcis); break;
        case net_SignonState:       handle_netmessages<CNETMsg_SignonState, net_SignonState>(pcis); break;
        case svc_ServerInfo:        handle_netmessages<CSVCMsg_ServerInfo, svc_ServerInfo>(pcis); break;
        case svc_SendTable:         handle_netmessages<CSVCMsg_SendTable, svc_SendTable>(pcis); break;
        case svc_ClassInfo:         handle_netmessages<CSVCMsg_ClassInfo, svc_ClassInfo>(pcis); break;
        case svc_SetPause:          handle_netmessages<CSVCMsg_SetPause, svc_SetPause>(pcis); break;
        case svc_CreateStringTable: handle_netmessages<CSVCMsg_CreateStringTable, svc_CreateStringTable>(pcis); break;
        case svc_UpdateStringTable: handle_netmessages<CSVCMsg_UpdateStringTable, svc_UpdateStringTable>(pcis); break;
        case svc_VoiceInit:         handle_netmessages<CSVCMsg_VoiceInit, svc_VoiceInit>(pcis); break;
        case svc_VoiceData:         handle_netmessages<CSVCMsg_VoiceData, svc_VoiceData>(pcis); break;
        case svc_Print:             handle_netmessages<CSVCMsg_Print, svc_Print>(pcis); break;
        case svc_Sounds:            handle_netmessages<CSVCMsg_Sounds, svc_Sounds>(pcis); break;
        case svc_SetView:           handle_netmessages<CSVCMsg_SetView, svc_SetView>(pcis); break;
        case svc_FixAngle:          handle_netmessages<CSVCMsg_FixAngle, svc_FixAngle>(pcis); break;
        case svc_CrosshairAngle:    handle_netmessages<CSVCMsg_CrosshairAngle, svc_CrosshairAngle>(pcis); break;
        case svc_BSPDecal:          handle_netmessages<CSVCMsg_BSPDecal, svc_BSPDecal>(pcis); break;
        case /* svc_SplitScreen */ 22: std::cout << "handle_protobuf(): switch(22) not implemented" << std::endl; break; // handle_netmessages<CSVCMsg_SplitScreen, svc_SplitScreen>(pcis); break;
        case svc_UserMessage:       handle_netmessages<CSVCMsg_UserMessage, svc_UserMessage>(pcis); break;
        case /* svc_EntityMessage */ 24: std::cout << "handle_protobuf(): switch(24) not implemented" << std::endl; break; // handle_netmessages<CSVCMsg_EntityMessage, svc_EntityMessage>(pcis); break;
        case svc_GameEvent:         handle_netmessages<CSVCMsg_GameEvent, svc_GameEvent>(pcis); break;
        case svc_PacketEntities:    handle_netmessages<CSVCMsg_PacketEntities, svc_PacketEntities>(pcis); break;
        case svc_TempEntities:      handle_netmessages<CSVCMsg_TempEntities, svc_TempEntities>(pcis); break;
        case svc_Prefetch:          handle_netmessages<CSVCMsg_Prefetch, svc_Prefetch>(pcis); break;
        case svc_Menu:              handle_netmessages<CSVCMsg_Menu, svc_Menu>(pcis); break;
        case svc_GameEventList:     handle_netmessages<CSVCMsg_GameEventList, svc_GameEventList>(pcis); break;
        case svc_GetCvarValue:      handle_netmessages<CSVCMsg_GetCvarValue, svc_GetCvarValue>(pcis); break;
        case /* svc_PacketReliable? */ 32: std::cout << "handle_protobuf(): switch(32) not implemented" << std::endl; break;
        case /* svc_PaintmapData */ 33: std::cout << "handle_protobuf(): switch(33) not implemented" << std::endl; break; // handle_netmessages<CSVCMsg_PaintmapData, svc_PaintmapData>(pcis); break;
        case /* svc_CmdKeyValues */ 34: std::cout << "handle_protobuf(): switch(34) not implemented" << std::endl; break; // handle_netmessages<CSVCMsg_CmdKeyValues, svc_CmdKeyValues>(pcis); break;
        case /* svc_EncryptedData */ 35: break; std::cout << "handle_protobuf(): switch(35) not implemented" << std::endl; break; // handle_netmessages<CSVCMsg_EncryptedData, svc_EncryptedData>(pcis); break;
        default:
            std::cout << "handle_protobuf(): switch(" << std::dec << cmd << ") default" << std::endl;
            std::cin.ignore();
            break;
        }

        if(0 != pcis.BytesUntilLimit()) {
            //std::cout << "handle_protobuf(): draining: " << pcis.BytesUntilLimit() << std::endl;
            pcis.Skip(pcis.BytesUntilLimit());
        }

        pcis.PopLimit(limit);

        data_length -= size;
    }
}
      db::MediaFile FileImporter::import(org::esb::io::File file) {
        db::HiveDb & connection = *getContext()->database; //("sqlite3", org::esb::config::Config::get("db.url"));
        db::MediaFile mediafile(connection);
        FormatInputStream fis(&file);
        if (!fis.isValid())return mediafile;
        connection.begin();
        PacketInputStream pis(&fis);
        //int id = 0;
        //  try {
        //    db::MediaFile mfile=litesql::select<db::MediaFile>(db, db::MediaFile::Path==file.getFilePath() && db::MediaFile::Filename==file.getFileName()).one();
        //    id=mfile.id;
        //  } catch (litesql::NotFound ex) {
        //org::esb::io::File tmpFile(file);
        mediafile.filename = file.getFileName();
        mediafile.path = file.getFilePath();
        mediafile.filesize = (double) fis.getFileSize();
        mediafile.streamcount = fis.getStreamCount();
        mediafile.containertype = fis.getFormatContext()->iformat->name;
        mediafile.duration = (double) fis.getFormatContext()->duration;
        mediafile.starttime = (double) fis.getFormatContext()->start_time;
        mediafile.bitrate = fis.getFormatContext()->bit_rate;
        mediafile.update();

        AVFormatContext *ctx = fis.getFormatContext();

        for (int a = 0; a < mediafile.streamcount; a++) {
          db::Stream stream(mediafile.getDatabase());
          stream.streamindex = (int) a;
          stream.streamtype = (int) ctx->streams[a]->codec->codec_type;
          stream.codecid = (int) ctx->streams[a]->codec->codec_id;
          stream.codecname = (const char*) ctx->streams[a]->codec->codec_name;
          stream.frameratenum = ctx->streams[a]->r_frame_rate.num;
          stream.framerateden = ctx->streams[a]->r_frame_rate.den;
          stream.firstpts = (double) ctx->streams[a]->start_time;
          stream.firstdts = (double) ctx->streams[a]->first_dts;
          stream.duration = (double) ctx->streams[a]->duration;
          stream.nbframes = (double) ctx->streams[a]->nb_frames;
          stream.streamtimebasenum = ctx->streams[a]->time_base.num;
          stream.streamtimebaseden = ctx->streams[a]->time_base.den;
          stream.codectimebasenum = ctx->streams[a]->codec->time_base.num;
          stream.codectimebaseden = ctx->streams[a]->codec->time_base.den;
          stream.ticksperframe = ctx->streams[a]->codec->ticks_per_frame;
          stream.width = ctx->streams[a]->codec->width;
          stream.height = ctx->streams[a]->codec->height;
          stream.gopsize = ctx->streams[a]->codec->gop_size;
          stream.pixfmt = (int) ctx->streams[a]->codec->pix_fmt;
          stream.bitrate = ctx->streams[a]->codec->bit_rate;
          stream.samplerate = ctx->streams[a]->codec->sample_rate;
          stream.samplefmt = (int) ctx->streams[a]->codec->sample_fmt;
          stream.channels = ctx->streams[a]->codec->channels;
          stream.bitspercodedsample = ctx->streams[a]->codec->bits_per_coded_sample;
          stream.extradatasize = 0;
          stream.extradatasize = ctx->streams[a]->codec->extradata_size;
          //          std::string data((char *)ctx->streams[a]->codec->extradata,ctx->streams[a]->codec->extradata_size);
          if (stream.extradatasize > 0)
            stream.extradata = litesql::Blob((char *) ctx->streams[a]->codec->extradata, ctx->streams[a]->codec->extradata_size);
          stream.update();
          const AVOption * option = NULL;
          int max_offset = 0;
          while (option = av_next_option(ctx->streams[a]->codec, option)) {
            if (option->offset > 0) {
              /*jump over depricated options*/
              if (strcmp(option->name, "lpc_coeff_precision") == 0 ||
                      strcmp(option->name, "prediction_order_method") == 0 ||
                      strcmp(option->name, "min_partition_order") == 0 ||
                      strcmp(option->name, "max_partition_order") == 0 ||
                      strcmp(option->name, "lpc_type") == 0 ||
                      strcmp(option->name, "drc_scale") == 0 ||
                      strcmp(option->name, "lpc_passes") == 0
                      )continue;
              max_offset = option->offset > max_offset ? option->offset : max_offset;
              db::StreamParameter sp(stream.getDatabase());
              sp.name = option->name;
              int len = 1000;
              char data[1000];
              memset(&data, 0, 1000);
              av_get_string(ctx->streams[a]->codec, option->name, NULL, data, len);
              if (strlen(data) > 0) {
                sp.val = std::string(data);
              }
              sp.update();
              stream.params().link(sp);
            }
          }
          LOGDEBUG("maxoffset=" << max_offset);
          db::StreamParameter sp(stream.getDatabase());
          sp.name = "codec_id";
          sp.val = org::esb::util::StringUtil::toString(ctx->streams[a]->codec->codec_id);
          sp.update();
          stream.params().link(sp);
          mediafile.streams().link(stream);
        }
        connection.commit();

        return mediafile;

      }