//------------------------------------------------------------------------------------ void startRecording() { if (bOpeningRecorder) finishRecording(); ///add directory select SkeletonMap &map = skeleton::SkeletonManager::getInstance().getSkeletons(); if (map.empty()) { ofLogNotice("Recorder") << "No skeleton avairable"; return; } for (SkeletonMap::iterator it = map.begin(); it!=map.end(); ++it) { SkeletonPtr skeleton = it->second; const string name = skeleton->getName(); //string filePath = ret.getPath(); string filePath = ofToDataPath("motion/mot/"+ram::getDefaultRecordingDataFileName()); const string escape = "__WILDCARD_ESCAPE__"; ofStringReplace(filePath, "\\*", escape); ofStringReplace(filePath, "*", name); ofStringReplace(filePath, escape, "*"); skeleton->prepareRecording(filePath); skeleton->startRecording(); } bOpeningRecorder = true; }
void checkForBodyNodes( size_t& count, const ReferentialSkeletonPtr& refSkel, const SkeletonPtr& skel, const std::string& name, Args ... args) { bool contains = refSkel->getIndexOf(skel->getBodyNode(name)) != INVALID_INDEX; EXPECT_TRUE(contains); if(!contains) { dtmsg << "The ReferentialSkeleton [" << refSkel->getName() << "] does NOT " << "contain the BodyNode [" << name << "] of the Skeleton [" << skel->getName() << "]\n"; } ++count; checkForBodyNodes(count, refSkel, skel, args...); }