1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
//
// MyDocument.h
// DisplayLinkAsyncMoviePlayer
//
// Created by vade on 10/26/10.
// Copyright __MyCompanyName__ 2010 . All rights reserved.
//
#import "ModelLoaderHelperClasses.h"
// assimp include files. These three are usually needed.
#import "assimp.h"
#import "aiPostProcess.h"
#import "aiScene.h"
#import <Cocoa/Cocoa.h>
#import <OpenGL/OpenGL.h>
#import <Quartz/Quartz.h>
@interface MyDocument : NSPersistentDocument
{
CVDisplayLinkRef _displayLink;
NSOpenGLContext* _glContext;
NSOpenGLPixelFormat* _glPixelFormat;
NSView* _view;
// Assimp Stuff
aiScene* _scene;
struct aiVector3D scene_min, scene_max, scene_center;
double normalizedScale;
// Our array of textures.
GLuint *textureIds;
// only used if we use
NSMutableArray* modelMeshes;
BOOL builtBuffers;
NSMutableDictionary* textureDictionary; // Array of Dicionaries that map image filenames to textureIds
}
@property (retain) IBOutlet NSView* _view;
- (CVReturn)displayLinkRenderCallback:(const CVTimeStamp *)timeStamp;
- (void) render;
- (void) drawMeshesInContext:(CGLContextObj)cgl_ctx;
- (void) createGLResourcesInContext:(CGLContextObj)cgl_ctx;
- (void) deleteGLResourcesInContext:(CGLContextObj)cgl_ctx;
- (void) loadTexturesInContext:(CGLContextObj)cgl_ctx withModelPath:(NSString*) modelPath;
- (void) getBoundingBoxWithMinVector:(struct aiVector3D*) min maxVectr:(struct aiVector3D*) max;
- (void) getBoundingBoxForNode:(const struct aiNode*)nd minVector:(struct aiVector3D*) min maxVector:(struct aiVector3D*) max matrix:(struct aiMatrix4x4*) trafo;
@end
|