本文整理汇总了C++中Box3d::isInCollisionWith方法的典型用法代码示例。如果您正苦于以下问题:C++ Box3d::isInCollisionWith方法的具体用法?C++ Box3d::isInCollisionWith怎么用?C++ Box3d::isInCollisionWith使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Box3d
的用法示例。
在下文中一共展示了Box3d::isInCollisionWith方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: drawScene
//.........这里部分代码省略.........
if(mesh)
{
Vector3 scale = entity->getTransformedScale();
Box3d * entityBox = entity->getBoundingBox();
float minScale = scale.x;
minScale = MIN(minScale, scale.y);
minScale = MIN(minScale, scale.z);
minScale = 1.0f / minScale;
unsigned int entityLightsNumber = 0;
for(l=0; l<lSize; l++)
{
// get entity
OLight * light = scene->getLightByIndex(l);
if(! light->isActive())
continue;
if(! light->isVisible())
continue;
// light box
Vector3 lightPos = light->getTransformedPosition();
Vector3 localPos = entity->getInversePosition(lightPos);
float localRadius = light->getRadius() * minScale;
Box3d lightBox(
Vector3(localPos - localRadius),
Vector3(localPos + localRadius)
);
if(! entityBox->isInCollisionWith(lightBox))
continue;
MEntityLight * entityLight = &entityLights[entityLightsNumber];
entityLight->lightBox = lightBox;
entityLight->light = light;
entityLightsNumber++;
if(entityLightsNumber == MAX_ENTITY_LIGHTS)
break;
}
// animate armature
if(mesh->getArmature())
{
Armature * armature = mesh->getArmature();
if(mesh->getArmatureAnim())
{
animateArmature(
mesh->getArmature(),
mesh->getArmatureAnim(),
entity->getCurrentFrame()
);
}
else
{
armature->processBonesLinking();
armature->updateBonesSkinMatrix();
}
}
// animate textures
if(mesh->getTexturesAnim())