loadfromfile bonesystem zip
This commit is contained in:
parent
2797b9fd3a
commit
f37c0ee9e6
@ -21,11 +21,23 @@ namespace ZL
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void BoneSystem::LoadFromFile(const std::string& fileName)
|
void BoneSystem::LoadFromFile(const std::string& fileName, const std::string& ZIPFileName)
|
||||||
{
|
{
|
||||||
|
std::ifstream filestream;
|
||||||
|
std::istringstream zipStream;
|
||||||
std::ifstream f(fileName);
|
|
||||||
|
if (!ZIPFileName.empty())
|
||||||
|
{
|
||||||
|
std::vector<char> fileData = readFileFromZIP(fileName, ZIPFileName);
|
||||||
|
std::string fileContents(fileData.begin(), fileData.end());
|
||||||
|
zipStream.str(fileContents);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
filestream.open(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::istream& f = (!ZIPFileName.empty()) ? static_cast<std::istream&>(zipStream) : static_cast<std::istream&>(filestream);
|
||||||
|
|
||||||
//Skip first 5 lines
|
//Skip first 5 lines
|
||||||
std::string tempLine;
|
std::string tempLine;
|
||||||
|
|||||||
@ -12,8 +12,8 @@ namespace ZL
|
|||||||
Vector3f boneStartWorld;
|
Vector3f boneStartWorld;
|
||||||
float boneLength;
|
float boneLength;
|
||||||
Matrix4f boneMatrixWorld;
|
Matrix4f boneMatrixWorld;
|
||||||
// boneVector = boneLength * (0, 1, 0) â îñÿõ áëåíäåðà
|
// boneVector = boneLength * (0, 1, 0) <EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// Then multiply by boneMatrixWorld è âû ïîëó÷èòå êîíå÷íóþ òî÷êó
|
// Then multiply by boneMatrixWorld <EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
int parent;
|
int parent;
|
||||||
std::vector<int> children;
|
std::vector<int> children;
|
||||||
@ -49,7 +49,7 @@ namespace ZL
|
|||||||
|
|
||||||
std::vector<Animation> animations;
|
std::vector<Animation> animations;
|
||||||
|
|
||||||
void LoadFromFile(const std::string& fileName);
|
void LoadFromFile(const std::string& fileName, const std::string& ZIPFileName = "");
|
||||||
|
|
||||||
void Interpolate(int frame);
|
void Interpolate(int frame);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -8,14 +8,29 @@ namespace ZL
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
VertexDataStruct LoadFromTextFile(const std::string& fileName)
|
VertexDataStruct LoadFromTextFile(const std::string& fileName, const std::string& ZIPFileName)
|
||||||
{
|
{
|
||||||
VertexDataStruct result;
|
VertexDataStruct result;
|
||||||
|
std::ifstream filestream;
|
||||||
std::ifstream f(fileName);
|
std::istringstream zipStream;
|
||||||
|
|
||||||
|
if (!ZIPFileName.empty())
|
||||||
|
{
|
||||||
|
std::vector<char> fileData = readFileFromZIP(fileName, ZIPFileName);
|
||||||
|
std::string fileContents(fileData.begin(), fileData.end());
|
||||||
|
zipStream.str(fileContents);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
filestream.open(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Создаем ссылку f на нужный поток – после этого код ниже остается без изменений
|
||||||
|
std::istream& f = (!ZIPFileName.empty()) ? static_cast<std::istream&>(zipStream) : static_cast<std::istream&>(filestream);
|
||||||
|
|
||||||
|
|
||||||
//Skip first 5 lines
|
//Skip first 5 lines
|
||||||
std::string tempLine;
|
std::string tempLine;
|
||||||
|
|
||||||
std::getline(f, tempLine);
|
std::getline(f, tempLine);
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
namespace ZL
|
namespace ZL
|
||||||
{
|
{
|
||||||
VertexDataStruct LoadFromTextFile(const std::string& fileName);
|
VertexDataStruct LoadFromTextFile(const std::string& fileName, const std::string& ZIPFileName = "");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -75,12 +75,7 @@ namespace ZL
|
|||||||
TextureDataStruct texData;
|
TextureDataStruct texData;
|
||||||
std::vector<char> fileArr;
|
std::vector<char> fileArr;
|
||||||
|
|
||||||
if (!ZIPFileName.empty()) {
|
fileArr = !ZIPFileName.empty() ? readFileFromZIP(fullFileName, ZIPFileName) : readFile(fullFileName);
|
||||||
fileArr = readFileFromZIP(fullFileName, ZIPFileName);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
fileArr = readFile(fullFileName);
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t fileSize = fileArr.size();
|
size_t fileSize = fileArr.size();
|
||||||
|
|
||||||
@ -129,12 +124,7 @@ namespace ZL
|
|||||||
TextureDataStruct texData;
|
TextureDataStruct texData;
|
||||||
std::vector<char> fileArr;
|
std::vector<char> fileArr;
|
||||||
|
|
||||||
if (!ZIPFileName.empty()) {
|
fileArr = !ZIPFileName.empty() ? readFileFromZIP(fullFileName, ZIPFileName) : readFile(fullFileName);
|
||||||
fileArr = readFileFromZIP(fullFileName, ZIPFileName);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
fileArr = readFile(fullFileName);
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t fileSize = fileArr.size();
|
size_t fileSize = fileArr.size();
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user