本文整理汇总了C++中osg::NodePtr::clone方法的典型用法代码示例。如果您正苦于以下问题:C++ NodePtr::clone方法的具体用法?C++ NodePtr::clone怎么用?C++ NodePtr::clone使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类osg::NodePtr
的用法示例。
在下文中一共展示了NodePtr::clone方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parsecommandline
//.........这里部分代码省略.........
default : commandlineerror(argv[0],argv[1]);
}
break;
case 'g': if ( ! strcmp(argv[1],"pl") )
geom_type = OBJ_PLANES;
else
if ( ! strcmp(argv[1],"sh") )
geom_type = OBJ_SPHERES;
else
if ( ! strcmp(argv[1],"to") )
geom_type = OBJ_TORUS;
else
if ( ! strcmp(argv[1],"file") )
geom_type = OBJ_FILE; // just a dummy
else
{
fputs("unrecognized obj type\n",stderr);
commandlineerror(argv[0],argv[1]);
}
break;
case 'A': if ( ! strcmp(argv[1],"do") )
Algorithm = col::ALGO_DOPTREE;
else
if ( ! strcmp(argv[1],"bx") )
Algorithm = col::ALGO_BOXTREE;
else
{
fputs("unrecognized algorithm\n",stderr);
commandlineerror(argv[0],argv[1]);
}
break;
case 'f': loadGeom( argv[1], &fixed_node );
moving_node = fixed_node->clone();
fixed_geom = col::getGeom( fixed_node );
moving_geom = col::getGeom( moving_node );
geom_type = OBJ_FILE;
// post: moving_geom == fixed_geom
break;
case 'r':
configFile = argv[1];
break;
case 'p':
print_pairs = true;
break;
default: fprintf(stderr, "\nBug in parsecommandline !\n");
commandlineerror( argv[0], NULL );
}
argv += 1 + mhp[optchar];
argc -= 1 + mhp[optchar];
}
else
{
/* command line arg doesn't start with '-' */
fprintf(stderr, "\nThis is not a valid command line option\n");
commandlineerror( argv[0], NULL );
/* or, load file instead .. */
}
}
// check sanity of options
if ( Complexity < 1 ||
(geom_type != OBJ_PLANES && Complexity < 3) ||
Complexity > 1000 )
{
fprintf(stderr,"complexity (%u) out of range!\n", Complexity );
exit(-1);
}
if ( Ndistances > MaxNumDistances )
{
fprintf(stderr,"too many (%u) distances!\n", Ndistances );
Ndistances = MaxNumDistances;
}
if ( Ndistances < 1 )
Ndistances = 1;
if ( Rot_vel < col::NearZero )
Rot_vel = 360.0f / Nrotations;
Rot_vel *= 2.0 * 3.1415926535 / 360.0;
if ( Ndistances > 1 )
// Dist_vel will be used like this:
// d = Dist_1 + dist_step * Dist_vel
Dist_vel = (Dist_2 - Dist_1) / (Ndistances - 1);
else
Dist_vel = 0.0;
if ( geom_type == OBJ_FILE &&
(moving_node == osg::NullFC || fixed_node == osg::NullFC) )
{
fputs("bench: '-g file' or '-f' option given,\n"
" but moving node or fixed node is still NULL!", stderr );
exit(-1);
}
}