Oolite 1.91.0.7604-240417-a536cbe
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions | Variables
OOMesh.m File Reference
import "OOMesh.h"
import "Universe.h"
import "OOMeshToOctreeConverter.h"
import "ResourceManager.h"
import "Entity.h"
import "Octree.h"
import "OOMaterialConvenienceCreators.h"
import "OOBasicMaterial.h"
import "OOCollectionExtractors.h"
import "OOOpenGLExtensionManager.h"
import "OOGraphicsResetManager.h"
import "OODebugGLDrawing.h"
import "OOShaderMaterial.h"
import "OOMacroOpenGL.h"
import "OOProfilingStopwatch.h"
import "OODebugFlags.h"
import "NSObjectOOExtensions.h"
import "OOJavaScriptEngine.h"
import "OODebugStandards.h"
+ Include dependency graph for OOMesh.m:

Go to the source code of this file.

Classes

struct  VertexFaceRef
 
category  OOMesh(Private)
 
category  OOCacheManager(OOMesh)
 

Macros

#define ADAPTIVE_OCTREE_DEPTH   1
 
#define SCRIBBLE   0
 
#define PROFILE(tag)   do {} while (0)
 
#define Scribble(bytes, size)   do {} while (0)
 

Typedefs

typedef struct VertexFaceRef VertexFaceRef
 

Enumerations

enum  { kBaseOctreeDepth = 5 , kSmallOctreeDepth = 4 , kOctreeSizeThreshold = 900 , kOctreeSmallSizeThreshold = 20 }
 
enum  OOMeshNormalMode { kNormalModePerFace , kNormalModeSmooth , kNormalModeExplicit }
 
enum  { kVertexFaceDefInternalCount = 5 }
 

Functions

static void VFRAddFace (VertexFaceRef *vfr, NSUInteger index)
 
static NSUInteger VFRGetCount (VertexFaceRef *vfr)
 
static NSUInteger VFRGetFaceAtIndex (VertexFaceRef *vfr, NSUInteger index)
 
static BOOL IsLegacyNormalMode (OOMeshNormalMode mode)
 
static BOOL IsPerVertexNormalMode (OOMeshNormalMode mode)
 

Variables

static NSString *const kOOLogMeshDataNotFound = @"mesh.load.failed.fileNotFound"
 
static NSString *const kOOLogMeshTooManyMaterials = @"mesh.load.failed.tooManyMaterials"
 
static NSString *const kOOCacheMeshes = @"@"OOMesh"
 
static NSString *const kOOCacheOctrees = @"@"octrees"
 

Macro Definition Documentation

◆ ADAPTIVE_OCTREE_DEPTH

#define ADAPTIVE_OCTREE_DEPTH   1

Definition at line 60 of file OOMesh.m.

◆ PROFILE

#define PROFILE ( tag)    do {} while (0)

Definition at line 97 of file OOMesh.m.

◆ SCRIBBLE

#define SCRIBBLE   0

Definition at line 63 of file OOMesh.m.

◆ Scribble

#define Scribble ( bytes,
size )   do {} while (0)

Definition at line 2134 of file OOMesh.m.

Typedef Documentation

◆ VertexFaceRef

typedef struct VertexFaceRef VertexFaceRef

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
kBaseOctreeDepth 
kSmallOctreeDepth 
kOctreeSizeThreshold 
kOctreeSmallSizeThreshold 

Definition at line 66 of file OOMesh.m.

67{
68 kBaseOctreeDepth = 5, // 32x32x32
69// kMaxOctreeDepth declared in Octree.h.
70 kSmallOctreeDepth = 4, // 16x16x16
71 kOctreeSizeThreshold = 900, // Size at which we start increasing octree depth
73};
@ kBaseOctreeDepth
Definition OOMesh.m:68
@ kOctreeSmallSizeThreshold
Definition OOMesh.m:72
@ kSmallOctreeDepth
Definition OOMesh.m:70
@ kOctreeSizeThreshold
Definition OOMesh.m:71

◆ anonymous enum

anonymous enum
Enumerator
kVertexFaceDefInternalCount 

Definition at line 108 of file OOMesh.m.

109{
110#if OOLITE_64_BIT
111 kVertexFaceDefInternalCount = 11 // sizeof (VertexFaceRef) = 32
112#else
113 kVertexFaceDefInternalCount = 5 // sizeof (VertexFaceRef) = 16
114#endif
115};
@ kVertexFaceDefInternalCount
Definition OOMesh.m:113

◆ OOMeshNormalMode

Enumerator
kNormalModePerFace 
kNormalModeSmooth 
kNormalModeExplicit 

Definition at line 76 of file OOMesh.m.

77{
OOMeshNormalMode
Definition OOMesh.m:77
@ kNormalModeExplicit
Definition OOMesh.m:80
@ kNormalModeSmooth
Definition OOMesh.m:79
@ kNormalModePerFace
Definition OOMesh.m:78

Function Documentation

◆ IsLegacyNormalMode()

static BOOL IsLegacyNormalMode ( OOMeshNormalMode mode)
static

Definition at line 188 of file OOMesh.m.

189{
190 /* True for modes that predate the "normal mode" concept, i.e. per-face
191 and smooth. These modes require automatic winding correction.
192 */
193 switch (mode)
194 {
197 return YES;
198
200 return NO;
201 }
202
203#ifndef NDEBUG
204 [NSException raise:NSInvalidArgumentException format:@"Unexpected normal mode in %s", __PRETTY_FUNCTION__];
205#endif
206 return NO;
207}
const char int mode
Definition ioapi.h:133

References kNormalModeExplicit, kNormalModePerFace, and kNormalModeSmooth.

◆ IsPerVertexNormalMode()

static BOOL IsPerVertexNormalMode ( OOMeshNormalMode mode)
static

Definition at line 210 of file OOMesh.m.

211{
212 /* True for modes that have per-vertex normals, i.e. not per-face mode.
213 */
214 switch (mode)
215 {
217 return NO;
218
221 return YES;
222 }
223
224#ifndef NDEBUG
225 [NSException raise:NSInvalidArgumentException format:@"Unexpected normal mode in %s", __PRETTY_FUNCTION__];
226#endif
227 return NO;
228}

References kNormalModeExplicit, kNormalModePerFace, and kNormalModeSmooth.

◆ VFRAddFace()

static void VFRAddFace ( VertexFaceRef * vfr,
NSUInteger index )
static

◆ VFRGetCount()

static NSUInteger VFRGetCount ( VertexFaceRef * vfr)
static

Referenced by OOCacheManager(Octree)::VFRGetFaceAtIndex.

+ Here is the caller graph for this function:

◆ VFRGetFaceAtIndex()

static NSUInteger VFRGetFaceAtIndex ( VertexFaceRef * vfr,
NSUInteger index )
static

Variable Documentation

◆ kOOCacheMeshes

NSString* const kOOCacheMeshes = @"@"OOMesh"
static

Definition at line 2214 of file OOMesh.m.

◆ kOOCacheOctrees

NSString* const kOOCacheOctrees = @"@"octrees"
static

Definition at line 2235 of file OOMesh.m.

◆ kOOLogMeshDataNotFound

NSString* const kOOLogMeshDataNotFound = @"mesh.load.failed.fileNotFound"
static

Definition at line 84 of file OOMesh.m.

◆ kOOLogMeshTooManyMaterials

NSString* const kOOLogMeshTooManyMaterials = @"mesh.load.failed.tooManyMaterials"
static

Definition at line 85 of file OOMesh.m.