Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // The 8 children
- // bit2=X,bit1=Y,bit0=Z
- // 0:000: -X -Y -Z
- // 1:001: -X -Y +Z
- // 2:010: -X +Y -Z
- // 3:011: -X +Y +Z
- // 4:100: +X -Y -Z
- // 5:101: +X -Y +Z
- // 6:110: +X +Y -Z
- // 7:111: +X +Y +Z
- NodeBase *pChildren[8];
- // To divide space into 8 octants:
- // Split on YZ plane into 0,4 (-X in 0, +X in 4)
- // Split 0 on XZ plane into 0,2 (-Y in 0, +Y in 2, -X)
- // Split 4 on XZ plane into 4,6 (-Y in 4, +Y in 6, +X)
- // Split 0 on XY plane into 0,1 (-Z in 0, +Z in 1, -X, -Y)
- // Split 4 on XY plane into 4,5 (-Z in 4, +Z in 5, +X, -Y)
- // Split 2 on XY plane into 2,3 (-Z in 2, +Z in 3, -X, +Y)
- // Split 6 on XY plane into 6,7 (-Z in 6, +Z in 7, +X, +Y)
- // YZ plane vector: 1,0,0
- // XZ plane vector: 0,1,0
- // XY plane vector: 0,0,1
- Node()
- {
- bIsLeaf = FALSE;
- }
- ~Node()
- {
- unsigned i;
- for (i = 0; i < 8; ++i) {
- if (pChildren[i])
- delete pChildren[i];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement