Bugfix: fix not initialized member attributes
parent
1b3e9e4e01
commit
ed3e218550
|
@ -65,12 +65,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
#include <iostream>
|
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <tuple>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
namespace Assimp {
|
namespace Assimp {
|
||||||
namespace FBX {
|
namespace FBX {
|
||||||
|
@ -187,8 +184,7 @@ std::string FBXConverter::MakeUniqueNodeName(const Model *const model, const aiN
|
||||||
|
|
||||||
/// This struct manages nodes which may or may not end up in the node hierarchy.
|
/// This struct manages nodes which may or may not end up in the node hierarchy.
|
||||||
/// When a node becomes a child of another node, that node becomes its owner and mOwnership should be released.
|
/// When a node becomes a child of another node, that node becomes its owner and mOwnership should be released.
|
||||||
struct FBXConverter::PotentialNode
|
struct FBXConverter::PotentialNode {
|
||||||
{
|
|
||||||
PotentialNode() : mOwnership(new aiNode), mNode(mOwnership.get()) {}
|
PotentialNode() : mOwnership(new aiNode), mNode(mOwnership.get()) {}
|
||||||
PotentialNode(const std::string& name) : mOwnership(new aiNode(name)), mNode(mOwnership.get()) {}
|
PotentialNode(const std::string& name) : mOwnership(new aiNode(name)), mNode(mOwnership.get()) {}
|
||||||
aiNode* operator->() { return mNode; }
|
aiNode* operator->() { return mNode; }
|
||||||
|
@ -452,7 +448,7 @@ void FBXConverter::GetUniqueName(const std::string &name, std::string &uniqueNam
|
||||||
auto it_pair = mNodeNames.insert({ name, 0 }); // duplicate node name instance count
|
auto it_pair = mNodeNames.insert({ name, 0 }); // duplicate node name instance count
|
||||||
unsigned int &i = it_pair.first->second;
|
unsigned int &i = it_pair.first->second;
|
||||||
while (!it_pair.second) {
|
while (!it_pair.second) {
|
||||||
i++;
|
++i;
|
||||||
std::ostringstream ext;
|
std::ostringstream ext;
|
||||||
ext << name << std::setfill('0') << std::setw(3) << i;
|
ext << name << std::setfill('0') << std::setw(3) << i;
|
||||||
uniqueName = ext.str();
|
uniqueName = ext.str();
|
||||||
|
@ -651,7 +647,6 @@ void FBXConverter::GetRotationMatrix(Model::RotOrder mode, const aiVector3D &rot
|
||||||
|
|
||||||
bool FBXConverter::NeedsComplexTransformationChain(const Model &model) {
|
bool FBXConverter::NeedsComplexTransformationChain(const Model &model) {
|
||||||
const PropertyTable &props = model.Props();
|
const PropertyTable &props = model.Props();
|
||||||
bool ok;
|
|
||||||
|
|
||||||
const float zero_epsilon = ai_epsilon;
|
const float zero_epsilon = ai_epsilon;
|
||||||
const aiVector3D all_ones(1.0f, 1.0f, 1.0f);
|
const aiVector3D all_ones(1.0f, 1.0f, 1.0f);
|
||||||
|
@ -665,6 +660,7 @@ bool FBXConverter::NeedsComplexTransformationChain(const Model &model) {
|
||||||
|
|
||||||
bool scale_compare = (comp == TransformationComp_GeometricScaling || comp == TransformationComp_Scaling);
|
bool scale_compare = (comp == TransformationComp_GeometricScaling || comp == TransformationComp_Scaling);
|
||||||
|
|
||||||
|
bool ok = true;
|
||||||
const aiVector3D &v = PropertyGet<aiVector3D>(props, NameTransformationCompProperty(comp), ok);
|
const aiVector3D &v = PropertyGet<aiVector3D>(props, NameTransformationCompProperty(comp), ok);
|
||||||
if (ok && scale_compare) {
|
if (ok && scale_compare) {
|
||||||
if ((v - all_ones).SquareLength() > zero_epsilon) {
|
if ((v - all_ones).SquareLength() > zero_epsilon) {
|
||||||
|
|
|
@ -59,14 +59,12 @@ namespace Util {
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// signal DOM construction error, this is always unrecoverable. Throws DeadlyImportError.
|
// signal DOM construction error, this is always unrecoverable. Throws DeadlyImportError.
|
||||||
void DOMError(const std::string& message, const Token& token)
|
void DOMError(const std::string& message, const Token& token) {
|
||||||
{
|
|
||||||
throw DeadlyImportError("FBX-DOM", Util::GetTokenText(&token), message);
|
throw DeadlyImportError("FBX-DOM", Util::GetTokenText(&token), message);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
void DOMError(const std::string& message, const Element* element /*= nullptr*/)
|
void DOMError(const std::string& message, const Element* element /*= nullptr*/) {
|
||||||
{
|
|
||||||
if(element) {
|
if(element) {
|
||||||
DOMError(message,element->KeyToken());
|
DOMError(message,element->KeyToken());
|
||||||
}
|
}
|
||||||
|
@ -76,8 +74,7 @@ void DOMError(const std::string& message, const Element* element /*= nullptr*/)
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// print warning, do return
|
// print warning, do return
|
||||||
void DOMWarning(const std::string& message, const Token& token)
|
void DOMWarning(const std::string& message, const Token& token) {
|
||||||
{
|
|
||||||
if(DefaultLogger::get()) {
|
if(DefaultLogger::get()) {
|
||||||
ASSIMP_LOG_WARN("FBX-DOM", Util::GetTokenText(&token), message);
|
ASSIMP_LOG_WARN("FBX-DOM", Util::GetTokenText(&token), message);
|
||||||
}
|
}
|
||||||
|
|
|
@ -135,6 +135,9 @@ ASSIMP_API aiScene::aiScene() :
|
||||||
mNumCameras(0),
|
mNumCameras(0),
|
||||||
mCameras(nullptr),
|
mCameras(nullptr),
|
||||||
mMetaData(nullptr),
|
mMetaData(nullptr),
|
||||||
|
mName(),
|
||||||
|
mNumSkeletons(0),
|
||||||
|
mSkeletons(nullptr),
|
||||||
mPrivate(new Assimp::ScenePrivateData()) {
|
mPrivate(new Assimp::ScenePrivateData()) {
|
||||||
// empty
|
// empty
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue