デフォルトでは、ブロック挿入内の光源の表示は有効になっており、Teighaレンダリングはそれらを考慮に入れます。しかし、大規模な図面には多くの光源が含まれる可能性があり、レンダリングパフォーマンスを著しく低下させる可能性があります。たとえば、建築図面にはランプを含む部屋のある建物が含まれることがあり、各ランプはブロック挿入として作成され、光源を含むことができます。この場合、アプリケーションはブロック挿入からの光源のレンダリングを無効にしてレンダリングパフォーマンスを向上させ、階層の最上位に配置された光源のみが表示されるようにすることができます。
.dwgデータベースの場合、「LIGHTSINBLOCKS」システム変数を呼び出して、ブロック内の光源の表示を有効/無効にできます。
void disableLightsInBlocks(OdDbDatabase *pDb)
{
pDb->setLIGHTSINBLOCKS(0);
}
プログラム的には、アプリケーションはOdGsModel::setEnableLightsInBlocksメソッドを使用して、グラフィックスキャッシュの一部についてブロック内の光源の表示を制御できます。
void disableLightsInBlocks(OdGsModel *pGsModel)
{
pGsModel->setEnableLightsInBlocks(false);
}
ブロック挿入内に4つのライトがある図面の例:
ブロック挿入内のライトの表示が無効になっている同じ図面の例: