Blender Git Commit Log
Git Commits -> Revision 850636e
Revision 850636e by Nicholas Bishop (master) February 18, 2012, 11:34 (GMT) |
Remesh modifier: extensive refactoring of the Octree class. The changes mostly center around two new structures, InternalNode and LeafNode. These provide an explicit representation of the Octree nodes, which formerly were manipulated as opaque byte arrays. A fair amount of commented out/unused code was also removed. This includes the "CINDY" code, which may yet be useful, easy to bring back if so. There should be no difference in the output of the remesh modifier, but memory usage may be slightly different. The flood fill bytes are no longer optional; they will be allocated whether or not the 'remove disconnect components' flag is set. The leaf node is probably not as tightly packed due to alignment issues; this could be fixed with the __attribute__((packed)) flag in gcc (probably there's an MSVC equivalent), but not sure it's worth it. The internal nodes should take up less space on 32-bit systems, allocating sizeof(pointer) now rather than constant eight bytes. These changes were made in persuit of bug #30158 (remesh crashes on PowerPC). There's still a fair amount of bitwise stuff in the Octree, so may still be endian issues and not yet sure if this fixes the bug, but should be much easier to track down problems now. |
Commit Details:
Full Hash: 850636e0e4a3ad1d7d5cbb74d9984acbfd821e49
SVN Revision: 44223
Parent Commit: f3bef40
Lines Changed: +2238, -3590