|
|
|
|
@ -31,11 +31,11 @@ namespace Magnum { namespace Trade {
|
|
|
|
|
|
|
|
|
|
ObjectData3D::ObjectData3D(std::vector<UnsignedInt> children, const Matrix4& transformation, const ObjectInstanceType3D instanceType, const UnsignedInt instance, const void* const importerState): _children{std::move(children)}, _transformation{transformation}, _instanceType{instanceType}, _flags{}, _instance{Int(instance)}, _importerState{importerState} {} |
|
|
|
|
|
|
|
|
|
ObjectData3D::ObjectData3D(std::vector<UnsignedInt> children, const Vector3& translation, const Quaternion& rotation, const Vector3& scaling, const ObjectInstanceType3D instanceType, const UnsignedInt instance, const void* const importerState): _children{std::move(children)}, _transformation{translation, rotation, scaling}, _instanceType{instanceType}, _flags{ObjectFlag3D::HasTransformationRotationScaling}, _instance{Int(instance)}, _importerState{importerState} {} |
|
|
|
|
ObjectData3D::ObjectData3D(std::vector<UnsignedInt> children, const Vector3& translation, const Quaternion& rotation, const Vector3& scaling, const ObjectInstanceType3D instanceType, const UnsignedInt instance, const void* const importerState): _children{std::move(children)}, _transformation{translation, rotation, scaling}, _instanceType{instanceType}, _flags{ObjectFlag3D::HasTranslationRotationScaling}, _instance{Int(instance)}, _importerState{importerState} {} |
|
|
|
|
|
|
|
|
|
ObjectData3D::ObjectData3D(std::vector<UnsignedInt> children, const Matrix4& transformation, const void* const importerState): _children{std::move(children)}, _transformation{transformation}, _instanceType{ObjectInstanceType3D::Empty}, _flags{}, _instance{-1}, _importerState{importerState} {} |
|
|
|
|
|
|
|
|
|
ObjectData3D::ObjectData3D(std::vector<UnsignedInt> children, const Vector3& translation, const Quaternion& rotation, const Vector3& scaling, const void* const importerState): _children{std::move(children)}, _transformation{translation, rotation, scaling}, _instanceType{ObjectInstanceType3D::Empty}, _flags{ObjectFlag3D::HasTransformationRotationScaling}, _instance{-1}, _importerState{importerState} {} |
|
|
|
|
ObjectData3D::ObjectData3D(std::vector<UnsignedInt> children, const Vector3& translation, const Quaternion& rotation, const Vector3& scaling, const void* const importerState): _children{std::move(children)}, _transformation{translation, rotation, scaling}, _instanceType{ObjectInstanceType3D::Empty}, _flags{ObjectFlag3D::HasTranslationRotationScaling}, _instance{-1}, _importerState{importerState} {} |
|
|
|
|
|
|
|
|
|
ObjectData3D::ObjectData3D(ObjectData3D&&) |
|
|
|
|
#if !defined(__GNUC__) || __GNUC__*100 + __GNUC_MINOR__ != 409 |
|
|
|
|
@ -52,25 +52,25 @@ ObjectData3D& ObjectData3D::operator=(ObjectData3D&&)
|
|
|
|
|
= default; |
|
|
|
|
|
|
|
|
|
Vector3 ObjectData3D::translation() const { |
|
|
|
|
CORRADE_ASSERT(_flags & ObjectFlag3D::HasTransformationRotationScaling, |
|
|
|
|
CORRADE_ASSERT(_flags & ObjectFlag3D::HasTranslationRotationScaling, |
|
|
|
|
"Trade::ObjectData3D::translation(): object has only a combined transformation", {}); |
|
|
|
|
return _transformation.trs.translation; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Quaternion ObjectData3D::rotation() const { |
|
|
|
|
CORRADE_ASSERT(_flags & ObjectFlag3D::HasTransformationRotationScaling, |
|
|
|
|
CORRADE_ASSERT(_flags & ObjectFlag3D::HasTranslationRotationScaling, |
|
|
|
|
"Trade::ObjectData3D::rotation(): object has only a combined transformation", {}); |
|
|
|
|
return _transformation.trs.rotation; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Vector3 ObjectData3D::scaling() const { |
|
|
|
|
CORRADE_ASSERT(_flags & ObjectFlag3D::HasTransformationRotationScaling, |
|
|
|
|
CORRADE_ASSERT(_flags & ObjectFlag3D::HasTranslationRotationScaling, |
|
|
|
|
"Trade::ObjectData3D::scaling(): object has only a combined transformation", {}); |
|
|
|
|
return _transformation.trs.scaling; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Matrix4 ObjectData3D::transformation() const { |
|
|
|
|
if(_flags & ObjectFlag3D::HasTransformationRotationScaling) |
|
|
|
|
if(_flags & ObjectFlag3D::HasTranslationRotationScaling) |
|
|
|
|
return Matrix4::from(_transformation.trs.rotation.toMatrix(), |
|
|
|
|
_transformation.trs.translation)* |
|
|
|
|
Matrix4::scaling(_transformation.trs.scaling); |
|
|
|
|
@ -97,7 +97,7 @@ Debug& operator<<(Debug& debug, ObjectFlag3D value) {
|
|
|
|
|
switch(value) { |
|
|
|
|
/* LCOV_EXCL_START */ |
|
|
|
|
#define _c(value) case ObjectFlag3D::value: return debug << "Trade::ObjectFlag3D::" #value; |
|
|
|
|
_c(HasTransformationRotationScaling) |
|
|
|
|
_c(HasTranslationRotationScaling) |
|
|
|
|
#undef _c |
|
|
|
|
/* LCOV_EXCL_STOP */ |
|
|
|
|
} |
|
|
|
|
@ -107,7 +107,7 @@ Debug& operator<<(Debug& debug, ObjectFlag3D value) {
|
|
|
|
|
|
|
|
|
|
Debug& operator<<(Debug& debug, ObjectFlags3D value) { |
|
|
|
|
return enumSetDebugOutput(debug, value, "Trade::ObjectFlags3D{}", { |
|
|
|
|
ObjectFlag3D::HasTransformationRotationScaling}); |
|
|
|
|
ObjectFlag3D::HasTranslationRotationScaling}); |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|