Line data Source code
1 0 : /* 2 : 3 : OOMeshToOctreeConverter.h 4 : 5 : Class to manage the construction of octrees from triangle soups. 6 : 7 : 8 : Oolite 9 : Copyright (C) 2004-2013 Giles C Williams and contributors 10 : 11 : This program is free software; you can redistribute it and/or 12 : modify it under the terms of the GNU General Public License 13 : as published by the Free Software Foundation; either version 2 14 : of the License, or (at your option) any later version. 15 : 16 : This program is distributed in the hope that it will be useful, 17 : but WITHOUT ANY WARRANTY; without even the implied warranty of 18 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 : GNU General Public License for more details. 20 : 21 : You should have received a copy of the GNU General Public License 22 : along with this program; if not, write to the Free Software 23 : Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 24 : MA 02110-1301, USA. 25 : 26 : */ 27 : 28 : #import "OOCocoa.h" 29 : #import "OOMaths.h" 30 : 31 : 32 : @class ShipEntity, Octree; 33 : 34 : 35 0 : enum 36 : { 37 : kOOMeshToOctreeConverterSmallDataCapacity = 16 38 : }; 39 : 40 : 41 0 : @interface OOMeshToOctreeConverter: NSObject 42 : { 43 : @private 44 0 : struct OOMeshToOctreeConverterInternalData 45 : { 46 0 : Triangle *triangles; 47 0 : uint_fast32_t count; 48 0 : uint_fast32_t capacity; 49 0 : uint_fast32_t pendingCapacity; 50 0 : Triangle smallData[kOOMeshToOctreeConverterSmallDataCapacity]; 51 0 : } _data; 52 : } 53 : 54 0 : - (id) initWithCapacity:(NSUInteger)capacity; 55 0 : + (instancetype) converterWithCapacity:(NSUInteger)capacity; 56 : 57 0 : - (void) addTriangle:(Triangle)tri; 58 : 59 0 : - (Octree *) findOctreeToDepth:(NSUInteger)depth; 60 : 61 : @end