EngineKit
Vector.h
1 // TODO: Make the vector property protected
2 // TODO: init with string (@"[0, 2, 3]")
3 // TODO: init with dictionary
4 // TODO: Create a copy method for all exported classes.
5 // TODO: Make isEqual accept the same objects as initWithObject does.
6 // TODO: Test rotation for non normalized vectors
7 // TODO: Create standard arithmetic methods, including norm, normalization,
8 // vector product and dot product.
9 
10 @class Vector;
11 
12 
13 @protocol VectorExport <JSExport>
14 @property (nonatomic, readonly) CGFloat x;
15 @property (nonatomic, readonly) CGFloat y;
16 @property (nonatomic, readonly) CGFloat z;
17 
18 + (instancetype)origin;
19 - (instancetype)initUniformWithNumber:(CGFloat)x;
20 - (instancetype)initWithX:(CGFloat)x Y:(CGFloat)y Z:(CGFloat)z;
21 - (instancetype)initWithSCNVector:(SCNVector3)newValue;
22 - (instancetype)initWithSCNVector4:(SCNVector4)newValue;
23 - (instancetype)initWithCIVector:(CIVector *)newValue;
24 - (instancetype)initWithVector:(Vector *)vector;
25 - (instancetype)initWithArray:(NSArray *)array;
26 - (instancetype)initWithObject:(id)object;
27 - (BOOL)isEqualToVector:(SCNVector3)vector;
28 - (SCNVector3)toSCNVector;
29 @end
30 
31 
35 @interface Vector : NSObject <VectorExport>
40 @property (nonatomic) SCNVector3 vector;
41 
43 @property (nonatomic, readonly) CGFloat x;
45 @property (nonatomic, readonly) CGFloat y;
47 @property (nonatomic, readonly) CGFloat z;
48 
53 + (instancetype)origin;
60 - (instancetype)initUniformWithNumber:(CGFloat)x;
68 - (instancetype)initWithX:(CGFloat)x Y:(CGFloat)y Z:(CGFloat)z;
75 - (instancetype)initWithSCNVector:(SCNVector3)newValue;
86 - (instancetype)initWithSCNVector4:(SCNVector4)newValue;
98 - (instancetype)initWithCIVector:(CIVector *)newValue;
104 - (instancetype)initWithVector:(Vector *)vector;
112 - (instancetype)initWithArray:(NSArray *)array;
128 - (instancetype)initWithObject:(id)object;
129 
136 - (BOOL)isEqualToVector:(SCNVector3)vector;
137 
142 - (SCNVector3)toSCNVector;
143 @end
Definition: Vector.h:13
CGFloat y
The Vector's y component.
Definition: Vector.h:45
SCNVector3 toSCNVector()
Definition: Vector.m:94
Definition: Vector.h:35
CGFloat x
The Vector's x component.
Definition: Vector.h:43
instancetype origin()
Definition: Vector.m:12
CGFloat z
The Vector's z component.
Definition: Vector.h:47