本文整理汇总了C++中Wall::getLength方法的典型用法代码示例。如果您正苦于以下问题:C++ Wall::getLength方法的具体用法?C++ Wall::getLength怎么用?C++ Wall::getLength使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Wall
的用法示例。
在下文中一共展示了Wall::getLength方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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;
}
示例2: collision
bool Bomberman::collision(Wall wall)
{
if(y + width <= wall.getY())
return 0;
if(x + length <= wall.getX())
return 0;
if(y >= wall.getY() + wall.getWidth())
return 0;
if(x >= wall.getX() + wall.getLength())
return 0;
return 1;
}
示例3: collisionCarWall
bool collisionCarWall(Car& car, Wall& wall, glm::mat4 carMatrix) {
//can't collide if they are too far apart
if (!collisionCircleCircle(car.getCenter(), carRadius, wall.getCenter(), wall.getLength()/2 + 1)) { //not very wide, and too lazy to do more percise math
return false;
}
glm::mat4 wallMatrix = wall.getMatrix();
glm::vec4 carUR = carMatrix * glm::vec4(0.5,1.0,0.0,1.0);
glm::vec4 carLR = carMatrix * glm::vec4(0.5,-1.0,0.0,1.0);
glm::vec4 carLL = carMatrix * glm::vec4(-0.5,-1.0,0.0,1.0);
glm::vec4 carUL = carMatrix * glm::vec4(-0.5,1.0,0.0,1.0);
glm::vec4 wallUR = wallMatrix * glm::vec4(1.0,0.2,0.0,1.0);
glm::vec4 wallLR = wallMatrix * glm::vec4(1.0,-0.2,0.0,1.0);
glm::vec4 wallLL = wallMatrix * glm::vec4(-1.0,-0.2,0.0,1.0);
glm::vec4 wallUL = wallMatrix * glm::vec4(-1.0,0.2,0.0,1.0);
return collisionRectSAT(carUR, carLR, carLL, carUL,
wallUR, wallLR, wallLL, wallUL);
}