LYGIA Shader Library

decimate (lygia/math/decimate)

decimate a value with an specific presicion

Use:

<float|vec2|vec3|vec4> decimate(<float|vec2|vec3|vec4> value, <float|vec2|vec3|vec4> presicion)

Check it on Github


#ifndef FNC_DECIMATE
#define FNC_DECIMATE
float decimate(float v, float p){ return floor(v*p)/p; }
vec2 decimate(vec2 v, float p){ return floor(v*p)/p; }
vec2 decimate(vec2 v, vec2 p){ return floor(v*p)/p; }
vec3 decimate(vec3 v, float p){ return floor(v*p)/p; }
vec3 decimate(vec3 v, vec3 p){ return floor(v*p)/p; }
vec4 decimate(vec4 v, float p){ return floor(v*p)/p; }
vec4 decimate(vec4 v, vec4 p){ return floor(v*p)/p; }
#endif

Use:

<float|float2|float3|float4> decimate(<float|float2|float3|float4> value, <float|float2|float3|float4> presicion)

Check it on Github


#ifndef FNC_DECIMATE
#define FNC_DECIMATE
float decimate(float v, float p){ return floor(v*p)/p; }
float2 decimate(float2 v, float p){ return floor(v*p)/p; }
float2 decimate(float2 v, float2 p){ return floor(v*p)/p; }
float3 decimate(float3 v, float p){ return floor(v*p)/p; }
float3 decimate(float3 v, float3 p){ return floor(v*p)/p; }
float4 decimate(float4 v, float p){ return floor(v*p)/p; }
float4 decimate(float4 v, float4 p){ return floor(v*p)/p; }
#endif

Use:

<float|float2|float3|float4> decimate(<float|float2|float3|float4> value, <float|float2|float3|float4> presicion)

Check it on Github


#ifndef FNC_DECIMATE
#define FNC_DECIMATE
float decimate(float v, float p){ return floor(v*p)/p; }
float2 decimate(float2 v, float p){ return floor(v*p)/p; }
float2 decimate(float2 v, float2 p){ return floor(v*p)/p; }
float3 decimate(float3 v, float p){ return floor(v*p)/p; }
float3 decimate(float3 v, float3 p){ return floor(v*p)/p; }
float4 decimate(float4 v, float p){ return floor(v*p)/p; }
float4 decimate(float4 v, float4 p){ return floor(v*p)/p; }
#endif

Check it on Github


fn decimate(v: f32, d:f32) -> f32 { return floor(v * d) / d; }
fn decimate2(v: vec2f, d:vec2f) -> vec2f { return floor(v * d) / d; }
fn decimate3(v: vec3f, d:vec3f) -> vec3f { return floor(v * d) / d; }
fn decimate4(v: vec4f, d:vec4f) -> vec4f { return floor(v * d) / d; }

Dependencies:

Use:

<float|float2|float3|float4> decimate(<float|float2|float3|float4> value, <float|float2|float3|float4> presicion)

Check it on Github



#ifndef FNC_DECIMATE
#define FNC_DECIMATE
#define decimate(value, presicion) (floor(value * presicion)/presicion)
#endif

Examples

Licenses

LYGIA is dual-licensed under the Prosperity License and the Patron License for sponsors and contributors.

Sponsors and contributors are automatically added to the Patron License and they can ignore the any non-commercial rule of the Prosperity Licensed software (please take a look to the exception).

It's also possible to get a permanent comercial license hook to a single and specific version of LYGIA.

Get the latest news and releases

Sign up for the news letter bellow, joing the LYGIA's channel on Discord or follow the Github repository