本文整理汇总了C++中smartbody::SBScene::getMotion方法的典型用法代码示例。如果您正苦于以下问题:C++ SBScene::getMotion方法的具体用法?C++ SBScene::getMotion怎么用?C++ SBScene::getMotion使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类smartbody::SBScene
的用法示例。
在下文中一共展示了SBScene::getMotion方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SBM_SBMotion_SetSyncPoint
SBAPI void SBM_SBMotion_SetSyncPoint( SBMHANDLE sbmHandle, const char * motionName, const char * syncTag, double time )
{
if ( !SBM_HandleExists( sbmHandle ) )
{
return;
}
SmartBody::SBScene * scene = SmartBody::SBScene::getScene();
SmartBody::SBMotion * motion = scene->getMotion(motionName);
motion->setSyncPoint(syncTag, time);
}
示例2: SBM_SBMotion_AddChannel
SBAPI void SBM_SBMotion_AddChannel( SBMHANDLE sbmHandle, const char * motionName, const char * channelName, const char * channelType )
{
if ( !SBM_HandleExists( sbmHandle ) )
{
return;
}
SmartBody::SBScene * scene = SmartBody::SBScene::getScene();
SmartBody::SBMotion * motion = scene->getMotion(motionName);
motion->addChannel(channelName, channelType);
}
示例3: SBM_SBMotion_AddFrame
SBAPI void SBM_SBMotion_AddFrame( SBMHANDLE sbmHandle, const char * motionName, float frameTime, const float * frameData, int numFrameData )
{
if ( !SBM_HandleExists( sbmHandle ) )
{
return;
}
SmartBody::SBScene * scene = SmartBody::SBScene::getScene();
SmartBody::SBMotion * motion = scene->getMotion(motionName);
// create vector from float array
std::vector<float> frameDataVec(frameData, frameData + numFrameData);
motion->addFrame(frameTime, frameDataVec);
}
示例4: SBM_SBMotion_AddChannels
SBAPI void SBM_SBMotion_AddChannels( SBMHANDLE sbmHandle, const char * motionName, const char ** channelNames, const char ** channelTypes, int count )
{
if ( !SBM_HandleExists( sbmHandle ) )
{
return;
}
SmartBody::SBScene * scene = SmartBody::SBScene::getScene();
SmartBody::SBMotion * motion = scene->getMotion(motionName);
for (int i = 0; i < count; i++)
{
//LOG("%s - %s - %s", motionName, channelNames[i], channelTypes[i]);
motion->addChannel(channelNames[i], channelTypes[i]);
}
}
示例5: updateGUI
void ResourceWindow::updateGUI()
{
SmartBody::SBScene* scene = SmartBody::SBScene::getScene();
SmartBody::SBAssetManager* assetManager = scene->getAssetManager();
resourceTree->sortorder(FL_TREE_SORT_ASCENDING);
// update path tree
updatePath(getTreeFromName("script path"), SmartBody::SBScene::getScene()->getAssetPaths("script"));
updatePath(getTreeFromName("motion path"), SmartBody::SBScene::getScene()->getAssetPaths("motion"));
updatePath(getTreeFromName("audio path"), SmartBody::SBScene::getScene()->getAssetPaths("audio"));
updatePath(getTreeFromName("mesh path"), SmartBody::SBScene::getScene()->getAssetPaths("mesh"));
// update sequence file list
const std::vector<std::string> scriptPaths = SmartBody::SBScene::getScene()->getAssetPaths("script");
resourceTree->clear_children(getTreeFromName("scriptfiles"));
for (size_t p = 0; p < scriptPaths.size(); p++)
{
updateScriptFiles(getTreeFromName("scriptfiles"), scriptPaths[p]);
}
// update runtime scripts
resourceTree->clear_children(getTreeFromName("script"));
std::vector<std::string> scriptName = scene->getScriptNames();
for (size_t i = 0; i < scriptName.size(); i++)
{
SmartBody::SBScript* script = scene->getScript(scriptName[i]);
updateScript(getTreeFromName("script"), script);
}
// update skeleton
resourceTree->clear_children(getTreeFromName("skeleton"));
std::vector<std::string> skeletons = scene->getSkeletonNames();
for (size_t c = 0; c < skeletons.size(); c++)
{
SmartBody::SBSkeleton * skel = scene->getSkeleton(skeletons[c]);
updateSkeleton(getTreeFromName("skeleton"), skel);
}
// update joint maps
resourceTree->clear_children(getTreeFromName("jointmap"));
SmartBody::SBJointMapManager* jointMapManager = scene->getJointMapManager();
std::vector<std::string> jointMapNames = jointMapManager->getJointMapNames();
for (std::vector<std::string>::iterator iter = jointMapNames.begin();
iter != jointMapNames.end();
iter++)
{
Fl_Tree_Item* boneMapItem = resourceTree->add(getTreeFromName("jointmap"), (*iter).c_str());
updateJointMap(boneMapItem, jointMapManager->getJointMap((*iter)));
}
// update gesture maps
resourceTree->clear_children(getTreeFromName("gesturemap"));
SmartBody::SBGestureMapManager* gestureMapManager = scene->getGestureMapManager();
std::vector<std::string> gestureMapNames = gestureMapManager->getGestureMapNames();
for (std::vector<std::string>::iterator iter = gestureMapNames.begin();
iter != gestureMapNames.end();
iter++)
{
Fl_Tree_Item* gestureMapItem = resourceTree->add(getTreeFromName("gesturemap"), (*iter).c_str());
updateGestureMap(gestureMapItem, gestureMapManager->getGestureMap((*iter)));
}
// update motion map
resourceTree->clear_children(getTreeFromName("motion"));
std::vector<std::string> motionNames = scene->getMotionNames();
for (size_t i = 0; i < motionNames.size(); i++)
{
//resourceTree->add(treeItemList[ITEM_MOTION],mi->first.c_str());
SmartBody::SBMotion * motion = scene->getMotion(motionNames[i]);
updateMotion(getTreeFromName("motion"), motion);
}
SmartBody::SBAnimationBlendManager* blendManager = scene->getBlendManager();
// update animation blend map
resourceTree->clear_children(getTreeFromName("blend"));
std::vector<std::string> blendNames = blendManager->getBlendNames();
for (size_t i = 0; i < blendNames.size(); i++)
{
//resourceTree->add(treeItemList[ITEM_MOTION],mi->first.c_str());
SmartBody::SBAnimationBlend * blend = blendManager->getBlend(blendNames[i]);
updateAnimationBlend(getTreeFromName("blend"), blend);
}
// update blend transition map
resourceTree->clear_children(getTreeFromName("transition"));
std::vector<std::string> transitionNames = blendManager->getTransitionNames();
for (size_t i = 0; i < transitionNames.size(); i++)
{
//resourceTree->add(treeItemList[ITEM_MOTION],mi->first.c_str());
SmartBody::SBAnimationTransition * transition = blendManager->getTransitionByName(transitionNames[i]);
updateBlendTransition(getTreeFromName("transition"), transition);
}
// update mesh map
resourceTree->clear_children(getTreeFromName("mesh"));
std::vector<std::string> meshNames = assetManager->getDeformableMeshNames();
for (size_t i = 0; i < meshNames.size(); i++)
//.........这里部分代码省略.........