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 f(fileName);
std::ifstream filestream;
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);
}
std::istream& f = (!ZIPFileName.empty()) ? static_cast<std::istream&>(zipStream) : static_cast<std::istream&>(filestream);
//Skip first 5 lines
std::string tempLine;

View File

@ -12,8 +12,8 @@ namespace ZL
Vector3f boneStartWorld;
float boneLength;
Matrix4f boneMatrixWorld;
// boneVector = boneLength * (0, 1, 0) â îñÿõ áëåíäåðà
// Then multiply by boneMatrixWorld è âû ïîëó÷èòå êîíå÷íóþ òî÷êó
// boneVector = boneLength * (0, 1, 0) <EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 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;
std::vector<int> children;
@ -49,7 +49,7 @@ namespace ZL
std::vector<Animation> animations;
void LoadFromFile(const std::string& fileName);
void LoadFromFile(const std::string& fileName, const std::string& ZIPFileName = "");
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;
std::ifstream f(fileName);
std::ifstream filestream;
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
std::string tempLine;
std::string tempLine;
std::getline(f, tempLine);

View File

@ -7,7 +7,7 @@
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;
std::vector<char> fileArr;
if (!ZIPFileName.empty()) {
fileArr = readFileFromZIP(fullFileName, ZIPFileName);
}
else {
fileArr = readFile(fullFileName);
}
fileArr = !ZIPFileName.empty() ? readFileFromZIP(fullFileName, ZIPFileName) : readFile(fullFileName);
size_t fileSize = fileArr.size();
@ -129,12 +124,7 @@ namespace ZL
TextureDataStruct texData;
std::vector<char> fileArr;
if (!ZIPFileName.empty()) {
fileArr = readFileFromZIP(fullFileName, ZIPFileName);
}
else {
fileArr = readFile(fullFileName);
}
fileArr = !ZIPFileName.empty() ? readFileFromZIP(fullFileName, ZIPFileName) : readFile(fullFileName);
size_t fileSize = fileArr.size();