本文整理汇总了C++中Floor::splitUnit方法的典型用法代码示例。如果您正苦于以下问题:C++ Floor::splitUnit方法的具体用法?C++ Floor::splitUnit怎么用?C++ Floor::splitUnit使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Floor
的用法示例。
在下文中一共展示了Floor::splitUnit方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
Surface* Building::extrude_lod3(double hFloor, double lenHasWin, double lenUnit) const
{
Surface* bldg = extrude_envelope();
for(int i=0;i<bldg->getNumChildren();++i)
{
if(bldg->getChild(i)->getType()==SurfaceType::Wall)
{
Wall* wall = (Wall*)(bldg->getChild(i));
wall->splitFloor(hFloor);
double lWall = wall->getLength();
if(lWall>lenHasWin || std::abs(lWall-lenHasWin)<0.001)
{
for(int j=0;j<wall->getNumChildren();++j)
{
Floor* floor = (Floor*)(wall->getChild(j));
floor->splitUnit(lenUnit);
for(int k=0;k<floor->getNumChildren();++k)
{
Unit* unit = (Unit*)(floor->getChild(k));
if(j==0 && k%5 == 0 && unit->getLength()>3)
{
unit->insertDoor(unit->getLength()/3,unit->getHeight()*2/3);
continue;
}
if(unit->getLength()>1)
unit->insertWindow(unit->getLength()/3,unit->getHeight()/3);
}
}
}
}
}
return bldg;
}