File tree Expand file tree Collapse file tree 8 files changed +71
-59
lines changed Expand file tree Collapse file tree 8 files changed +71
-59
lines changed Original file line number Diff line number Diff line change
1
+ package glm_.vec1
2
+
3
+ interface Vec1Vars <T : Number > {
4
+ var x: T
5
+
6
+ fun component1 () = x
7
+
8
+
9
+ // -- Component accesses --
10
+
11
+ operator fun get (index : Int ) = when (index) {
12
+ 0 -> x
13
+ else -> throw IndexOutOfBoundsException ()
14
+ }
15
+ }
Original file line number Diff line number Diff line change @@ -16,21 +16,13 @@ import java.nio.*
16
16
* Created bY GBarbieri on 05.10.2016.
17
17
*/
18
18
19
- abstract class Vec1t <T : Number >(_x : T ): ToBuffer {
19
+ abstract class Vec1t <T : Number >(_x : T ): Vec1Vars<T>, ToBuffer {
20
20
21
21
// @JvmField TODO bug
22
- var x = _x
23
-
24
- fun component1 () = x
25
-
22
+ override var x = _x
26
23
27
24
// -- Component accesses --
28
25
29
- operator fun get (index : Int ) = when (index) {
30
- 0 -> x
31
- else -> throw IndexOutOfBoundsException ()
32
- }
33
-
34
26
open operator fun set (index : Int , value : T ) = when (index) {
35
27
0 -> x = value
36
28
else -> throw IndexOutOfBoundsException ()
Original file line number Diff line number Diff line change
1
+ package glm_.vec2
2
+
3
+ import glm_.vec1.Vec1Vars
4
+
5
+ interface Vec2Vars <T : Number > : Vec1Vars <T > {
6
+ var y: T
7
+
8
+ fun component2 () = y
9
+
10
+
11
+ // -- Component accesses --
12
+
13
+ override operator fun get (index : Int ) = when (index) {
14
+ 1 -> y
15
+ else -> super .get(index)
16
+ }
17
+ }
Original file line number Diff line number Diff line change @@ -13,22 +13,10 @@ import java.nio.*
13
13
* Created bY GBarbieri on 05.10.2016.
14
14
*/
15
15
16
- abstract class Vec2t <T : Number >: ToBuffer {
17
-
18
- abstract var x: T
19
- abstract var y: T
20
-
21
- operator fun component1 () = x
22
- operator fun component2 () = y
16
+ abstract class Vec2t <T : Number >: Vec2Vars <T >, ToBuffer {
23
17
24
18
// -- Component accesses --
25
19
26
- operator fun get (index : Int ) = when (index) {
27
- 0 -> x
28
- 1 -> y
29
- else -> throw IndexOutOfBoundsException ()
30
- }
31
-
32
20
abstract operator fun set (index : Int , value : Number )
33
21
34
22
// -- infix Generic Constructors --
Original file line number Diff line number Diff line change
1
+ package glm_.vec3
2
+
3
+ import glm_.vec2.Vec2Vars
4
+
5
+ interface Vec3Vars <T : Number > : Vec2Vars <T > {
6
+ var z: T
7
+
8
+ fun component3 () = z
9
+
10
+
11
+ // -- Component accesses --
12
+
13
+ override operator fun get (index : Int ) = when (index) {
14
+ 2 -> z
15
+ else -> super .get(index)
16
+ }
17
+ }
Original file line number Diff line number Diff line change @@ -9,26 +9,10 @@ import glm_.vec4.Vec4bool
9
9
import glm_.vec4.Vec4t
10
10
import java.nio.*
11
11
12
- abstract class Vec3t <T : Number >: ToBuffer {
13
-
14
- abstract var x: T
15
- abstract var y: T
16
- abstract var z: T
17
-
18
- operator fun component1 () = x
19
- operator fun component2 () = y
20
- operator fun component3 () = z
21
-
12
+ abstract class Vec3t <T : Number >: Vec3Vars <T >, ToBuffer {
22
13
23
14
// -- Component accesses --
24
15
25
- operator fun get (index : Int ) = when (index) {
26
- 0 -> x
27
- 1 -> y
28
- 2 -> z
29
- else -> throw IndexOutOfBoundsException ()
30
- }
31
-
32
16
abstract operator fun set (index : Int , value : Number )
33
17
34
18
// -- infix Generic Constructors --
Original file line number Diff line number Diff line change
1
+ package glm_.vec4
2
+
3
+ import glm_.vec3.Vec3Vars
4
+
5
+ interface Vec4Vars <T : Number > : Vec3Vars <T > {
6
+ var w: T
7
+
8
+ fun component4 () = w
9
+
10
+
11
+ // -- Component accesses --
12
+
13
+ override operator fun get (index : Int ) = when (index) {
14
+ 3 -> w
15
+ else -> super .get(index)
16
+ }
17
+ }
Original file line number Diff line number Diff line change @@ -10,25 +10,7 @@ import glm_.vec3.Vec3t
10
10
import java.nio.*
11
11
12
12
// TODO other
13
- abstract class Vec4t <T : Number > : ToBuffer {
14
-
15
- abstract var x: T
16
- abstract var y: T
17
- abstract var z: T
18
- abstract var w: T
19
-
20
- operator fun component1 () = x
21
- operator fun component2 () = y
22
- operator fun component3 () = z
23
- operator fun component4 () = w
24
-
25
- operator fun get (index : Int ) = when (index) {
26
- 0 -> x
27
- 1 -> y
28
- 2 -> z
29
- 3 -> w
30
- else -> throw IndexOutOfBoundsException ()
31
- }
13
+ abstract class Vec4t <T : Number > : Vec4Vars <T >, ToBuffer {
32
14
33
15
abstract operator fun set (index : Int , value : Number )
34
16
You can’t perform that action at this time.
0 commit comments