Advertisement
Geometrian

TRAX Printer

Apr 5th, 2015
357
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 19.88 KB | None | 0 0
  1. #ifdef BUILD_DEBUG
  2. inline void print_stack(void) const {
  3.     printf("Printing stack:\n");
  4.     printf("INDEX | LOADED |       TYPE | POINTERS\n");
  5.     #define NUM_TARGETS 16
  6.     #define CHECK_TARGETS(K,CMPVAL,COMBINE) (\
  7.         (targets[K][1]CMPVAL) COMBINE (targets[K][2]CMPVAL) COMBINE (targets[K][3]CMPVAL) COMBINE (targets[K][4]CMPVAL) COMBINE\
  8.         (targets[K][5]CMPVAL) COMBINE (targets[K][6]CMPVAL) COMBINE (targets[K][7]CMPVAL) COMBINE (targets[K][8]CMPVAL)\
  9.     )
  10.     int targets[NUM_TARGETS][1+8]; for (int i=0;i<NUM_TARGETS;++i) for (int j=0;j<8;++j) targets[i][1+j]=-1;
  11.     for (int i=0;i<MAX_SLOTS;++i) {
  12.         _Node const* current = CNODE(i);
  13.         if (i>0) { printf("      |        |            |  "); for (int k=0;k<NUM_TARGETS;++k) printf(CHECK_TARGETS(k,!=-1,||)?"  ║":"   "); printf("\n"); }
  14.                             for (int k=0;k<31;++k) printf(" "); for (int k=0;k<NUM_TARGETS;++k) printf(CHECK_TARGETS(k,!=-1,||)?"  ║":"   "); printf("\r");
  15.         printf("%5d | ",i);
  16.         bool found_parent = false;
  17.         int j; for (j=0;j<NUM_TARGETS;++j) if (CHECK_TARGETS(j,==i,||)) { found_parent=true; break; }
  18.         if (found_parent || i==0) {
  19.             if (targets[j][0]==0 || i==0) {
  20.                 printf("%6d | ",current->is_loaded);
  21.                 if (current->is_loaded) {
  22.                     int k;
  23.                     if (current->is_leaf_node) {
  24.                         printf("      Leaf | ═");
  25.                         for (k=0;k<NUM_TARGETS;++k) if (CHECK_TARGETS(k,==-1,&&)) break;
  26.                         targets[k][0] = 1;
  27.                         for (int m=0;m<IMIN(8,current->num_tris);++m) targets[k][1+m]=current->addr_tri0+m;
  28.                     } else {
  29.                         printf("  Interior | ═");
  30.                         for (k=0;k<NUM_TARGETS;++k) if (CHECK_TARGETS(k,==-1,&&)) break;
  31.                         targets[k][0] = 0;
  32.                         targets[k][1] = current->addr_childl;
  33.                         targets[k][2] = current->addr_childr;
  34.                         for (int m=3;m<8;++m) targets[k][m]=-1;
  35.                     }
  36.                     for (int m=0;m<=IMAX(found_parent?j:k,k);++m) {
  37.                         if (m==j) printf("══╝");
  38.                         else if (m==k) printf("══╗");
  39.                         else printf("═══");
  40.                     }
  41.                 } else {
  42.                     printf("<unloaded> | ═");
  43.                     for (int m=0;m<j;++m) printf("═══"); printf("══╝");
  44.                 }
  45.             } else {
  46.                 printf("       |   Triangle | ═");
  47.                 for (int m=0;m<j;++m) printf("═══"); printf("══╝");
  48.             }
  49.             for (int k=0;k<8;++k) if (targets[j][1+k]==i) targets[j][1+k]=-1;
  50.         } else {
  51.             printf("     - |    <empty> |");
  52.         }
  53.         printf("\n");
  54.     }
  55.     printf("Done!\n");
  56. }
  57. #endif
  58.  
  59. /*
  60. Printing stack:
  61. INDEX | LOADED |       TYPE | POINTERS
  62.     0 |      1 |   Interior | ═══╗                                            
  63.       |        |            |    ║                                            
  64.     1 |      1 |   Interior | ═══╝══╗                                          
  65.       |        |            |    ║  ║                                          
  66.     2 |      1 |   Interior | ═══╝═════╗                                      
  67.       |        |            |       ║  ║                                      
  68.     3 |      1 |   Interior | ═══╗═════╝                                      
  69.       |        |            |    ║  ║  ║                                      
  70.     4 |      0 | <unloaded> | ═════════╝                                      
  71.       |        |            |    ║  ║                                          
  72.     5 |      1 |   Interior | ═══╝═════╗                                      
  73.       |        |            |    ║  ║  ║                                      
  74.     6 |      1 |   Interior | ═══╝════════╗                                    
  75.       |        |            |       ║  ║  ║                                    
  76.     7 |      1 |   Interior | ═══╗════════╝                                    
  77.       |        |            |    ║  ║  ║  ║                                    
  78.     8 |      0 | <unloaded> | ════════════╝                                    
  79.       |        |            |    ║  ║  ║                                      
  80.     9 |      0 | <unloaded> | ═══╝  ║  ║                                      
  81.       |        |            |    ║  ║  ║                                      
  82.    10 |      1 |   Interior | ═══╝════════╗                                    
  83.       |        |            |       ║  ║  ║                                    
  84.    11 |      1 |       Leaf | ═══╗════════╝                                    
  85.       |        |            |    ║  ║  ║  ║                                    
  86.    12 |      1 |       Leaf | ════════════╝══╗                                
  87.       |        |            |    ║  ║  ║     ║                                
  88.    13 |        |   Triangle | ═══════════════╝                                
  89.       |        |            |    ║  ║  ║     ║                                
  90.    14 |        |   Triangle | ═══════════════╝                                
  91.       |        |            |    ║  ║  ║                                      
  92.    15 |      1 |   Interior | ═════════╝══╗                                    
  93.       |        |            |    ║  ║  ║  ║                                    
  94.    16 |      1 |   Interior | ═════════╝═════╗                                
  95.       |        |            |    ║  ║     ║  ║                                
  96.    17 |      1 |   Interior | ═════════╗══╝  ║                                
  97.       |        |            |    ║  ║  ║  ║  ║                                
  98.    18 |      0 | <unloaded> | ════════════╝  ║                                
  99.       |        |            |    ║  ║  ║     ║                                
  100.    19 |      1 |   Interior | ═════════╝══╗  ║                                
  101.       |        |            |    ║  ║  ║  ║  ║                                
  102.    20 |      1 |   Interior | ═════════╝════════╗                              
  103.       |        |            |    ║  ║     ║  ║  ║                              
  104.    21 |      1 |   Interior | ═════════╗════════╝                              
  105.       |        |            |    ║  ║  ║  ║  ║  ║                              
  106.    22 |      1 |   Interior | ══════════════════╝══╗                          
  107.       |        |            |    ║  ║  ║  ║  ║     ║                          
  108.    23 |      1 |   Interior | ════════════╝═════╗  ║                          
  109.       |        |            |    ║  ║  ║  ║  ║  ║  ║                          
  110.    24 |      0 | <unloaded> | ════════════╝  ║  ║  ║                          
  111.       |        |            |    ║  ║  ║     ║  ║  ║                          
  112.    25 |      0 | <unloaded> | ═══════════════╝  ║  ║                          
  113.       |        |            |    ║  ║  ║     ║  ║  ║                          
  114.    26 |      1 |   Interior | ════════════╗══╝  ║  ║                          
  115.       |        |            |    ║  ║  ║  ║     ║  ║                          
  116.    27 |      1 |   Interior | ═══════════════╗══╝  ║                          
  117.       |        |            |    ║  ║  ║  ║  ║  ║  ║                          
  118.    28 |      1 |   Interior | ══════════════════╝═════╗                        
  119.       |        |            |    ║  ║  ║  ║  ║     ║  ║                        
  120.    29 |      1 |   Interior | ══════════════════╗═════╝                        
  121.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║                        
  122.    30 |      1 |   Interior | ════════════════════════╝══╗                    
  123.       |        |            |    ║  ║  ║  ║  ║  ║  ║     ║                    
  124.    31 |      0 | <unloaded> | ═══════════════════════════╝                    
  125.       |        |            |    ║  ║  ║  ║  ║  ║  ║     ║                    
  126.    32 |      1 |   Interior | ════════════════════════╗══╝                    
  127.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║                        
  128.    33 |      0 | <unloaded> | ════════════════════════╝                        
  129.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║                        
  130.    34 |      1 |   Interior | ════════════════════════╝══╗                    
  131.       |        |            |    ║  ║  ║  ║  ║  ║  ║     ║                    
  132.    35 |      1 |       Leaf | ════════════════════════╗══╝                    
  133.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║  ║                    
  134.    36 |      1 |       Leaf | ═══════════════════════════╝══╗                  
  135.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║     ║                  
  136.    37 |        |   Triangle | ══════════════════════════════╝                  
  137.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║     ║                  
  138.    38 |        |   Triangle | ══════════════════════════════╝                  
  139.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║     ║                  
  140.    39 |        |   Triangle | ══════════════════════════════╝                  
  141.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║     ║                  
  142.    40 |        |   Triangle | ══════════════════════════════╝                  
  143.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║     ║                  
  144.    41 |        |   Triangle | ══════════════════════════════╝                  
  145.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║     ║                  
  146.    42 |        |   Triangle | ══════════════════════════════╝                  
  147.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║                        
  148.    43 |      0 | <unloaded> | ═══════════════╝  ║  ║  ║                        
  149.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║                        
  150.    44 |      1 |   Interior | ═══════════════╝═══════════╗                    
  151.       |        |            |    ║  ║  ║  ║     ║  ║  ║  ║                    
  152.    45 |      0 | <unloaded> | ═══════════════════════════╝                    
  153.       |        |            |    ║  ║  ║  ║     ║  ║  ║  ║                    
  154.    46 |      1 |   Interior | ═══════════════╗═══════════╝                    
  155.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║                        
  156.    47 |      0 | <unloaded> | ═══════════════╝  ║  ║  ║                        
  157.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║                        
  158.    48 |      1 |   Interior | ═══════════════╝═══════════╗                    
  159.       |        |            |    ║  ║  ║  ║     ║  ║  ║  ║                    
  160.    49 |      0 | <unloaded> | ═══════════════════════════╝                    
  161.       |        |            |    ║  ║  ║  ║     ║  ║  ║  ║                    
  162.    50 |      1 |   Interior | ═══════════════╗═══════════╝                    
  163.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║                        
  164.    51 |      1 |       Leaf | ═══════════════╝═══════════╗                    
  165.       |        |            |    ║  ║  ║  ║  ║  ║  ║  ║  ║                    
  166.    52 |      0 | <unloaded> | ═══════════════╝  ║  ║  ║  ║                    
  167.       |        |            |    ║  ║  ║  ║     ║  ║  ║  ║                    
  168.    53 |        |   Triangle | ═══════════════════════════╝                    
  169.       |        |            |    ║  ║  ║  ║     ║  ║  ║  ║                    
  170.    54 |        |   Triangle | ═══════════════════════════╝                    
  171.       |        |            |    ║  ║  ║  ║     ║  ║  ║  ║                    
  172.    55 |        |   Triangle | ═══════════════════════════╝                    
  173.       |        |            |    ║  ║  ║  ║     ║  ║  ║  ║                    
  174.    56 |        |   Triangle | ═══════════════════════════╝                    
  175.       |        |            |    ║  ║  ║  ║     ║  ║  ║                        
  176.    57 |        |   Triangle | ════════════════════════╝                        
  177.       |        |            |    ║  ║  ║  ║     ║  ║  ║                        
  178.    58 |        |   Triangle | ════════════════════════╝                        
  179.       |        |            |    ║  ║  ║  ║     ║  ║  ║                        
  180.    59 |        |   Triangle | ════════════════════════╝                        
  181.       |        |            |    ║  ║  ║  ║     ║  ║  ║                        
  182.    60 |        |   Triangle | ════════════════════════╝                        
  183.       |        |            |    ║  ║  ║  ║     ║  ║                          
  184.    61 |      0 | <unloaded> | ══════════════════╝  ║                          
  185.       |        |            |    ║  ║  ║  ║     ║  ║                          
  186.    62 |      1 |   Interior | ═══════════════╗══╝  ║                          
  187.       |        |            |    ║  ║  ║  ║  ║     ║                          
  188.    63 |      0 | <unloaded> | ═══════════════╝     ║                          
  189.       |        |            |    ║  ║  ║  ║  ║     ║                          
  190.    64 |      1 |   Interior | ═══════════════╝══╗  ║                          
  191.       |        |            |    ║  ║  ║  ║     ║  ║                          
  192.    65 |      1 |       Leaf | ═══════════════╗══╝  ║                          
  193.       |        |            |    ║  ║  ║  ║  ║  ║  ║                          
  194.    66 |      0 | <unloaded> | ══════════════════╝  ║                          
  195.       |        |            |    ║  ║  ║  ║  ║     ║                          
  196.    67 |        |   Triangle | ═══════════════╝     ║                          
  197.       |        |            |    ║  ║  ║  ║  ║     ║                          
  198.    68 |        |   Triangle | ═══════════════╝     ║                          
  199.       |        |            |    ║  ║  ║  ║  ║     ║                          
  200.    69 |        |   Triangle | ═══════════════╝     ║                          
  201.       |        |            |    ║  ║  ║  ║  ║     ║                          
  202.    70 |        |   Triangle | ═══════════════╝     ║                          
  203.       |        |            |    ║  ║  ║  ║        ║                          
  204.    71 |        |   Triangle | ═══╝  ║  ║  ║        ║                          
  205.       |        |            |    ║  ║  ║  ║        ║                          
  206.    72 |        |   Triangle | ═══╝  ║  ║  ║        ║                          
  207.       |        |            |       ║  ║  ║        ║                          
  208.    73 |      1 |   Interior | ═══╗════════╝        ║                          
  209.       |        |            |    ║  ║  ║  ║        ║                          
  210.    74 |      0 | <unloaded> | ════════════╝        ║                          
  211.       |        |            |    ║  ║  ║           ║                          
  212.    75 |      0 | <unloaded> | ═══╝  ║  ║           ║                          
  213.       |        |            |    ║  ║  ║           ║                          
  214.    76 |      0 | <unloaded> | ═══╝  ║  ║           ║                          
  215.       |        |            |       ║  ║           ║                          
  216.    77 |      0 | <unloaded> | ═════════════════════╝                          
  217.       |        |            |       ║  ║           ║                          
  218.    78 |      0 | <unloaded> | ═════════════════════╝                          
  219.       |        |            |       ║  ║                                      
  220.    79 |      0 | <unloaded> | ══════╝  ║                                      
  221.       |        |            |       ║  ║                                      
  222.    80 |      0 | <unloaded> | ══════╝  ║                                      
  223.       |        |            |          ║                                      
  224.    81 |      1 |   Interior | ═══╗═════╝                                      
  225.       |        |            |    ║     ║                                      
  226.    82 |      0 | <unloaded> | ═════════╝                                      
  227.       |        |            |    ║                                            
  228.    83 |      0 | <unloaded> | ═══╝                                            
  229.       |        |            |    ║                                            
  230.    84 |      0 | <unloaded> | ═══╝                                            
  231. Done!
  232. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement