Advertisement
Guest User

Untitled

a guest
Feb 15th, 2013
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1.         // The 8 children
  2.         // bit2=X,bit1=Y,bit0=Z
  3.         // 0:000: -X -Y -Z
  4.         // 1:001: -X -Y +Z
  5.         // 2:010: -X +Y -Z
  6.         // 3:011: -X +Y +Z
  7.         // 4:100: +X -Y -Z
  8.         // 5:101: +X -Y +Z
  9.         // 6:110: +X +Y -Z
  10.         // 7:111: +X +Y +Z
  11.         NodeBase *pChildren[8];
  12.  
  13.         // To divide space into 8 octants:
  14.         // Split   on YZ plane into 0,4 (-X in 0, +X in 4)
  15.         // Split 0 on XZ plane into 0,2 (-Y in 0, +Y in 2, -X)
  16.         // Split 4 on XZ plane into 4,6 (-Y in 4, +Y in 6, +X)
  17.         // Split 0 on XY plane into 0,1 (-Z in 0, +Z in 1, -X, -Y)
  18.         // Split 4 on XY plane into 4,5 (-Z in 4, +Z in 5, +X, -Y)
  19.         // Split 2 on XY plane into 2,3 (-Z in 2, +Z in 3, -X, +Y)
  20.         // Split 6 on XY plane into 6,7 (-Z in 6, +Z in 7, +X, +Y)
  21.  
  22.         // YZ plane vector: 1,0,0
  23.         // XZ plane vector: 0,1,0
  24.         // XY plane vector: 0,0,1
  25.  
  26.         Node()
  27.         {
  28.             bIsLeaf = FALSE;
  29.         }
  30.  
  31.         ~Node()
  32.         {
  33.             unsigned i;
  34.             for (i = 0; i < 8; ++i) {
  35.                 if (pChildren[i])
  36.                     delete pChildren[i];
  37.             }
  38.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement