@ -98,6 +98,7 @@ struct SceneDataTest: TestSuite::Tester {
void constructMismatchedTRSViews ( ) ;
void constructMismatchedTRSViews ( ) ;
template < class T > void constructMismatchedTRSDimensionality ( ) ;
template < class T > void constructMismatchedTRSDimensionality ( ) ;
void constructMismatchedMeshMaterialView ( ) ;
void constructMismatchedMeshMaterialView ( ) ;
void constructAmbiguousSkinDimensions ( ) ;
void constructCopy ( ) ;
void constructCopy ( ) ;
void constructMove ( ) ;
void constructMove ( ) ;
@ -253,6 +254,7 @@ SceneDataTest::SceneDataTest() {
& SceneDataTest : : constructMismatchedTRSDimensionality < Float > ,
& SceneDataTest : : constructMismatchedTRSDimensionality < Float > ,
& SceneDataTest : : constructMismatchedTRSDimensionality < Double > ,
& SceneDataTest : : constructMismatchedTRSDimensionality < Double > ,
& SceneDataTest : : constructMismatchedMeshMaterialView ,
& SceneDataTest : : constructMismatchedMeshMaterialView ,
& SceneDataTest : : constructAmbiguousSkinDimensions ,
& SceneDataTest : : constructCopy ,
& SceneDataTest : : constructCopy ,
& SceneDataTest : : constructMove ,
& SceneDataTest : : constructMove ,
@ -1778,6 +1780,19 @@ void SceneDataTest::constructMismatchedMeshMaterialView() {
" Trade::SceneData: Trade::SceneField::MeshMaterial object data [0xcafe0000:0xcafe0008] is different from Trade::SceneField::Mesh object data [0xcafe0000:0xcafe000c] \n " ) ;
" Trade::SceneData: Trade::SceneField::MeshMaterial object data [0xcafe0000:0xcafe0008] is different from Trade::SceneField::Mesh object data [0xcafe0000:0xcafe000c] \n " ) ;
}
}
void SceneDataTest : : constructAmbiguousSkinDimensions ( ) {
# ifdef CORRADE_NO_ASSERT
CORRADE_SKIP ( " CORRADE_NO_ASSERT defined, can't test assertions " ) ;
# endif
std : : ostringstream out ;
Error redirectError { & out } ;
SceneData { SceneObjectType : : UnsignedInt , 0 , nullptr , {
SceneFieldData { SceneField : : Skin , SceneObjectType : : UnsignedInt , nullptr , SceneFieldType : : UnsignedInt , nullptr }
} } ;
CORRADE_COMPARE ( out . str ( ) , " Trade::SceneData: a skin field requires some transformation field to be present in order to disambiguate between 2D and 3D \n " ) ;
}
void SceneDataTest : : constructCopy ( ) {
void SceneDataTest : : constructCopy ( ) {
CORRADE_VERIFY ( ! std : : is_copy_constructible < SceneData > { } ) ;
CORRADE_VERIFY ( ! std : : is_copy_constructible < SceneData > { } ) ;
CORRADE_VERIFY ( ! std : : is_copy_assignable < SceneData > { } ) ;
CORRADE_VERIFY ( ! std : : is_copy_assignable < SceneData > { } ) ;
@ -3649,8 +3664,10 @@ template<class T> void SceneDataTest::skinsAsArray() {
Containers : : StridedArrayView1D < Field > view = fields ;
Containers : : StridedArrayView1D < Field > view = fields ;
SceneData scene { SceneObjectType : : UnsignedByte , 50 , { } , fields , {
SceneData scene { SceneObjectType : : UnsignedByte , 50 , { } , fields , {
/* To verify it isn't just picking the first ever field */
/* To verify it isn't just picking the first ever field; also to
SceneFieldData { SceneField : : Parent , SceneObjectType : : UnsignedByte , nullptr , SceneFieldType : : Int , nullptr } ,
satisfy the requirement of having a transformation field to
disambiguate the dimensionality */
SceneFieldData { SceneField : : Translation , SceneObjectType : : UnsignedByte , nullptr , SceneFieldType : : Vector3 , nullptr } ,
SceneFieldData { SceneField : : Skin , view . slice ( & Field : : object ) , view . slice ( & Field : : skin ) }
SceneFieldData { SceneField : : Skin , view . slice ( & Field : : object ) , view . slice ( & Field : : skin ) }
} } ;
} } ;
@ -3679,8 +3696,10 @@ void SceneDataTest::skinsIntoArray() {
Containers : : StridedArrayView1D < Field > view = fields ;
Containers : : StridedArrayView1D < Field > view = fields ;
SceneData scene { SceneObjectType : : UnsignedInt , 5 , { } , fields , {
SceneData scene { SceneObjectType : : UnsignedInt , 5 , { } , fields , {
/* To verify it isn't just picking the first ever field */
/* To verify it isn't just picking the first ever field; also to
SceneFieldData { SceneField : : Parent , SceneObjectType : : UnsignedInt , nullptr , SceneFieldType : : Int , nullptr } ,
satisfy the requirement of having a transformation field to
disambiguate the dimensionality */
SceneFieldData { SceneField : : Translation , SceneObjectType : : UnsignedInt , nullptr , SceneFieldType : : Vector3 , nullptr } ,
SceneFieldData { SceneField : : Skin ,
SceneFieldData { SceneField : : Skin ,
view . slice ( & Field : : object ) ,
view . slice ( & Field : : object ) ,
view . slice ( & Field : : skin ) } ,
view . slice ( & Field : : skin ) } ,
@ -3718,6 +3737,9 @@ void SceneDataTest::skinsIntoArrayInvalidSizeOrOffset() {
Containers : : StridedArrayView1D < Field > view = fields ;
Containers : : StridedArrayView1D < Field > view = fields ;
SceneData scene { SceneObjectType : : UnsignedInt , 5 , { } , fields , {
SceneData scene { SceneObjectType : : UnsignedInt , 5 , { } , fields , {
/* To satisfy the requirement of having a transformation field to
disambiguate the dimensionality */
SceneFieldData { SceneField : : Translation , SceneObjectType : : UnsignedInt , nullptr , SceneFieldType : : Vector3 , nullptr } ,
SceneFieldData { SceneField : : Skin , view . slice ( & Field : : object ) , view . slice ( & Field : : skin ) }
SceneFieldData { SceneField : : Skin , view . slice ( & Field : : object ) , view . slice ( & Field : : skin ) }
} } ;
} } ;
@ -4617,6 +4639,9 @@ void SceneDataTest::skinsFor() {
Containers : : StridedArrayView1D < Field > view = fields ;
Containers : : StridedArrayView1D < Field > view = fields ;
SceneData scene { SceneObjectType : : UnsignedInt , 7 , { } , fields , {
SceneData scene { SceneObjectType : : UnsignedInt , 7 , { } , fields , {
/* To satisfy the requirement of having a transformation field to
disambiguate the dimensionality */
SceneFieldData { SceneField : : Translation , SceneObjectType : : UnsignedInt , nullptr , SceneFieldType : : Vector3 , nullptr } ,
SceneFieldData { SceneField : : Skin , view . slice ( & Field : : object ) , view . slice ( & Field : : skin ) }
SceneFieldData { SceneField : : Skin , view . slice ( & Field : : object ) , view . slice ( & Field : : skin ) }
} } ;
} } ;