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.*
1616 * Created bY GBarbieri on 05.10.2016.
1717 */
1818
19- abstract class Vec1t <T : Number >(_x : T ): ToBuffer {
19+ abstract class Vec1t <T : Number >(_x : T ): Vec1Vars<T>, ToBuffer {
2020
2121// @JvmField TODO bug
22- var x = _x
23-
24- fun component1 () = x
25-
22+ override var x = _x
2623
2724 // -- Component accesses --
2825
29- operator fun get (index : Int ) = when (index) {
30- 0 -> x
31- else -> throw IndexOutOfBoundsException ()
32- }
33-
3426 open operator fun set (index : Int , value : T ) = when (index) {
3527 0 -> x = value
3628 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.*
1313 * Created bY GBarbieri on 05.10.2016.
1414 */
1515
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 {
2317
2418 // -- Component accesses --
2519
26- operator fun get (index : Int ) = when (index) {
27- 0 -> x
28- 1 -> y
29- else -> throw IndexOutOfBoundsException ()
30- }
31-
3220 abstract operator fun set (index : Int , value : Number )
3321
3422 // -- 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
99import glm_.vec4.Vec4t
1010import java.nio.*
1111
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 {
2213
2314 // -- Component accesses --
2415
25- operator fun get (index : Int ) = when (index) {
26- 0 -> x
27- 1 -> y
28- 2 -> z
29- else -> throw IndexOutOfBoundsException ()
30- }
31-
3216 abstract operator fun set (index : Int , value : Number )
3317
3418 // -- 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
1010import java.nio.*
1111
1212// 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 {
3214
3315 abstract operator fun set (index : Int , value : Number )
3416
You can’t perform that action at this time.
0 commit comments