コード例 #1
0
        //! 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);
        }
コード例 #2
0
        //! 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);
        }