Exemple #1
0
Area::PathIterator Area::pathBegin() const {
  if (vpath.size()) {
    return PathIterator(*this, false, vpath);
  } else {
    vector<ConstElemIter> path;
    if (areaSize) {
      for (size_t i = 0; i < area.size(); i++) {
        path.push_back((area[i])->begin());
      }
    }
    return PathIterator(*this, !areaSize, path);
  }
}
Exemple #2
0
Area::PathIterator Area::find(const IdentifiersType &path) const {
  if (path.size() != area.size()) {
    return pathEnd();
  }
  if (vpath.size()) {
    return vpath == path ? pathBegin() : pathEnd();
  } else {
    vector<ConstElemIter> p;
    for (size_t i = 0; i < area.size(); i++) {
      ConstElemIter it = area[i]->find(path[i]);
      if (it == area[i]->end()) {
        return pathEnd();
      }
      p.push_back(it);
    }
    return PathIterator(*this, false, p);
  }
}
void ModelManager::loadInternal(const boost::filesystem::path &Path) {
	fs::directory_iterator EndIterator;

	for (fs::directory_iterator PathIterator(Path); PathIterator != EndIterator; ++PathIterator) {
		// If the current visited path is a directory, recusively look for a model
		if (fs::is_directory(PathIterator->status())) {
			loadInternal(PathIterator->path());
		}
		// Validates the PMX model extension
		else if (fs::is_regular_file(PathIterator->status()) && PathIterator->path().has_extension()) {
			if (boost::iequals(PathIterator->path().extension().generic_wstring(), L".pmx")) {
				try {
					auto desc = ModelLoader->getDescription(PathIterator->path().wstring());
					KnownModels[desc.name.japanese] = PathIterator->path();
				}
				catch (PMX::Loader::Exception &e) {
				}
			}
		}
	}
}
Exemple #4
0
Area::PathIterator Area::pathEnd() const {
  vector<ConstElemIter> path;
  return PathIterator(*this, true, path);
}