+ template<class T>
+ static SGSharedPtr<T> loadById(PositionedID id)
+ {
+ return static_pointer_cast<T>( loadByIdImpl(id) );
+ }
+
+ template<class T>
+ static SGSharedPtr<T> loadById(const PositionedIDVec& id_vec, size_t index)
+ {
+ assert(index >= 0 && index < id_vec.size());
+ return loadById<T>(id_vec[index]);
+ }
+
+ template<class T>
+ static std::vector<SGSharedPtr<T> > loadAllById(const PositionedIDVec& id_vec)
+ {
+ std::vector<SGSharedPtr<T> > vec(id_vec.size());
+
+ for(size_t i = 0; i < id_vec.size(); ++i)
+ vec[i] = loadById<T>(id_vec[i]);
+
+ return vec;
+ }
+