本文整理汇总了C++中GeometryNode::translate方法的典型用法代码示例。如果您正苦于以下问题:C++ GeometryNode::translate方法的具体用法?C++ GeometryNode::translate怎么用?C++ GeometryNode::translate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GeometryNode
的用法示例。
在下文中一共展示了GeometryNode::translate方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: spawnSubBranches
void Branch::spawnSubBranches(const int level, const double length, const double thickness)
{
if (level == recursiveDepth) return;
// Spawn subbranches (make more as we get smaller)
int numBranches = rand(0.2, 0.8, (level == 0 ? 2 : level) * initialBranches);
for (int i = 0; i < numBranches; i++) {
add_child(new Branch("SubBranch", level + 1,
nextThickness(thickness, level),
nextLength(length, level)));
totalBranches++;
}
// Tree branches seem to split in two at the ends so simulate that.
add_child(new Branch("SplitBranch", level + 1, nextThickness(thickness, level),
nextLength(length, level), length, -30.0, 0.0));
add_child(new Branch("SplitBranch", level + 1, nextThickness(thickness, level),
nextLength(length, level), length, 30.0, 0.0));
// Two branches coming out of the top looks a little weird so add a sphere.
Sphere* p_sphere = new Sphere();
GeometryNode* sphere = new GeometryNode("BranchTop", p_sphere);
sphere->set_material(&wood);
sphere->translate(Vector3D(0.0, 0.0, length));
sphere->scale(Vector3D(thickness, thickness, thickness));
add_child(sphere);
totalBranches += 3;
}
示例2: SceneNode
Leaf::Leaf(const std::string& name, const double branchThickness, const double branchLength)
: SceneNode(name)
{
ImagePrimitive* i_leaf = new ImagePrimitive();
GeometryNode* leaf = new GeometryNode("Leaf", i_leaf);
leaf->set_material(&leafTexture);
double upDist = rand(1.0/3.0, 1.0, branchLength);
double zAngle = rand(0.0, 1.0, 360.0);
double diagonalDist = branchThickness + sqrt(2.0) - 0.25;
double xyDist = -diagonalDist * sqrt(2.0) / 2.0;
leaf->rotate('z', zAngle);
leaf->translate(Vector3D(xyDist, xyDist, upDist));
add_child(leaf);
}