本文整理汇总了C++中ParticlesTemp::empty方法的典型用法代码示例。如果您正苦于以下问题:C++ ParticlesTemp::empty方法的具体用法?C++ ParticlesTemp::empty怎么用?C++ ParticlesTemp::empty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParticlesTemp
的用法示例。
在下文中一共展示了ParticlesTemp::empty方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: get_interaction_graph
InteractionGraph get_interaction_graph(ScoringFunctionAdaptor rsi,
const ParticlesTemp &ps) {
if (ps.empty()) return InteractionGraph();
InteractionGraph ret(ps.size());
Restraints rs =
create_decomposition(rsi->create_restraints());
// Model *m= ps[0]->get_model();
boost::unordered_map<ModelObject *, int> map;
InteractionGraphVertexName pm = boost::get(boost::vertex_name, ret);
DependencyGraph dg = get_dependency_graph(ps[0]->get_model());
DependencyGraphVertexIndex index = IMP::get_vertex_index(dg);
/*IMP_IF_LOG(VERBOSE) {
IMP_LOG_VERBOSE( "dependency graph is \n");
IMP::internal::show_as_graphviz(dg, std::cout);
}*/
for (unsigned int i = 0; i < ps.size(); ++i) {
ParticlesTemp t = get_dependent_particles(
ps[i], ParticlesTemp(ps.begin(), ps.end()), dg, index);
for (unsigned int j = 0; j < t.size(); ++j) {
IMP_USAGE_CHECK(map.find(t[j]) == map.end(),
"Currently particles which depend on more "
<< "than one particle "
<< "from the input set are not supported."
<< " Particle \"" << t[j]->get_name()
<< "\" depends on \"" << ps[i]->get_name()
<< "\" and \""
<< ps[map.find(t[j])->second]->get_name() << "\"");
map[t[j]] = i;
}
IMP_IF_LOG(VERBOSE) {
IMP_LOG_VERBOSE("Particle \"" << ps[i]->get_name() << "\" controls ");
for (unsigned int i = 0; i < t.size(); ++i) {
IMP_LOG_VERBOSE("\"" << t[i]->get_name() << "\" ");
}
IMP_LOG_VERBOSE(std::endl);
}
pm[i] = ps[i];
}
IMP::Restraints all_rs = IMP::get_restraints(rs);
for (Restraints::const_iterator it = all_rs.begin();
it != all_rs.end(); ++it) {
ModelObjectsTemp pl = (*it)->get_inputs();
add_edges(ps, pl, map, *it, ret);
}
/* Make sure that composite score states (eg the normalizer for
rigid body rotations) don't induce interactions among unconnected
particles.*/
ScoreStatesTemp ss = get_required_score_states(rs);
for (ScoreStatesTemp::const_iterator it = ss.begin(); it != ss.end(); ++it) {
ModelObjectsTemps interactions = (*it)->get_interactions();
for (unsigned int i = 0; i < interactions.size(); ++i) {
add_edges(ps, interactions[i], map, *it, ret);
}
}
IMP_INTERNAL_CHECK(boost::num_vertices(ret) == ps.size(),
"Wrong number of vertices " << boost::num_vertices(ret)
<< " vs " << ps.size());
return ret;
}
示例2: add_type
unsigned int MSConnectivityRestraint::add_type(
const ParticlesTemp &ps) {
if (!sc_ && !ps.empty()) {
sc_ = new IMP::internal::StaticListContainer<SingletonContainer>(
ps[0]->get_model(), "msconnectivity list");
}
ms_get_list(sc_)->add(IMP::internal::get_index(ps));
return particle_matrix_.add_type(ps);
}
示例3:
void
read_particles_from_buffer( const base::Vector<char> &buffer,
const ParticlesTemp &particles,
const FloatKeys &keys) {
if (particles.empty() || keys.empty()) {
return;
}
read_particles_from_buffer(&buffer.front(),
buffer.size()*sizeof(double), particles, keys);
IMP_CHECK_MODEL_PARTICLES(particles[0]->get_model());
}
示例4: ret
base::Vector<char>
write_particles_to_buffer(const ParticlesTemp &particles,
const FloatKeys &keys) {
if (particles.empty() || keys.empty()) {
return base::Vector<char>();
}
unsigned int size= particles.size()*keys.size()*sizeof(double);
base::Vector<char> ret(size);
write_particles_to_buffer(particles, keys, &ret.front(), size);
return ret;
}
示例5: get_possible_interactions
ParticlePairsTemp get_possible_interactions(const ParticlesTemp &ps,
double max_distance,
ParticleStatesTable *pst) {
if (ps.empty()) return ParticlePairsTemp();
ParticleStatesList psl;
ParticlesTemp all= pst->get_particles();
unsigned int max=0;
for (unsigned int i=0; i< all.size(); ++i) {
psl.push_back( pst->get_particle_states(all[i]));
max= std::max(psl[i]->get_number_of_particle_states(), max);
}
algebra::BoundingBox3Ds bbs(ps.size());
for (unsigned int i=0; i< max; ++i) {
for (unsigned int j=0; j< all.size(); ++j) {
psl[j]->load_particle_state(std::min(i,
psl[j]->get_number_of_particle_states()-1),
all[j]);
}
ps[0]->get_model()->update();
for (unsigned int j=0; j< ps.size(); ++j) {
core::XYZ d(ps[j]);
bbs[j]+= d.get_coordinates();
}
}
for (unsigned int j=0; j< ps.size(); ++j) {
core::XYZR d(ps[j]);
bbs[j]+= d.get_radius() + max_distance;
}
IMP_NEW(core::GridClosePairsFinder, gcpf, ());
gcpf->set_distance(max_distance);
IntPairs ips= gcpf->get_close_pairs(bbs);
ParticlePairsTemp ret(ips.size());
for (unsigned int i=0; i< ips.size(); ++i) {
ret[i]= ParticlePair(ps[ips[i].first], ps[ips[i].second]);
}
return ret;
}