void checkDeprecatedAttribute() { EXPECT_MSG_EMIT(Deprecated) ; std::stringstream scene ; scene << "<?xml version='1.0'?>" "<Node name='Root' gravity='0 -9.81 0' time='0' animate='0' > \n" " <OglLabel name='label1' color='contrast' printLog='true'/> \n" "</Node> \n" ; Node::SPtr root = SceneLoaderXML::loadFromMemory ("testscene", scene.str().c_str(), scene.str().size()) ; ASSERT_NE(nullptr, root.get()) ; root->init(ExecParams::defaultInstance()) ; BaseObject* lm = root->getObject("label1") ; ASSERT_NE(nullptr, lm) ; OglLabel* ogllabel = dynamic_cast<OglLabel*>(lm); ASSERT_NE(nullptr, ogllabel) ; EXPECT_TRUE(ogllabel->d_selectContrastingColor.getValue()) ; EXPECT_EQ(RGBAColor::fromFloat(1,1,1,1), ogllabel->d_color.getValue()) ; }
void checkAttributes() { std::stringstream scene ; scene << "<?xml version='1.0'?>" "<Node name='Root' gravity='0 -9.81 0' time='0' animate='0' > \n" " <OglLabel name='label1'/> \n" "</Node> \n" ; Node::SPtr root = SceneLoaderXML::loadFromMemory ("testscene", scene.str().c_str(), scene.str().size()) ; ASSERT_NE(root.get(), nullptr) ; root->init(ExecParams::defaultInstance()) ; BaseObject* lm = root->getObject("label1") ; ASSERT_NE(lm, nullptr) ; /// List of the supported attributes the user expect to find /// This list needs to be updated if you add an attribute. vector<string> attrnames = { "prefix", "label", "suffix", "x", "y", "fontsize", "color", "selectContrastingColor", "updateLabelEveryNbSteps", "visible"}; for(auto& attrname : attrnames) EXPECT_NE( lm->findData(attrname), nullptr ) << "Missing attribute with name '" << attrname << "'." ; }
void loadFromAnInvalidPathname(){ string scene = "<?xml version='1.0'?>" "<Node name='Root' gravity='0 0 0' time='0' animate='0' > " " <MechanicalObject position='0 0 0'/> " " <UniformMass filename='invalid_uniformmatrix.txt'/> " "</Node> " ; Node::SPtr root = SceneLoaderXML::loadFromMemory ("loadFromAnInValidFile", scene.c_str(), (int)scene.size()) ; root->init(ExecParams::defaultInstance()) ; }
void loadFromAFileForNonRigid(){ string scene = "<?xml version='1.0'?>" "<Node name='Root' gravity='0 0 0' time='0' animate='0' > " " <MechanicalObject position='0 0 0'/> " " <UniformMass filename='BehaviorModels/card.rigid'/> " "</Node> " ; Node::SPtr root = SceneLoaderXML::loadFromMemory ("loadFromAValidFile", scene.c_str(), (int)scene.size()) ; root->init(ExecParams::defaultInstance()) ; }
void testNoParameter() { EXPECT_MSG_EMIT(Error) ; std::stringstream scene ; scene << "<?xml version='1.0'?>" "<Node name='Root' gravity='0 -9.81 0' time='0' animate='0' > \n" " <RequiredPlugin /> \n" "</Node> \n" ; Node::SPtr root = SceneLoaderXML::loadFromMemory ("testscene", scene.str().c_str(), scene.str().size()) ; ASSERT_NE(root.get(), nullptr) ; root->init(ExecParams::defaultInstance()) ; }
void loadFromAFileForRigid(){ string scene = "<?xml version='1.0'?>" "<Node name='Root' gravity='0 0 0' time='0' animate='0' > " " <MechanicalObject template='Rigid3' position='0 0 0 1 0 0 1 0 0 0 1 0 0 1'/> " " <UniformMass filename='BehaviorModels/card.rigid'/> " "</Node> " ; Node::SPtr root = SceneLoaderXML::loadFromMemory ("loadFromAValidFile", scene.c_str(), (int)scene.size()) ; root->init(ExecParams::defaultInstance()) ; UniformMassRigid* mass = root->getTreeObject<UniformMassRigid>() ; EXPECT_TRUE( mass != nullptr ) ; if(mass!=nullptr){ EXPECT_EQ( mass->getMass(), 40.0 ) ; EXPECT_EQ( mass->getTotalMass(), 80.0 ) ; } }
/// if masses are negative we refuse them and use the default values. void checkNegativeMassNotAllowed(){ string scene = "<?xml version='1.0'?>" "<Node name='Root' gravity='0 0 0' time='0' animate='0' > " " <MechanicalObject position='0 0 0 4 5 6'/> " " <UniformMass name='m_mass' totalmass='-1.0' mass=-3.0/> " "</Node> " ; Node::SPtr root = SceneLoaderXML::loadFromMemory ("loadWithNoParam", scene.c_str(), scene.size()) ; root->init(ExecParams::defaultInstance()) ; TheUniformMass* mass = root->getTreeObject<TheUniformMass>() ; EXPECT_TRUE( mass != nullptr ) ; if(mass!=nullptr){ EXPECT_EQ( mass->getMass(), 1.0 ) ; EXPECT_EQ( mass->getTotalMass(), 2.0 ) ; } }
void TestDefaultPipeLine::checkDefaultPipelineWithMissingIntersection() { EXPECT_MSG_EMIT(Warning) ; EXPECT_MSG_NOEMIT(Error) ; std::stringstream scene ; scene << "<?xml version='1.0'?> \n" "<Node name='Root' gravity='0 -9.81 0' time='0' animate='0' > \n" " <DefaultPipeline name='pipeline'/> \n" "</Node> \n" ; Node::SPtr root = SceneLoaderXML::loadFromMemory ("testscene", scene.str().c_str(), scene.str().size()) ; ASSERT_NE(root.get(), nullptr) ; root->init(ExecParams::defaultInstance()) ; BaseObject* clp = root->getObject("pipeline") ; ASSERT_NE(clp, nullptr) ; clearSceneGraph(); }
int TestDefaultPipeLine::checkDefaultPipelineWithMonkeyValueForDepth(int dvalue) { std::stringstream scene ; scene << "<?xml version='1.0'?> \n" "<Node name='Root' gravity='0 -9.81 0' time='0' animate='0' > \n" " <DefaultPipeline name='pipeline' depth='"<< dvalue <<"'/> \n" " <DiscreteIntersection name='interaction'/> \n" "</Node> \n" ; Node::SPtr root = SceneLoaderXML::loadFromMemory ("testscene", scene.str().c_str(), scene.str().size()) ; //EXPECT_NE( (root.get()), NULL) ; root->init(ExecParams::defaultInstance()) ; DefaultPipeline* clp = dynamic_cast<DefaultPipeline*>(root->getObject("pipeline")) ; //ASSERT_NE( (clp), nullptr) ; int rv = clp->d_depth.getValue() ; clearSceneGraph(); return rv; }