Browse Source

Trade: I am quite stupid, actually.

pull/191/head
Vladimír Vondruš 8 years ago
parent
commit
daa934c738
  1. 16
      src/Magnum/Trade/ObjectData2D.cpp
  2. 10
      src/Magnum/Trade/ObjectData2D.h
  3. 16
      src/Magnum/Trade/ObjectData3D.cpp
  4. 10
      src/Magnum/Trade/ObjectData3D.h
  5. 16
      src/Magnum/Trade/Test/ObjectData2DTest.cpp
  6. 16
      src/Magnum/Trade/Test/ObjectData3DTest.cpp

16
src/Magnum/Trade/ObjectData2D.cpp

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

10
src/Magnum/Trade/ObjectData2D.h

@ -68,7 +68,7 @@ enum class ObjectFlag2D: UnsignedByte {
* transformation using @ref ObjectData2D::translation(),
* @ref ObjectData2D::rotation() and @ref ObjectData2D::scaling().
*/
HasTransformationRotationScaling = 1 << 0
HasTranslationRotationScaling = 1 << 0
};
/**
@ -168,7 +168,7 @@ class MAGNUM_TRADE_EXPORT ObjectData2D {
/**
* @brief Translation (relative to parent)
*
* Available only if @ref ObjectFlag2D::HasTransformationRotationScaling
* Available only if @ref ObjectFlag2D::HasTranslationRotationScaling
* is set, use @ref transformation() otherwise. Applied as last in the
* final transformation, see @ref transformation() for more
* information.
@ -179,7 +179,7 @@ class MAGNUM_TRADE_EXPORT ObjectData2D {
/**
* @brief Rotation (relative to parent)
*
* Available only if @ref ObjectFlag2D::HasTransformationRotationScaling
* Available only if @ref ObjectFlag2D::HasTranslationRotationScaling
* is set, use @ref transformation() otherwise. Applied second in the
* final transformation, see @ref transformation() for more
* information.
@ -190,7 +190,7 @@ class MAGNUM_TRADE_EXPORT ObjectData2D {
/**
* @brief Scaling (relative to parent)
*
* Available only if @ref ObjectFlag2D::HasTransformationRotationScaling
* Available only if @ref ObjectFlag2D::HasTranslationRotationScaling
* is set, use @ref transformation() otherwise. Applied as first in the
* final transformation, see @ref transformation() for more
* information.
@ -201,7 +201,7 @@ class MAGNUM_TRADE_EXPORT ObjectData2D {
/**
* @brief Transformation (relative to parent)
*
* If @ref ObjectFlag2D::HasTransformationRotationScaling is not set,
* If @ref ObjectFlag2D::HasTranslationRotationScaling is not set,
* returns the imported object transformation matrix. Otherwise
* calculates the final transformation matrix @f$ \boldsymbol{M} @f$
* from translation, rotation and scaling matrices @f$ \boldsymbol{T} @f$,

16
src/Magnum/Trade/ObjectData3D.cpp

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

10
src/Magnum/Trade/ObjectData3D.h

@ -69,7 +69,7 @@ enum class ObjectFlag3D: UnsignedByte {
* transformation using @ref ObjectData3D::translation(),
* @ref ObjectData3D::rotation() and @ref ObjectData3D::scaling().
*/
HasTransformationRotationScaling = 1 << 0
HasTranslationRotationScaling = 1 << 0
};
/**
@ -169,7 +169,7 @@ class MAGNUM_TRADE_EXPORT ObjectData3D {
/**
* @brief Translation (relative to parent)
*
* Available only if @ref ObjectFlag3D::HasTransformationRotationScaling
* Available only if @ref ObjectFlag3D::HasTranslationRotationScaling
* is set, use @ref transformation() otherwise. Applied as last in the
* final transformation, see @ref transformation() for more
* information.
@ -180,7 +180,7 @@ class MAGNUM_TRADE_EXPORT ObjectData3D {
/**
* @brief Rotation (relative to parent)
*
* Available only if @ref ObjectFlag3D::HasTransformationRotationScaling
* Available only if @ref ObjectFlag3D::HasTranslationRotationScaling
* is set, use @ref transformation() otherwise. Applied second in the
* final transformation, see @ref transformation() for more
* information.
@ -191,7 +191,7 @@ class MAGNUM_TRADE_EXPORT ObjectData3D {
/**
* @brief Scaling (relative to parent)
*
* Available only if @ref ObjectFlag3D::HasTransformationRotationScaling
* Available only if @ref ObjectFlag3D::HasTranslationRotationScaling
* is set, use @ref transformation() otherwise. Applied as first in the
* final transformation, see @ref transformation() for more
* information.
@ -202,7 +202,7 @@ class MAGNUM_TRADE_EXPORT ObjectData3D {
/**
* @brief Transformation (relative to parent)
*
* If @ref ObjectFlag3D::HasTransformationRotationScaling is not set,
* If @ref ObjectFlag3D::HasTranslationRotationScaling is not set,
* returns the imported object transformation matrix. Otherwise
* calculates the final transformation matrix @f$ \boldsymbol{M} @f$
* from translation, rotation and scaling matrices @f$ \boldsymbol{T} @f$,

16
src/Magnum/Trade/Test/ObjectData2DTest.cpp

@ -86,7 +86,7 @@ void ObjectData2DTest::constructEmptyTransformations() {
const ObjectData2D data{{0, 2, 3}, Vector2::xAxis(-4.0f), Complex::rotation(32.5_degf), Vector2::yScale(1.5f), &a};
CORRADE_COMPARE(data.children(), (std::vector<UnsignedInt>{0, 2, 3}));
CORRADE_COMPARE(data.flags(), ObjectFlag2D::HasTransformationRotationScaling);
CORRADE_COMPARE(data.flags(), ObjectFlag2D::HasTranslationRotationScaling);
CORRADE_COMPARE(data.translation(), Vector2::xAxis(-4.0f));
CORRADE_COMPARE(data.rotation(), Complex::rotation(32.5_degf));
CORRADE_COMPARE(data.scaling(), Vector2::yScale(1.5f));
@ -117,7 +117,7 @@ void ObjectData2DTest::constructMeshTransformations() {
const MeshObjectData2D data{{0, 2, 3}, Vector2::xAxis(-4.0f), Complex::rotation(32.5_degf), Vector2::yScale(1.5f), 13, 42, &a};
CORRADE_COMPARE(data.children(), (std::vector<UnsignedInt>{0, 2, 3}));
CORRADE_COMPARE(data.flags(), ObjectFlag2D::HasTransformationRotationScaling);
CORRADE_COMPARE(data.flags(), ObjectFlag2D::HasTranslationRotationScaling);
CORRADE_COMPARE(data.translation(), Vector2::xAxis(-4.0f));
CORRADE_COMPARE(data.rotation(), Complex::rotation(32.5_degf));
CORRADE_COMPARE(data.scaling(), Vector2::yScale(1.5f));
@ -157,7 +157,7 @@ void ObjectData2DTest::constructMoveTransformations() {
ObjectData2D b{std::move(data)};
CORRADE_COMPARE(b.children(), (std::vector<UnsignedInt>{1, 3}));
CORRADE_COMPARE(b.flags(), ObjectFlag2D::HasTransformationRotationScaling);
CORRADE_COMPARE(b.flags(), ObjectFlag2D::HasTranslationRotationScaling);
CORRADE_COMPARE(b.translation(), Vector2::xAxis(-4.0f));
CORRADE_COMPARE(b.rotation(), Complex::rotation(32.5_degf));
CORRADE_COMPARE(b.scaling(), Vector2::yScale(1.5f));
@ -175,7 +175,7 @@ void ObjectData2DTest::constructMoveTransformations() {
d = std::move(b);
CORRADE_COMPARE(d.children(), (std::vector<UnsignedInt>{1, 3}));
CORRADE_COMPARE(d.flags(), ObjectFlag2D::HasTransformationRotationScaling);
CORRADE_COMPARE(d.flags(), ObjectFlag2D::HasTranslationRotationScaling);
CORRADE_COMPARE(d.translation(), Vector2::xAxis(-4.0f));
CORRADE_COMPARE(d.rotation(), Complex::rotation(32.5_degf));
CORRADE_COMPARE(d.scaling(), Vector2::yScale(1.5f));
@ -239,14 +239,14 @@ void ObjectData2DTest::debugType() {
void ObjectData2DTest::debugFlag() {
std::ostringstream o;
Debug(&o) << ObjectFlag2D::HasTransformationRotationScaling << ObjectFlag2D(0xbe);
CORRADE_COMPARE(o.str(), "Trade::ObjectFlag2D::HasTransformationRotationScaling Trade::ObjectFlag2D(0xbe)\n");
Debug(&o) << ObjectFlag2D::HasTranslationRotationScaling << ObjectFlag2D(0xbe);
CORRADE_COMPARE(o.str(), "Trade::ObjectFlag2D::HasTranslationRotationScaling Trade::ObjectFlag2D(0xbe)\n");
}
void ObjectData2DTest::debugFlags() {
std::ostringstream o;
Debug(&o) << (ObjectFlag2D::HasTransformationRotationScaling|ObjectFlags2D{}) << ObjectFlags2D{};
CORRADE_COMPARE(o.str(), "Trade::ObjectFlag2D::HasTransformationRotationScaling Trade::ObjectFlags2D{}\n");
Debug(&o) << (ObjectFlag2D::HasTranslationRotationScaling|ObjectFlags2D{}) << ObjectFlags2D{};
CORRADE_COMPARE(o.str(), "Trade::ObjectFlag2D::HasTranslationRotationScaling Trade::ObjectFlags2D{}\n");
}
}}}

16
src/Magnum/Trade/Test/ObjectData3DTest.cpp

@ -88,7 +88,7 @@ void ObjectData3DTest::constructEmptyTransformations() {
const ObjectData3D data{{0, 2, 3}, Vector3::xAxis(-4.0f), Quaternion::rotation(32.5_degf, Vector3::zAxis()), Vector3::yScale(1.5f), &a};
CORRADE_COMPARE(data.children(), (std::vector<UnsignedInt>{0, 2, 3}));
CORRADE_COMPARE(data.flags(), ObjectFlag3D::HasTransformationRotationScaling);
CORRADE_COMPARE(data.flags(), ObjectFlag3D::HasTranslationRotationScaling);
CORRADE_COMPARE(data.translation(), Vector3::xAxis(-4.0f));
CORRADE_COMPARE(data.rotation(), Quaternion::rotation(32.5_degf, Vector3::zAxis()));
CORRADE_COMPARE(data.scaling(), Vector3::yScale(1.5f));
@ -119,7 +119,7 @@ void ObjectData3DTest::constructMeshTransformations() {
const MeshObjectData3D data{{1, 3}, Vector3::xAxis(-4.0f), Quaternion::rotation(32.5_degf, Vector3::zAxis()), Vector3::yScale(1.5f), 13, 42, &a};
CORRADE_COMPARE(data.children(), (std::vector<UnsignedInt>{1, 3}));
CORRADE_COMPARE(data.flags(), ObjectFlag3D::HasTransformationRotationScaling);
CORRADE_COMPARE(data.flags(), ObjectFlag3D::HasTranslationRotationScaling);
CORRADE_COMPARE(data.translation(), Vector3::xAxis(-4.0f));
CORRADE_COMPARE(data.rotation(), Quaternion::rotation(32.5_degf, Vector3::zAxis()));
CORRADE_COMPARE(data.scaling(), Vector3::yScale(1.5f));
@ -171,7 +171,7 @@ void ObjectData3DTest::constructMoveTransformations() {
ObjectData3D b{std::move(data)};
CORRADE_COMPARE(b.children(), (std::vector<UnsignedInt>{1, 3}));
CORRADE_COMPARE(b.flags(), ObjectFlag3D::HasTransformationRotationScaling);
CORRADE_COMPARE(b.flags(), ObjectFlag3D::HasTranslationRotationScaling);
CORRADE_COMPARE(b.translation(), Vector3::xAxis(-4.0f));
CORRADE_COMPARE(b.rotation(), Quaternion::rotation(32.5_degf, Vector3::zAxis()));
CORRADE_COMPARE(b.scaling(), Vector3::yScale(1.5f));
@ -189,7 +189,7 @@ void ObjectData3DTest::constructMoveTransformations() {
d = std::move(b);
CORRADE_COMPARE(d.children(), (std::vector<UnsignedInt>{1, 3}));
CORRADE_COMPARE(d.flags(), ObjectFlag3D::HasTransformationRotationScaling);
CORRADE_COMPARE(d.flags(), ObjectFlag3D::HasTranslationRotationScaling);
CORRADE_COMPARE(d.translation(), Vector3::xAxis(-4.0f));
CORRADE_COMPARE(d.rotation(), Quaternion::rotation(32.5_degf, Vector3::zAxis()));
CORRADE_COMPARE(d.scaling(), Vector3::yScale(1.5f));
@ -253,14 +253,14 @@ void ObjectData3DTest::debugType() {
void ObjectData3DTest::debugFlag() {
std::ostringstream o;
Debug(&o) << ObjectFlag3D::HasTransformationRotationScaling << ObjectFlag3D(0xbe);
CORRADE_COMPARE(o.str(), "Trade::ObjectFlag3D::HasTransformationRotationScaling Trade::ObjectFlag3D(0xbe)\n");
Debug(&o) << ObjectFlag3D::HasTranslationRotationScaling << ObjectFlag3D(0xbe);
CORRADE_COMPARE(o.str(), "Trade::ObjectFlag3D::HasTranslationRotationScaling Trade::ObjectFlag3D(0xbe)\n");
}
void ObjectData3DTest::debugFlags() {
std::ostringstream o;
Debug(&o) << (ObjectFlag3D::HasTransformationRotationScaling|ObjectFlags3D{}) << ObjectFlags3D{};
CORRADE_COMPARE(o.str(), "Trade::ObjectFlag3D::HasTransformationRotationScaling Trade::ObjectFlags3D{}\n");
Debug(&o) << (ObjectFlag3D::HasTranslationRotationScaling|ObjectFlags3D{}) << ObjectFlags3D{};
CORRADE_COMPARE(o.str(), "Trade::ObjectFlag3D::HasTranslationRotationScaling Trade::ObjectFlags3D{}\n");
}
}}}

Loading…
Cancel
Save