Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/graphics/importer/md2/resource_md2.cc @ 9869

Last change on this file since 9869 was 9869, checked in by bensch, 18 years ago

orxonox/trunk: merged the new_class_id branche back to the trunk.
merged with command:
svn merge https://svn.orxonox.net/orxonox/branches/new_class_id trunk -r9683:HEAD
no conflicts… puh..

File size: 1.9 KB
RevLine 
[9781]1
[9824]2#include "resource_md2.h"
[9823]3#include "substring.h"
4#include "multi_type.h"
[9790]5#include "debug.h"
[9781]6
7
[9854]8ResourceMD2::ResourceMD2(const std::string& modelName, const std::string& skinName, float scale, const Resources::KeepLevel& keepLevel)
[9847]9    : Resource(&ResourceMD2::type)
[9784]10{
[9824]11  Resources::StorePointer* ptr = this->acquireResource(loadString(modelName, skinName, scale));
[9781]12
[9784]13  if (ptr)
[9786]14  {
[9825]15    PRINTF(0)("FOUND MD2: %s\n", modelName.c_str());
[9824]16    this->acquireData(static_cast<ResourceMD2::MD2ResourcePointer*>(ptr)->ptr());
[9786]17  }
[9784]18  else
19  {
[9825]20    PRINTF(0)("NOT FOUND MD2: %s\n", modelName.c_str());
[9847]21    std::string modelFileName = this->Resource::locateFile(modelName);
22    //std::string skinFileName = this->Resource::locateFile(skinName);
[9825]23    this->MD2Model::load(modelFileName, skinName, scale);
[9854]24    this->Resource::addResource(new ResourceMD2::MD2ResourcePointer(loadString(modelName, skinName, scale), keepLevel, this->MD2Model::dataPointer()));
[9784]25  }
[9824]26
[9784]27}
28
[9854]29ResourceMD2 ResourceMD2::createFromString(const std::string& loadString, const Resources::KeepLevel& keepLevel)
[9823]30{
31  SubString loadValues(loadString, ',');
[9824]32  std::string modelName;
33  std::string skinName;
34  float scale = 1.0f;
[9823]35  if (loadValues.size() > 0)
[9824]36    modelName = loadValues[0];
[9823]37  if (loadValues.size() > 1)
[9824]38    skinName = loadValues[1];
39  if (loadValues.size() > 2)
40    scale = MultiType(loadValues[2]).getFloat();
[9784]41
[9854]42  return ResourceMD2(modelName, skinName, scale, keepLevel);
[9823]43}
[9784]44
[9824]45std::string ResourceMD2::loadString(const std::string& modelName, const std::string& skinName, float scale)
46{
47  return modelName + ',' + skinName + ',' + MultiType(scale).getString();
48}
[9784]49
50
[9824]51Resources::tType<ResourceMD2> ResourceMD2::type("MD2");
[9784]52
53
[9823]54
55
56
[9824]57ResourceMD2::MD2ResourcePointer::MD2ResourcePointer(const std::string& loadString, const Resources::KeepLevel& keepLevel, const MD2Data::Pointer& data)
[9791]58    : Resources::StorePointer(loadString, keepLevel) , pointer(data)
[9785]59{}
[9781]60
61
Note: See TracBrowser for help on using the repository browser.