本文整理汇总了C++中IAnimatedMeshSceneNode::getTransformedBoundingBox方法的典型用法代码示例。如果您正苦于以下问题:C++ IAnimatedMeshSceneNode::getTransformedBoundingBox方法的具体用法?C++ IAnimatedMeshSceneNode::getTransformedBoundingBox怎么用?C++ IAnimatedMeshSceneNode::getTransformedBoundingBox使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IAnimatedMeshSceneNode
的用法示例。
在下文中一共展示了IAnimatedMeshSceneNode::getTransformedBoundingBox方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: update
//.........这里部分代码省略.........
}
break;
}
case GS_RUNNING:
{
u32 time = clock();
time = time - last_time;
// Update the car
reciever->dispatch();
stringw str;
str += "LAP ";
str += nr_of_laps;
str += " / ";
str += max_laps;
str += "\nTOTAL TIME: ";
str += time/CLOCKS_PER_SEC;
str += " seconds";
str += "\nUSE ARROW KEYS TO PLAY";
info->setText(str.c_str());
// Transition
if (nr_of_laps > max_laps)
{
current_state = GS_GAME_OVER;
countdown = smgr->addBillboardTextSceneNode(guienv->getBuiltInFont(), L"GOAL!", 0, dimension2d<f32>(150.0f, 150.0f));
countdown->setText(L"GOAL!");
countdown->setTextColor(SColor(255,230,100,0));
vector3df v = (*object->begin())->getSceneNode()->getPosition();
v.Y = 500.0f;
countdown->setPosition(v);
IAnimatedMeshSceneNode *cp = checkpoint->back();
checkpoint->pop_back();
checkpoint->push_front(cp);
}
break;
}
case GS_GAME_OVER:
{
if (reciever->getNextState() == GS_QUIT)
{
device->closeDevice();
}
else if (reciever->getNextState() == GS_START)
{
current_state = GS_START;
countdown->remove();
countdown = NULL;
}
else
{
stringw str = info->getText();
str += "\nPRESS ENTER TO CONTINUE\nESC TO QUIT";
info->setText(str.c_str());
}
break;
}
}
reciever->setCurrentState(current_state);
// Update everything else
vector<GameObject*>::iterator i = object->begin();
for (; i != object->end(); i++)
{
(*i)->update();
}
if (current_state == GS_RUNNING)
{
// Car intersects checkpoint
i = object->begin();
for (; i != object->end(); i++)
{
if ((*i)->getID() == 1)
{
// Intersects, front and push_back
IAnimatedMeshSceneNode *cp = checkpoint->front();
aabbox3d<f32> box = (*i)->getSceneNode()->getTransformedBoundingBox();
if (box.intersectsWithBox(cp->getTransformedBoundingBox()))
{
checkpoint->pop_front();
checkpoint->push_back(cp);
// First?
if (cp == first_checkpoint)
{
nr_of_laps++;
}
}
}
}
}
}
示例2: dns_cache_prune
void dns_cache_prune(DnsCache *c) {
usec_t t = 0;
assert(c);
/* Remove all entries that are past their TTL */
for (;;) {
_cleanup_(dns_resource_key_unrefp) DnsResourceKey *key = NULL;
DnsCacheItem *i;
i = prioq_peek(c->by_expiry);
if (!i)
break;
if (t <= 0)
t = now(CLOCK_BOOTTIME);
if (i->until > t)
break;
/* Take an extra reference to the key so that it
* doesn't go away in the middle of the remove call */
key = dns_resource_key_ref(i->key);
dns_cache_remove(c, key);
}
}
static int dns_cache_item_prioq_compare_func(const void *a, const void *b) {
const DnsCacheItem *x = a, *y = b;
if (x->until < y->until)
return -1;
if (x->until > y->until)
return 1;
return 0;
}
static int dns_cache_init(DnsCache *c) {
int r;
assert(c);
r = prioq_ensure_allocated(&c->by_expiry, dns_cache_item_prioq_compare_func);
if (r < 0)
return r;
r = hashmap_ensure_allocated(&c->by_key, &dns_resource_key_hash_ops);
if (r < 0)
return r;
return r;
}
static int dns_cache_link_item(DnsCache *c, DnsCacheItem *i) {
DnsCacheItem *first;
int r;
assert(c);
assert(i);
r = prioq_put(c->by_expiry, i, &i->prioq_idx);
if (r < 0)
return r;
first = hashmap_get(c->by_key, i->key);
if (first) {
LIST_PREPEND(by_key, first, i);
assert_se(hashmap_replace(c->by_key, first->key, first) >= 0);
} else {
r = hashmap_put(c->by_key, i->key, i);
if (r < 0) {
prioq_remove(c->by_expiry, i, &i->prioq_idx);
return r;
}
}
return 0;
}
static DnsCacheItem* dns_cache_get(DnsCache *c, DnsResourceRecord *rr) {
DnsCacheItem *i;
assert(c);
assert(rr);
LIST_FOREACH(by_key, i, hashmap_get(c->by_key, rr->key))
if (i->rr && dns_resource_record_equal(i->rr, rr) > 0)
return i;
return NULL;
}
static void dns_cache_item_update_positive(DnsCache *c, DnsCacheItem *i, DnsResourceRecord *rr, usec_t timestamp) {
assert(c);
assert(i);
assert(rr);
i->type = DNS_CACHE_POSITIVE;
//.........这里部分代码省略.........