protected void CalculateBodyLVS()
{
bodyLVSPoints.Clear();
// TODO: 点光源
bodyLVS.Define(eyeFrustum);
bodyLVS.Clip(sceneBox);
for (int ip = 0; ip < bodyLVS.Polygons.Count; ip++)
{
var polygon = bodyLVS.Polygons[ip];
for (int iv = 0; iv < polygon.VertexCount; iv++)
{
Vector3 v;
polygon.GetVertex(iv, out v);
// TODO
// 完全等価ではなく見做し等価とすべき。
// 重複頂点を削除するか否か (接する多角形同士の頂点は重複する)。
if (!bodyLVSPoints.Contains(v))
bodyLVSPoints.Add(v);
}
}
}