@@ -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,17 @@ 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
453
462
# def scale(matrix, x, y), do: build_scale(x, y) |> (&Matrix.mul(matrix, &1)).()
454
463
# def scale(matrix, x, y, z), do: build_scale(x, y, z) |> (&Matrix.mul(matrix, &1)).()
455
464
@@ -468,7 +477,7 @@ defmodule Scenic.Math.Matrix do
468
477
Returns:
469
478
A number
470
479
"""
471
- @ spec get ( matrix :: number , x :: number , y :: number ) :: number
480
+ @ spec get ( matrix :: Math . matrix ( ) , x :: number , y :: number ) :: number
472
481
def get ( matrix , x , y )
473
482
474
483
def get ( matrix , x , y )
@@ -497,7 +506,7 @@ defmodule Scenic.Math.Matrix do
497
506
Returns:
498
507
A number
499
508
"""
500
- @ spec put ( matrix :: number , x :: number , y :: number , v :: number ) :: Math . matrix ( )
509
+ @ spec put ( matrix :: Math . matrix , x :: number , y :: number , v :: number ) :: Math . matrix ( )
501
510
def put ( matrix , x , y , v )
502
511
def put ( matrix , x , y , v ) when is_integer ( v ) , do: put ( matrix , x , y , v * 1.0 )
503
512
@@ -529,7 +538,7 @@ defmodule Scenic.Math.Matrix do
529
538
Returns:
530
539
A vector_2
531
540
"""
532
- @ spec get_xy ( matrix :: number ) :: Math . vector_2 ( )
541
+ @ spec get_xy ( matrix :: Math . matrix ) :: Math . vector_2 ( )
533
542
def get_xy ( matrix )
534
543
535
544
def get_xy ( <<
@@ -660,7 +669,7 @@ defmodule Scenic.Math.Matrix do
660
669
Returns:
661
670
The resulting matrix
662
671
"""
663
- @ spec mul ( matrix :: Math . matrix ( ) , multiplier :: number | Math . matrix ( ) ) :: Math . matrix ( )
672
+ @ spec mul ( matrix :: Math . matrix ( ) , multiplier :: ( number | Math . matrix ( ) ) ) :: Math . matrix ( )
664
673
665
674
def mul ( matrix , multiplier )
666
675
def mul ( a , s ) when is_integer ( s ) , do: mul ( a , s * 1.0 )
@@ -693,7 +702,7 @@ defmodule Scenic.Math.Matrix do
693
702
Returns:
694
703
The resulting matrix
695
704
"""
696
- @ spec mul ( matrix :: Math . matrix ( ) , divisor :: number ) :: Math . matrix ( )
705
+ @ spec div ( matrix :: Math . matrix ( ) , divisor :: number ) :: Math . matrix ( )
697
706
def div ( matrix , scalar )
698
707
def div ( a , s ) when is_integer ( s ) , do: Matrix . div ( a , s * 1.0 )
699
708
0 commit comments