-
Notifications
You must be signed in to change notification settings - Fork 0
/
aeroCADView.h
69 lines (59 loc) · 2.43 KB
/
aeroCADView.h
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
60
61
62
63
64
65
66
67
68
69
//
// aeroCADView.h
// aeroCAD
//
// Created by Jeff Glaum on 7/4/10.
// Copyright 2010 Jeff Glaum. All rights reserved.
//
#import <Cocoa/Cocoa.h>
#import "aeroCADTypes.h"
#import "aeroCADXform.h"
#import "aeroCADLighting.h"
#import "aeroCADLoftedSurf.h"
// Currently-selected viewing mode
//
typedef enum
{
XYPLANE = 0, // Perpendicular to the XY Plane
XZPLANE, // Perpendicular to the XZ Plane
YZPLANE, // Perpendicular to the YZ Plane
ISOMETRIC, // Isometric view
FREEROTATE // Not one of the above (free rotation view)
} VIEWMODE;
@interface aeroCADView : NSView
{
VIEWMODE viewMode; // Current view mode (i.e., XY-plane, Isometric, etc.)
CGFloat gridSpacing; // Display grid spacing interval
BOOL doShade; // Enable surface shading (Yes/No)
BOOL showNormals; // Display surface normals (Yes/No)
aeroCADXform *primaryXform; // Primary/Master display transform
aeroCADXform *cursorXform; // Cursor display transform
aeroCADLighting *primaryShader; // Primary/Master shader
POINT_SET *primaryCoord, *primaryCoordp; // Coordinate axis pointset
POINT_SET *primaryCursor, *primaryCursorp; // Cursor pointset
POINT_SET *gridArray, *gridArrayp; // Display grid pointset
NSMutableArray *_displayList; // Display list
NSMutableString *_commandLine; // Command line string
}
@property(assign) aeroCADXform *primaryXform;
@property(assign) aeroCADXform *cursorXform;
// Function prototypes
//
- (POINT_SET *) initPointset: (int)numpoints :(POINT3D *)pointlist;
- (void) enableShading: (BOOL)Shade;
- (void) toggleNormals;
- (void) drawCursor;
- (BOOL) addToDisplayList: (id)obj;
- (BOOL) removeFromDisplayList: (id)obj;
- (void) renderDisplayList;
- (void) drawGrid;
- (void) moveCursorRel: (CGFloat)dx :(CGFloat)dy :(CGFloat)dz;
- (void) moveCursorAbs: (CGFloat)x :(CGFloat)y :(CGFloat)z;
- (POINT3D) getCursor;
- (id) selectObject: (NSPoint)mouseCursor;
- (void) defaultKeyHandler: (NSString *)keyEvent;
- (BOOL) scaleSelectedObjects: (CGFloat)scale;
- (BOOL) rotateSelectedObjects: (CGFloat)rotx :(CGFloat)roty :(CGFloat)rotz;
- (BOOL) translateSelectedObjects: (CGFloat)dx :(CGFloat)dy :(CGFloat)dz;
- (BOOL) setGridSpacing: (CGFloat)Spacing;
@end