コード例 #1
0
 public void BuildTree(ref Vector3 bvhAabbMin, ref Vector3 bvhAabbMax)
 {
     m_optimizedAabbTree = new QuantizedBvh();
     m_optimizedAabbTree.SetQuantizationValues(ref bvhAabbMin, ref bvhAabbMax);
     IList<QuantizedBvhNode> nodes = m_optimizedAabbTree.GetLeafNodeArray();
     for (int i = 0; i < m_sapBroadphases.Count; i++)
     {
         QuantizedBvhNode node = new QuantizedBvhNode();
         Vector3 aabbMin = Vector3.Zero, aabbMax = Vector3.Zero;
         m_sapBroadphases[i].GetBroadphaseAabb(ref aabbMin, ref aabbMax);
         m_optimizedAabbTree.Quantize(ref node.m_quantizedAabbMin, ref aabbMin, false);
         m_optimizedAabbTree.Quantize(ref node.m_quantizedAabbMax, ref aabbMax, true);
         int partId = 0;
         node.m_escapeIndexOrTriangleIndex = (partId << (31 - QuantizedBvh.MAX_NUM_PARTS_IN_BITS)) | i;
         nodes.Add(node);
     }
     m_optimizedAabbTree.BuildInternal();
 }
コード例 #2
0
		QuantizedBvh m_optimizedTree; // for quantization

		public QuantizedNodeTriangleCallback(ObjectArray<QuantizedBvhNode> triangleNodes, QuantizedBvh tree)
		{
			m_triangleNodes = triangleNodes;
			m_optimizedTree = tree;
		}