Browse Source

Merge branch 'glt2anim' of https://github.com/haroonq/assimp into glt2anim

Haroon Qureshi 6 năm trước cách đây
mục cha
commit
bfe1dc2914
2 tập tin đã thay đổi với 37 bổ sung0 xóa
  1. 15 0
      code/glTF2Exporter.cpp
  2. 22 0
      code/glTF2Importer.cpp

+ 15 - 0
code/glTF2Exporter.cpp

@@ -973,9 +973,14 @@ inline void ExtractTranslationSampler(Asset& asset, std::string& animId, Ref<Buf
         return;
     }
 
+<<<<<<< HEAD
     const vec3 kZeros = {0, 0, 0};
     std::vector<float> times(numKeyframes);
     std::vector<vec3> values(numKeyframes, kZeros);
+=======
+    std::vector<float> times(numKeyframes);
+    std::vector<vec3> values(numKeyframes);
+>>>>>>> 57d3d71b6ec68f41a10c1da2f01d096f1308e88c
     for (unsigned int i = 0; i < numKeyframes; ++i) {
         const aiVectorKey& key = nodeChannel->mPositionKeys[i];
         // mTime is measured in ticks, but GLTF time is measured in seconds, so convert.
@@ -997,9 +1002,14 @@ inline void ExtractScaleSampler(Asset& asset, std::string& animId, Ref<Buffer>&
         return;
     }
 
+<<<<<<< HEAD
     const vec3 kZeros = {0, 0, 0};
     std::vector<float> times(numKeyframes);
     std::vector<vec3> values(numKeyframes, kZeros);
+=======
+    std::vector<float> times(numKeyframes);
+    std::vector<vec3> values(numKeyframes);
+>>>>>>> 57d3d71b6ec68f41a10c1da2f01d096f1308e88c
     for (unsigned int i = 0; i < numKeyframes; ++i) {
         const aiVectorKey& key = nodeChannel->mScalingKeys[i];
         // mTime is measured in ticks, but GLTF time is measured in seconds, so convert.
@@ -1021,9 +1031,14 @@ inline void ExtractRotationSampler(Asset& asset, std::string& animId, Ref<Buffer
         return;
     }
 
+<<<<<<< HEAD
     const vec4 kZeros = {0, 0, 0, 0};
     std::vector<float> times(numKeyframes);
     std::vector<vec4> values(numKeyframes, kZeros);
+=======
+    std::vector<float> times(numKeyframes);
+    std::vector<vec4> values(numKeyframes);
+>>>>>>> 57d3d71b6ec68f41a10c1da2f01d096f1308e88c
     for (unsigned int i = 0; i < numKeyframes; ++i) {
         const aiQuatKey& key = nodeChannel->mRotationKeys[i];
         // mTime is measured in ticks, but GLTF time is measured in seconds, so convert.

+ 22 - 0
code/glTF2Importer.cpp

@@ -751,9 +751,15 @@ static void BuildVertexWeightMapping(Ref<Mesh>& mesh, std::vector<std::vector<ai
     attr.weight[0]->ExtractData(weights);
     attr.joint[0]->ExtractData(indices);
 
+<<<<<<< HEAD
     for (int i = 0; i < num_vertices; ++i) {
         for (int j = 0; j < 4; ++j) {
             const unsigned int bone = indices[i].values[j];
+=======
+    for (unsigned int i = 0; i < num_vertices; ++i) {
+        for (unsigned int j = 0; j < 4; ++j) {
+            const int bone = indices[i].values[j];
+>>>>>>> 57d3d71b6ec68f41a10c1da2f01d096f1308e88c
             const float weight = weights[i].values[j];
             if (weight > 0 && bone >= 0 && bone < map.size()) {
                 map[bone].reserve(8);
@@ -894,7 +900,11 @@ aiNodeAnim* CreateNodeAnim(glTF2::Asset& r, Node& node, AnimationSamplers& sampl
         samplers.translation->output->ExtractData(values);
         anim->mNumPositionKeys = samplers.translation->input->count;
         anim->mPositionKeys = new aiVectorKey[anim->mNumPositionKeys];
+<<<<<<< HEAD
         for (unsigned int i = 0; i < anim->mNumPositionKeys; ++i) {
+=======
+        for (int i = 0; i < anim->mNumPositionKeys; ++i) {
+>>>>>>> 57d3d71b6ec68f41a10c1da2f01d096f1308e88c
             anim->mPositionKeys[i].mTime = times[i] * kMillisecondsFromSeconds;
             anim->mPositionKeys[i].mValue = values[i];
         }
@@ -916,7 +926,11 @@ aiNodeAnim* CreateNodeAnim(glTF2::Asset& r, Node& node, AnimationSamplers& sampl
         samplers.rotation->output->ExtractData(values);
         anim->mNumRotationKeys = samplers.rotation->input->count;
         anim->mRotationKeys = new aiQuatKey[anim->mNumRotationKeys];
+<<<<<<< HEAD
         for (unsigned int i = 0; i < anim->mNumRotationKeys; ++i) {
+=======
+        for (int i = 0; i < anim->mNumRotationKeys; ++i) {
+>>>>>>> 57d3d71b6ec68f41a10c1da2f01d096f1308e88c
             anim->mRotationKeys[i].mTime = times[i] * kMillisecondsFromSeconds;
             anim->mRotationKeys[i].mValue.x = values[i].w;
             anim->mRotationKeys[i].mValue.y = values[i].x;
@@ -942,7 +956,11 @@ aiNodeAnim* CreateNodeAnim(glTF2::Asset& r, Node& node, AnimationSamplers& sampl
         samplers.scale->output->ExtractData(values);
         anim->mNumScalingKeys = samplers.scale->input->count;
         anim->mScalingKeys = new aiVectorKey[anim->mNumScalingKeys];
+<<<<<<< HEAD
         for (unsigned int i = 0; i < anim->mNumScalingKeys; ++i) {
+=======
+        for (int i = 0; i < anim->mNumScalingKeys; ++i) {
+>>>>>>> 57d3d71b6ec68f41a10c1da2f01d096f1308e88c
             anim->mScalingKeys[i].mTime = times[i] * kMillisecondsFromSeconds;
             anim->mScalingKeys[i].mValue = values[i];
         }
@@ -965,7 +983,11 @@ std::unordered_map<unsigned int, AnimationSamplers> GatherSamplers(Animation& an
     std::unordered_map<unsigned int, AnimationSamplers> samplers;
     for (unsigned int c = 0; c < anim.channels.size(); ++c) {
         Animation::Channel& channel = anim.channels[c];
+<<<<<<< HEAD
         if (channel.sampler >= static_cast<int>(anim.samplers.size())) {
+=======
+        if (channel.sampler >= anim.samplers.size()) {
+>>>>>>> 57d3d71b6ec68f41a10c1da2f01d096f1308e88c
             continue;
         }