loadfromfile bonesystem zip

This commit is contained in:
NurgazievichR 2025-03-18 16:49:46 +06:00
parent 2797b9fd3a
commit f37c0ee9e6
5 changed files with 41 additions and 24 deletions

View File

@ -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;

View File

@ -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);
}; };

View File

@ -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);

View File

@ -7,7 +7,7 @@
namespace ZL namespace ZL
{ {
VertexDataStruct LoadFromTextFile(const std::string& fileName); VertexDataStruct LoadFromTextFile(const std::string& fileName, const std::string& ZIPFileName = "");

View File

@ -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();