本文整理汇总了C++中NodeUnrecPtr::get方法的典型用法代码示例。如果您正苦于以下问题:C++ NodeUnrecPtr::get方法的具体用法?C++ NodeUnrecPtr::get怎么用?C++ NodeUnrecPtr::get使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NodeUnrecPtr
的用法示例。
在下文中一共展示了NodeUnrecPtr::get方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: init
bool OSGSceneItem::init(UInt32 uiInitPhase, App *pApp)
{
fprintf(stderr, "OSGSceneItem::init %s (%x)\n",
getName(this),
uiInitPhase);
if(0x0000 != (uiInitPhase & ::OSG::InitPhase::LoadReferences))
{
if(_sfMatchedUrl.getValue().empty() == false)
{
fprintf(stderr, "Loading %s\n",
_sfMatchedUrl.getValue().c_str());
NodeUnrecPtr pRoot = SceneFileHandler::the()->read(
_sfMatchedUrl.getValue().c_str(),
NULL,
NULL,
false);
fprintf(stderr, "got %p\n", pRoot.get());
if(pRoot != NULL)
{
setRoot(pRoot);
}
else
{
fprintf(stderr, " failed\n");
}
}
if(_sfMatchedGlobalUrl.getValue().empty() == false)
{
fprintf(stderr, "Loading global %s\n",
_sfMatchedGlobalUrl.getValue().c_str());
FieldContainerUnrecPtr pRes(NULL);
_oPathHandler.pushState();
_oPathHandler.setBaseFile(_sfMatchedGlobalUrl.getValue().c_str());
ImageFileHandler::the()->setPathHandler(&_oPathHandler);
fprintf(stderr, "loading osg file %s ...\n",
_sfMatchedGlobalUrl.getValue().c_str());
pRes = OSG::OSGSceneFileType::the().readContainer(
_sfMatchedGlobalUrl.getValue().c_str(),
NULL);
ImageFileHandler::the()->setPathHandler(NULL);
_oPathHandler.popState();
fprintf(stderr, "got global %p\n", pRes.get());
if(pRes != NULL)
{
ContainerCollectionUnrecPtr pColl =
dynamic_pointer_cast<ContainerCollection>(pRes);
if(pColl != NULL)
{
MFUnrecFieldContainerPtr::const_iterator fIt =
pColl->getMFContainers()->begin();
MFUnrecFieldContainerPtr::const_iterator fEnd =
pColl->getMFContainers()->end();
while(fIt != fEnd)
{
this->pushToGlobals(*fIt);
++fIt;
}
}
}
else
{
fprintf(stderr, " failed\n");
}
fprintf(stderr, "got %ld globals\n",
_mfGlobals.size());
if(_sfActiveCamera.getValue().empty() == false)
{
FieldContainer *pCnt = findNamedComponent(
_sfActiveCamera.getValue().c_str());
Camera *pCam = dynamic_cast<Camera *>(pCnt);
fprintf(stderr, "found camera %p\n",
pCam);
setCamera(pCam);
}
}
}
//.........这里部分代码省略.........
示例2: main
//.........这里部分代码省略.........
//Add this joint to the skeleton
ExampleSkeleton->pushToJoints(ExampleRootJointNode, Matrix());
NodeRecPtr TempRootJointNode = ExampleRootJointNode;
NodeRefPtr GeoNode = makeNodeFor(BoxGeometry);
TempRootJointNode->addChild(GeoNode);
Matrix TempMat;
//Create a set of randomly placed child joints
for (Real32 i = 0.0f; i < 5.0f; ++i)
{
TransformRecPtr ExampleChildJoint = Transform::create();
NodeRecPtr ExampleChildJointNode = makeNodeFor(ExampleChildJoint);
GeoNode = makeNodeFor(SphereGeometry);
ExampleChildJointNode->addChild(GeoNode);
//TempMat.setTranslate(RandomPoolManager::getRandomReal32(0.0, 10.0f), RandomPoolManager::getRandomReal32(0.0f, 10.0f), RandomPoolManager::getRandomReal32(0.0f, 10.0f));
switch((static_cast<UInt32>(i) % 3))
{
case 0:
TempMat.setTranslate(2.0f,0.0f,0.0f);
break;
case 1:
TempMat.setTranslate(0.0f,2.0f,0.0f);
break;
case 2:
TempMat.setTranslate(0.0f,0.0f,2.0f);
break;
}
//Set bind and current transformations to TempMat (calculated above)
ExampleChildJoint->setMatrix(TempMat);
//Add ExampleChildJoint as a child to the previous joint
TempRootJointNode->addChild(ExampleChildJointNode);//add a Child to the root joint
//ExampleChildJoint will be the next parent joint
TempRootJointNode = ExampleChildJointNode;
//Add this joint to the skeleton
Matrix InvBind(TempRootJointNode->getToWorld());
InvBind.invert();
ExampleSkeleton->pushToJoints(ExampleChildJointNode, InvBind);
}
//SkeletonDrawer
SkeletonDrawableUnrecPtr ExampleSkeletonDrawable = SkeletonDrawable::create();
ExampleSkeletonDrawable->setSkeleton(ExampleSkeleton);
ExampleSkeletonDrawable->setMaterial(ExampleMaterial);
ExampleSkeletonDrawable->setDrawBindPose(false); //By default, we won't draw the skeleton's bind pose
ExampleSkeletonDrawable->setBindPoseColor(Color4f(0.0, 1.0, 0.0, 1.0)); //When the skeleton's bind pose is rendered, it will be green
ExampleSkeletonDrawable->setDrawPose(true); //By default, we do draw the skeleton's current pose
ExampleSkeletonDrawable->setPoseColor(Color4f(0.0, 0.0, 1.0, 1.0)); //The skeleton's current pose is rendered in blue
//Skeleton Node
NodeUnrecPtr SkeletonNode = Node::create();
SkeletonNode->setCore(ExampleSkeletonDrawable);
//Create scene
NodeUnrecPtr scene = Node::create();
scene->setCore(Group::create());
scene->addChild(SkeletonNode);
scene->addChild(ExampleRootJointNode);
sceneManager.setRoot(scene);
//Create the Documentation
SimpleScreenDoc TheSimpleScreenDoc(&sceneManager, TutorialWindow);
//Setup the Animation
AnimationUnrecPtr TheAnimation = setupAnimation(ExampleRootJoint,
dynamic_cast<Transform*>(ExampleRootJointNode->getChild(1)->getCore()));
TheAnimation->attachUpdateProducer(TutorialWindow);
TheAnimation->start();
TutorialWindow->connectKeyPressed(boost::bind(keyPressed, _1,
TheAnimation.get(),
SkeletonNode.get(),
TutorialWindow.get()));
// Show the whole Scene
sceneManager.showAll();
//Open Window
Vec2f WinSize(TutorialWindow->getDesktopSize() * 0.85f);
Pnt2f WinPos((TutorialWindow->getDesktopSize() - WinSize) *0.5);
TutorialWindow->openWindow(WinPos,
WinSize,
"11BoneAnimation");
//Main Loop
TutorialWindow->mainLoop();
}
osgExit();
return 0;
}