lygia
/v1.1.4
/math
/map
)Map a value between one range to another.
Dependencies:
Use:
map(<float|vec2|vec3|vec4> value, <float|vec2|vec3|vec4> inMin, <float|vec2|vec3|vec4> inMax, <float|vec2|vec3|vec4> outMin, <float|vec2|vec3|vec4> outMax)
#ifndef FNC_MAP
#define FNC_MAP
float map( float value, float inMin, float inMax ) {
return saturate( (value-inMin)/(inMax-inMin));
}
vec2 map( vec2 value, vec2 inMin, vec2 inMax ) {
return saturate( (value-inMin)/(inMax-inMin));
}
vec3 map( vec3 value, vec3 inMin, vec3 inMax ) {
return saturate( (value-inMin)/(inMax-inMin));
}
vec4 map( vec4 value, vec4 inMin, vec4 inMax ) {
return saturate( (value-inMin)/(inMax-inMin));
}
float map(in float value, in float inMin, in float inMax, in float outMin, in float outMax) {
return outMin + (outMax - outMin) * (value - inMin) / (inMax - inMin);
}
vec2 map(in vec2 value, in vec2 inMin, in vec2 inMax, in vec2 outMin, in vec2 outMax) {
return outMin + (outMax - outMin) * (value - inMin) / (inMax - inMin);
}
vec3 map(in vec3 value, in vec3 inMin, in vec3 inMax, in vec3 outMin, in vec3 outMax) {
return outMin + (outMax - outMin) * (value - inMin) / (inMax - inMin);
}
vec4 map(in vec4 value, in vec4 inMin, in vec4 inMax, in vec4 outMin, in vec4 outMax) {
return outMin + (outMax - outMin) * (value - inMin) / (inMax - inMin);
}
#endif
Use:
map(<float|float2|float3|float4> value, <float|float2|float3|float4> inMin, <float|float2|float3|float4> inMax, <float|float2|float3|float4> outMin, <float|float2|float3|float4> outMax)
#ifndef FNC_MAP
#define FNC_MAP
float map( float value, float inMin, float inMax ) {
return saturate( (value-inMin)/(inMax-inMin));
}
float2 map( float2 value, float2 inMin, float2 inMax ) {
return saturate( (value-inMin)/(inMax-inMin));
}
float3 map( float3 value, float3 inMin, float3 inMax ) {
return saturate( (value-inMin)/(inMax-inMin));
}
float4 map( float4 value, float4 inMin, float4 inMax ) {
return saturate( (value-inMin)/(inMax-inMin));
}
float map(in float value, in float inMin, in float inMax, in float outMin, in float outMax) {
return outMin + (outMax - outMin) * (value - inMin) / (inMax - inMin);
}
float2 map(in float2 value, in float2 inMin, in float2 inMax, in float2 outMin, in float2 outMax) {
return outMin + (outMax - outMin) * (value - inMin) / (inMax - inMin);
}
float3 map(in float3 value, in float3 inMin, in float3 inMax, in float3 outMin, in float3 outMax) {
return outMin + (outMax - outMin) * (value - inMin) / (inMax - inMin);
}
float4 map(in float4 value, in float4 inMin, in float4 inMax, in float4 outMin, in float4 outMax) {
return outMin + (outMax - outMin) * (value - inMin) / (inMax - inMin);
}
#endif
Dependencies:
Use:
map(<float|float2|float3|float4> value, <float|float2|float3|float4> inMin, <float|float2|float3|float4> inMax, <float|float2|float3|float4> outMin, <float|float2|float3|float4> outMax)
#ifndef FNC_MAP
#define FNC_MAP
inline __host__ __device__ float map( float value, float inMin, float inMax ) { return saturate( (value-inMin)/(inMax-inMin)); }
inline __host__ __device__ float2 map( float2 value, float2 inMin, float2 inMax ) { return saturate( (value-inMin)/(inMax-inMin)); }
inline __host__ __device__ float3 map( float3 value, float3 inMin, float3 inMax ) { return saturate( (value-inMin)/(inMax-inMin)); }
inline __host__ __device__ float4 map( float4 value, float4 inMin, float4 inMax ) { return saturate( (value-inMin)/(inMax-inMin)); }
inline __host__ __device__ float map(float value, float inMin, float inMax, float outMin, float outMax) {
return outMin + (outMax - outMin) * (value - inMin) / (inMax - inMin);
}
inline __host__ __device__ float2 map(float2 value, float2 inMin, float2 inMax, float2 outMin, float2 outMax) {
return outMin + (outMax - outMin) * (value - inMin) / (inMax - inMin);
}
inline __host__ __device__ float3 map(float3 value, float3 inMin, float3 inMax, float3 outMin, float3 outMax) {
return outMin + (outMax - outMin) * (value - inMin) / (inMax - inMin);
}
inline __host__ __device__ float4 map(float4 value, float4 inMin, float4 inMax, float4 outMin, float4 outMax) {
return outMin + (outMax - outMin) * (value - inMin) / (inMax - inMin);
}
#endif
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.
Sign up for the news letter bellow, joing the LYGIA's channel on Discord or follow the Github repository