/* ================== MakeTreePortals_r ================== */ void MakeTreePortals_r( node_t *node ) { int i; CalcNodeBounds( node ); if( node->bounds[0][0] >= node->bounds[1][0] ) { common->Warning( "node without a volume" ); } for( i = 0; i < 3; i++ ) { if( node->bounds[0][i] < MIN_WORLD_COORD || node->bounds[1][i] > MAX_WORLD_COORD ) { common->Warning( "node with unbounded volume" ); break; } } if( node->planenum == PLANENUM_LEAF ) { return; } MakeNodePortal( node ); SplitNodePortals( node ); MakeTreePortals_r( node->children[0] ); MakeTreePortals_r( node->children[1] ); }
void MakeTreePortals_r(node_t *node) { int i; #ifdef ME qprintf("\r%6d", ++c_numportalizednodes); if(cancelconversion) { return; } #endif //ME CalcNodeBounds(node); if(node->mins[0] >= node->maxs[0]) { Log_Print("WARNING: node without a volume\n"); } for(i = 0 ; i < 3 ; i++) { if(node->mins[i] < -MAX_MAP_BOUNDS || node->maxs[i] > MAX_MAP_BOUNDS) { Log_Print("WARNING: node with unbounded volume\n"); break; } } if(node->planenum == PLANENUM_LEAF) { return; } MakeNodePortal(node); SplitNodePortals(node); MakeTreePortals_r(node->children[0]); MakeTreePortals_r(node->children[1]); } //end of the function MakeTreePortals_r
/* * @brief */ static void MakeTreePortals_r(node_t * node) { int32_t i; CalcNodeBounds(node); if (node->mins[0] >= node->maxs[0]) { Com_Verbose("WARNING: node without a volume\n"); } for (i = 0; i < 3; i++) { if (node->mins[i] < -8000 || node->maxs[i] > 8000) { Com_Verbose("WARNING: node with unbounded volume\n"); break; } } if (node->plane_num == PLANENUM_LEAF) return; MakeNodePortal(node); SplitNodePortals(node); MakeTreePortals_r(node->children[0]); MakeTreePortals_r(node->children[1]); }
/* ================== MakeTreePortals_r ================== */ void MakeTreePortals_r (node_t *node) { int i; CalcNodeBounds (node); if (node->mins[0] >= node->maxs[0]) { Warning("WARNING: node without a volume\n"); } for (i=0 ; i<3 ; i++) { if (node->mins[i] < (MIN_COORD_INTEGER-SIDESPACE) || node->maxs[i] > (MAX_COORD_INTEGER+SIDESPACE)) { const char *pMatName = "<NO BRUSH>"; // split by brush side if ( node->side ) { texinfo_t *pTexInfo = &texinfo[node->side->texinfo]; dtexdata_t *pTexData = GetTexData( pTexInfo->texdata ); pMatName = TexDataStringTable_GetString( pTexData->nameStringTableID ); } Vector point = node->portals->winding->p[0]; Warning("WARNING: BSP node with unbounded volume (material: %s, near %s)\n", pMatName, VecToString(point) ); break; } } if (node->planenum == PLANENUM_LEAF) return; MakeNodePortal (node); SplitNodePortals (node); MakeTreePortals_r (node->children[0]); MakeTreePortals_r (node->children[1]); }
static void MakeTreePortals_r (node_t *node) { int i; CalcNodeBounds(node); if (node->mins[0] >= node->maxs[0]) { Com_Printf("WARNING: node without a volume\n"); } for (i = 0; i < 3; i++) { if (node->mins[i] < -MAX_WORLD_WIDTH || node->maxs[i] > MAX_WORLD_WIDTH) { Com_Printf("WARNING: node with unbounded volume %i\n", (int)node->mins[i]); break; } } if (node->planenum == PLANENUM_LEAF) return; MakeNodePortal(node); SplitNodePortals(node); MakeTreePortals_r(node->children[0]); MakeTreePortals_r(node->children[1]); }
//=========================================================================== // // Parameter: - // Returns: - // Changes Globals: - //=========================================================================== void MakeTreePortals( tree_t *tree ) { #ifdef ME Log_Print( "---- Node Portalization ----\n" ); c_numportalizednodes = 0; c_portalmemory = 0; qprintf( "%6d nodes portalized", c_numportalizednodes ); #endif //ME MakeHeadnodePortals( tree ); MakeTreePortals_r( tree->headnode ); #ifdef ME qprintf( "\n" ); Log_Write( "\r%6d nodes portalized\r\n", c_numportalizednodes ); Log_Print( "%6d tiny portals\r\n", c_tinyportals ); Log_Print( "%6d KB of portal memory\r\n", c_portalmemory >> 10 ); Log_Print( "%6i KB of winding memory\r\n", WindingMemory() >> 10 ); #endif //ME } //end of the function MakeTreePortals
/* ================== MakeTreePortals ================== */ void MakeTreePortals (tree_t *tree) { MakeHeadnodePortals (tree); MakeTreePortals_r (tree->headnode); }
/* ================== MakeTreePortals ================== */ void MakeTreePortals( tree_t *tree ) { common->Printf( "----- MakeTreePortals -----\n" ); MakeHeadnodePortals( tree ); MakeTreePortals_r( tree->headnode ); }