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

39 lines
No EOL
1.7 KiB
Text

#include "sqTile.msl"
#include "../math/mirror.msl"
/*
contributors: Patricio Gonzalez Vivo
description: mirror a tiles pattern
use:
- <float4> mirrorTile(<float4> tile)
- <float4> mirrorTile(<float2> st [, <float|float2> scale])
- <float4> mirrorXTile(<float4> tile)
- <float4> mirrorXTile(<float2> st [, <float|float2> scale])
- <float4> mirrorYTile(<float4> tile)
- <float4> mirrorYTile(<float2> st [, <float|float2> scale])
examples:
- https://raw.githubusercontent.com/patriciogonzalezvivo/lygia_examples/main/draw_tiles.frag
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_MIRRORTILE
#define FNC_MIRRORTILE
float4 mirrorTile(float4 t) { return float4( mirror(t.xy + t.zw), t.z, t.w); }
float4 mirrorTile(float2 v) { return mirrorTile(sqTile(v)); }
float4 mirrorTile(float2 v, float s) { return mirrorTile(v * s); }
float4 mirrorTile(float2 v, float2 s) { return mirrorTile(v * s); }
float4 mirrorXTile(float4 t) { return float4( mirror(t.x + t.z), t.y, t.z, t.w); }
float4 mirrorXTile(float2 v) { return mirrorXTile(sqTile(v)); }
float4 mirrorXTile(float2 v, float s) { return mirrorXTile(v * s); }
float4 mirrorXTile(float2 v, float2 s) { return mirrorXTile(v * s); }
float4 mirrorYTile(float4 t) { return float4( t.x, mirror(t.y + t.w), t.z, t.w); }
float4 mirrorYTile(float2 v) { return mirrorYTile(sqTile(v)); }
float4 mirrorYTile(float2 v, float s) { return mirrorYTile(v * s); }
float4 mirrorYTile(float2 v, float2 s) { return mirrorYTile(v * s); }
#endif