本文整理汇总了C++中IdMap::getId方法的典型用法代码示例。如果您正苦于以下问题:C++ IdMap::getId方法的具体用法?C++ IdMap::getId怎么用?C++ IdMap::getId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IdMap
的用法示例。
在下文中一共展示了IdMap::getId方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
std::ostream& operator<<(std::ostream &out, Entity &e)
{
const size_t type = e.type->getId();
out << "{";
if (type == EntityType::CUSTOM) {
out << "type:custom, ";
} else {
out << "type:" << type << ", ";
}
out << "expired:" << (e.expired ? "true" : "false") << ", ";
out << "visible:" << (e.visible ? "true" : "false") << ", ";
out << "enabled:" << (e.enabled ? "true" : "false") << ", ";
IdMap components = e.type->getComponents();
for (size_t i = 0; i < components.size(); i++) {
size_t componentId = components.getId(i);
size_t offset = components.getIndex(componentId);
ComponentBase *componentBase = e.type->getCore()->getComponent(componentId);
AnyMemory value = e.components.sub(offset, componentBase->defaultValue.getSize());
out << componentBase->name << ":" << value << ", ";
}
out << "controllers:{";
IdMap controllers = e.type->getControllers();
for (size_t i = 0; i < controllers.size(); i++) {
if (i > 0) {
out << ",";
}
out << controllers.getId(i);
}
out << "}}";
return out;
}
示例2: addEntityListToMapBasedOnBitSet
void addEntityListToMapBasedOnBitSet( EntityList *listener, const IdMap &indices, map<size_t,vector<EntityList*>> &vmap )
{
for (size_t i = 0; i < indices.size(); i++) {
size_t id = indices.getId(i);
auto iterator = vmap.find( id );
if (iterator == vmap.end()) {
vmap.insert({id, {listener}});
} else {
iterator.second.push_back(listener);
}
}
}
示例3: notifyListsInMap
void notifyListsInMap( Entity *e, const IdMap& indices, map<size_t,vector<EntityList*>> &vmap )
{
for (size_t i = 0; i < indices.size(); i++) {
size_t id = indices.getId(i);
auto iterator = vmap.find( id );
if (iterator != vmap.end()) {
for (auto &listener : iterator.second) {
listener.add( e );
}
}
}
}