//! this rebuild the entire set public void BuildSet() { //obtain primitive boxes GIM_BVH_DATA_ARRAY primitive_boxes = new GIM_BVH_DATA_ARRAY(); //primitive_boxes.resize(m_primitive_manager.get_primitive_count()); primitive_boxes.Capacity = m_primitive_manager.GetPrimitiveCount(); for (int i = 0; i < primitive_boxes.Count; i++) { m_primitive_manager.GetPrimitiveBox(i, out primitive_boxes.GetRawArray()[i].m_bound); primitive_boxes.GetRawArray()[i].m_data = i; } m_box_tree.BuildTree(primitive_boxes); }
//! this rebuild the entire set public void BuildSet() { //obtain primitive boxes int listSize = m_primitive_manager.GetPrimitiveCount(); GIM_BVH_DATA_ARRAY primitive_boxes = new GIM_BVH_DATA_ARRAY(listSize); // forces boxes to be allocated primitive_boxes.Resize(listSize); GIM_BVH_DATA[] rawArray = primitive_boxes.GetRawArray(); for (int i = 0; i < listSize; i++) { m_primitive_manager.GetPrimitiveBox(i, out rawArray[i].m_bound); rawArray[i].m_data = i; } m_box_tree.BuildTree(primitive_boxes); }