本文整理汇总了C++中Patch::Reset方法的典型用法代码示例。如果您正苦于以下问题:C++ Patch::Reset方法的具体用法?C++ Patch::Reset怎么用?C++ Patch::Reset使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Patch
的用法示例。
在下文中一共展示了Patch::Reset方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: findPatch
Patch * TerrainPager::GetPatch(const PatchID &patchID)
{
if (patchID.GetI() < 0 || patchID.GetJ() < 0) // reject call
return NULL;
// Check the working set to see if it is loaded
Patch *pPatch = findPatch(patchID);
if (NULL != pPatch)
{
pPatch->IncrementReferenceCount();
return pPatch;
}
// not within the working set.
// go get it.
// get a free slot.
assert(!readyPatchQueue.empty()); // uptil now we just assume that we have a patch pool that is sufficient to our needs.
unsigned int index = readyPatchQueue.front();
readyPatchQueue.pop(); // mark this patch as occupied.
// load the patch into this slot
pPatch = pPatches[index];
pPatch->Reset(); // reset internal values of nbLoadedVertices, currentLoadedLevel.
pPatch->SetID(patchID);
jobManager->RequestFillPatch(*pPatch, utilizeTextures);
// push it onto the list
workingSet.push_back(pPatch);
pPatch->IncrementReferenceCount(); // this one is used.
pPatch->SetIterator(--workingSet.end()); // the iterator of the latest added item.
return pPatch;
}
示例2: Reset
void Landscape::Reset()
{
Patch *patch;
SetNextTriNode(0);
for ( int Y=0; Y < NUM_PATCHES_PER_SIDE; Y++ ) {
for ( int X=0; X < NUM_PATCHES_PER_SIDE; X++) {
patch = &(m_Patches[Y][X]);
patch->Reset();
if ( X > 0 )
patch->GetBaseLeft()->LeftNeighbor = m_Patches[Y][X-1].GetBaseRight();
else
patch->GetBaseLeft()->LeftNeighbor = NULL;
if ( X < (NUM_PATCHES_PER_SIDE-1) )
patch->GetBaseRight()->LeftNeighbor = m_Patches[Y][X+1].GetBaseLeft();
else
patch->GetBaseRight()->LeftNeighbor = NULL;
if ( Y > 0 )
patch->GetBaseLeft()->RightNeighbor = m_Patches[Y-1][X].GetBaseRight();
else
patch->GetBaseLeft()->RightNeighbor = NULL;
if ( Y < (NUM_PATCHES_PER_SIDE-1) )
patch->GetBaseRight()->RightNeighbor = m_Patches[Y+1][X].GetBaseLeft();
else
patch->GetBaseRight()->RightNeighbor = NULL;
}
}
}