当前位置: 首页>>代码示例>>C++>>正文


C++ IAnimatedMeshSceneNode::getTransformedBoundingBox方法代码示例

本文整理汇总了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++;
					}
				}
			}
		}
	}
}
开发者ID:NinZine,项目名称:Not-So-Super-Off-Road,代码行数:101,代码来源:Game.cpp

示例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;

//.........这里部分代码省略.........
开发者ID:275288698,项目名称:systemd-ubuntu-with-dbus,代码行数:101,代码来源:resolved-dns-cache.c


注:本文中的IAnimatedMeshSceneNode::getTransformedBoundingBox方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。