void InteriorLMManager::useBaseTextures(LM_HANDLE interiorHandle, LM_HANDLE instanceHandle)
{
   AssertFatal(interiorHandle < mInteriors.size(), "InteriorLMManager::useBaseTextures: invalid interior handle");
   AssertFatal(interiorHandle == *(mInteriors[interiorHandle]->mHandlePtr), "InteriorLMManager::useBaseTextures: invalid handle value");

   // Make sure the base light maps are loaded
   loadBaseLightmaps(interiorHandle,instanceHandle);

   // Install base lightmaps for this instance...
   Vector<GFXTexHandle>& baseHandles = getHandles(interiorHandle, 0);
   Vector<GFXTexHandle>& texHandles = getHandles(interiorHandle, instanceHandle);
   for(U32 i = 0; i < baseHandles.size(); i++)
      texHandles[i] = baseHandles[i];
}
Example #2
0
rice::pastry::leafset::LeafSet* rice::pastry::leafset::testing::MergeTest::getLeafSet(::java::lang::String* str)
{
    clinit();
    auto a = npc(str)->split(u"\\["_j);
    /* assert((npc(a)->length == 2)) */ ;
    auto b = npc((*a)[int32_t(1)])->split(u"]"_j);
    /* assert((npc(b)->length == 2)) */ ;
    auto s_ccw = (*a)[int32_t(0)];
    auto s_cw = (*b)[int32_t(1)];
    auto s_base = (*b)[int32_t(0)];
    auto ccw = getHandles(s_ccw);
    flip(ccw);
    auto base = (*getHandles(s_base))[int32_t(0)];
    auto cw = getHandles(s_cw);
    auto ls = new ::rice::pastry::leafset::LeafSet(base, int32_t(24), true, cw, ccw);
    return ls;
}
//------------------------------------------------------------------------------
void InteriorLMManager::addInterior(LM_HANDLE & interiorHandle, U32 numLightmaps, Interior * interior)
{
   interiorHandle = mInteriors.size();
   mInteriors.increment();
   mInteriors.last() = new InteriorLMInfo;

   mInteriors.last()->mInterior = interior;
   mInteriors.last()->mHandlePtr = &interiorHandle;
   mInteriors.last()->mNumLightmaps = numLightmaps;

   // create base instance
   addInstance(interiorHandle, mInteriors.last()->mBaseInstanceHandle, 0);
   AssertFatal(mInteriors.last()->mBaseInstanceHandle == LM_HANDLE(0), "InteriorLMManager::addInterior: invalid base instance handle");

   // steal the lightmaps from the interior
   Vector<GFXTexHandle>& texHandles = getHandles(interiorHandle, 0);
   for(U32 i = 0; i < interior->mLightmaps.size(); i++)
   {
      AssertFatal(interior->mLightmaps[i], "InteriorLMManager::addInterior: interior missing lightmap");
      texHandles[i].set(interior->mLightmaps[i], &GFXDefaultPersistentProfile, true, String("Interior Lightmap"));
   }

   interior->mLightmaps.clear();
}