@@ -199,10 +199,10 @@ defmodule Scenic.Math.Matrix do
199
199
"""
200
200
@ spec build_translation ( vector_2 :: Math . vector_2 ( ) ) :: Math . matrix ( )
201
201
def build_translation ( vector_2 )
202
- def build_translation ( { x , y } ) , do: build_translation ( { x , y , 0.0 } )
202
+ def build_translation ( { x , y } ) , do: do_build_translation ( { x , y , 0.0 } )
203
203
# def build_translation({x, y, z}), do: build_translation(x, y, z)
204
204
# def build_translation(x, y), do: build_translation(x, y, 0.0)
205
- def build_translation ( { x , y , z } ) do
205
+ defp do_build_translation ( { x , y , z } ) do
206
206
<<
207
207
1.0 :: float - size ( 32 ) - native ,
208
208
0.0 :: float - size ( 32 ) - native ,
@@ -235,11 +235,11 @@ defmodule Scenic.Math.Matrix do
235
235
"""
236
236
@ spec build_scale ( scale :: number | Math . vector_2 ( ) ) :: Math . matrix ( )
237
237
def build_scale ( scale )
238
- def build_scale ( s ) when is_number ( s ) , do: build_scale ( { s , s , s } )
239
- def build_scale ( { x , y } ) , do: build_scale ( { x , y , 1.0 } )
238
+ def build_scale ( s ) when is_number ( s ) , do: do_build_scale ( { s , s , s } )
239
+ def build_scale ( { x , y } ) , do: do_build_scale ( { x , y , 1.0 } )
240
240
# def build_scale({x, y, z}), do: build_scale(x, y, z)
241
241
# def build_scale(x, y), do: build_scale(x, y, 1.0)
242
- def build_scale ( { x , y , z } ) do
242
+ defp do_build_scale ( { x , y , z } ) do
243
243
<<
244
244
x * 1.0 :: float - size ( 32 ) - native ,
245
245
0.0 :: float - size ( 32 ) - native ,
@@ -394,13 +394,15 @@ defmodule Scenic.Math.Matrix do
394
394
Returns:
395
395
A binary matrix
396
396
"""
397
- @ spec rotate ( matrix :: number , pin :: Math . point ( ) | nil ) :: Math . matrix ( )
397
+ @ spec rotate ( matrix :: Math . matrix ( ) , angle :: number | nil ) :: Math . matrix ( )
398
398
def rotate ( matrix , angle )
399
399
def rotate ( matrix , nil ) , do: matrix
400
400
401
- def rotate ( matrix , amount ) do
402
- build_rotation ( amount )
403
- |> ( & Matrix . mul ( matrix , & 1 ) ) . ( )
401
+ def rotate ( matrix , angle ) do
402
+ Matrix . mul (
403
+ matrix ,
404
+ build_rotation ( angle )
405
+ )
404
406
end
405
407
406
408
# def rotate( matrix, radians, axis ) when is_atom(axis) do
@@ -419,13 +421,15 @@ defmodule Scenic.Math.Matrix do
419
421
Returns:
420
422
A binary matrix
421
423
"""
422
- @ spec translate ( matrix :: number , vector_2 :: Math . vector_2 ( ) | nil ) :: Math . matrix ( )
424
+ @ spec translate ( matrix :: Math . matrix ( ) , vector_2 :: Math . vector_2 ( ) | nil ) :: Math . matrix ( )
423
425
def translate ( matrix , vector_2 )
424
426
def translate ( matrix , nil ) , do: matrix
425
427
426
428
def translate ( matrix , { x , y } ) do
427
- build_translation ( { x , y } )
428
- |> ( & Matrix . mul ( matrix , & 1 ) ) . ( )
429
+ Matrix . mul (
430
+ matrix ,
431
+ build_translation ( { x , y } )
432
+ )
429
433
end
430
434
431
435
# def translate(matrix, {x, y, z}), do: translate(matrix, x, y, z)
@@ -444,12 +448,18 @@ defmodule Scenic.Math.Matrix do
444
448
Returns:
445
449
A binary matrix
446
450
"""
447
- @ spec scale ( matrix :: number , scale :: number | Math . vector_2 ( ) | nil ) :: Math . matrix ( )
451
+ @ spec scale ( matrix :: Math . matrix ( ) , scale :: number | Math . vector_2 ( ) | nil ) :: Math . matrix ( )
448
452
def scale ( matrix , scale )
449
453
def scale ( matrix , nil ) , do: matrix
450
454
# def scale(matrix, {x, y}), do: scale(matrix, {x, y})
451
455
# def scale(matrix, {x, y, z}), do: scale(matrix,{ x, y, z})
452
- def scale ( matrix , s ) , do: build_scale ( s ) |> ( & Matrix . mul ( matrix , & 1 ) ) . ( )
456
+ def scale ( matrix , s ) do
457
+ Matrix . mul (
458
+ matrix ,
459
+ build_scale ( s )
460
+ )
461
+ end
462
+
453
463
# def scale(matrix, x, y), do: build_scale(x, y) |> (&Matrix.mul(matrix, &1)).()
454
464
# def scale(matrix, x, y, z), do: build_scale(x, y, z) |> (&Matrix.mul(matrix, &1)).()
455
465
@@ -468,7 +478,7 @@ defmodule Scenic.Math.Matrix do
468
478
Returns:
469
479
A number
470
480
"""
471
- @ spec get ( matrix :: number , x :: number , y :: number ) :: number
481
+ @ spec get ( matrix :: Math . matrix ( ) , x :: number , y :: number ) :: number
472
482
def get ( matrix , x , y )
473
483
474
484
def get ( matrix , x , y )
@@ -497,7 +507,7 @@ defmodule Scenic.Math.Matrix do
497
507
Returns:
498
508
A number
499
509
"""
500
- @ spec put ( matrix :: number , x :: number , y :: number , v :: number ) :: Math . matrix ( )
510
+ @ spec put ( matrix :: Math . matrix ( ) , x :: number , y :: number , v :: number ) :: Math . matrix ( )
501
511
def put ( matrix , x , y , v )
502
512
def put ( matrix , x , y , v ) when is_integer ( v ) , do: put ( matrix , x , y , v * 1.0 )
503
513
@@ -529,7 +539,7 @@ defmodule Scenic.Math.Matrix do
529
539
Returns:
530
540
A vector_2
531
541
"""
532
- @ spec get_xy ( matrix :: number ) :: Math . vector_2 ( )
542
+ @ spec get_xy ( matrix :: Math . matrix ( ) ) :: Math . vector_2 ( )
533
543
def get_xy ( matrix )
534
544
535
545
def get_xy ( <<
@@ -693,7 +703,7 @@ defmodule Scenic.Math.Matrix do
693
703
Returns:
694
704
The resulting matrix
695
705
"""
696
- @ spec mul ( matrix :: Math . matrix ( ) , divisor :: number ) :: Math . matrix ( )
706
+ @ spec div ( matrix :: Math . matrix ( ) , divisor :: number ) :: Math . matrix ( )
697
707
def div ( matrix , scalar )
698
708
def div ( a , s ) when is_integer ( s ) , do: Matrix . div ( a , s * 1.0 )
699
709
0 commit comments