本文整理汇总了C++中GeometryNode::scale方法的典型用法代码示例。如果您正苦于以下问题:C++ GeometryNode::scale方法的具体用法?C++ GeometryNode::scale怎么用?C++ GeometryNode::scale使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GeometryNode
的用法示例。
在下文中一共展示了GeometryNode::scale方法的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: createGeometryNode
void Branch::createGeometryNode(const double length, const double thickness, const double upDist,
const double upAngle, const double zAngle)
{
Cylinder* c_branch= new Cylinder;
GeometryNode* branch = new GeometryNode("TreeTrunk", c_branch);
branch->set_material(&wood);
this->rotate('z', zAngle);
this->translate(Vector3D(0.0, 0.0, upDist));
this->rotate('y', upAngle);
branch->scale(Vector3D(thickness, thickness, length));
add_child(branch);
}