fuckingtech/public/assets/glsl/lygia/math/scale4d.msl
Elias Rhouzlane bf76c6b086 fix: code
2025-04-06 17:23:52 +02:00

47 lines
1.5 KiB
Text

/*
contributors: Patricio Gonzalez Vivo
description: returns a 4x4 scale matrix
use:
- <matrix<float, 4, 4>> scale4d(<float|float3|float4> radians)
- <matrix<float, 4, 4>> scale4d(<float> x, <float> y, <float> z [, <float> w])
license:
- Copyright (c) 2021 Patricio Gonzalez Vivo under Prosperity License - https://prosperitylicense.com/versions/3.0.0
- Copyright (c) 2021 Patricio Gonzalez Vivo under Patron License - https://lygia.xyz/license
*/
#ifndef FNC_SCALE4D
matrix<float, 4, 4> scale4d(float s) {
return matrix<float, 4, 4>(s, 0.0, 0.0, 0.0,
0.0, s, 0.0, 0.0,
0.0, 0.0, s, 0.0,
0.0, 0.0, 0.0, 1.0 );
}
matrix<float, 4, 4> scale4d(float x, float y, float z) {
return matrix<float, 4, 4>( x, 0.0, 0.0, 0.0,
0.0, y, 0.0, 0.0,
0.0, 0.0, z, 0.0,
0.0, 0.0, 0.0, 1.0);
}
matrix<float, 4, 4> scale4d(float x, float y, float z, float w) {
return matrix<float, 4, 4>( x, 0.0, 0.0, 0.0,
0.0, y, 0.0, 0.0,
0.0, 0.0, z, 0.0,
0.0, 0.0, 0.0, w );
}
matrix<float, 4, 4> scale4d(float3 s) {
return matrix<float, 4, 4>(s.x, 0.0, 0.0, 0.0,
0.0, s.y, 0.0, 0.0,
0.0, 0.0, s.z, 0.0,
0.0, 0.0, 0.0, 1.0 );
}
matrix<float, 4, 4> scale4d(float4 s) {
return matrix<float, 4, 4>(s.x, 0.0, 0.0, 0.0,
0.0, s.y, 0.0, 0.0,
0.0, 0.0, s.z, 0.0,
0.0, 0.0, 0.0, s.w );
}
#endif