glsl-out-of-range
Version:
Functions to test if a point is outside ranges, namely useful for 3D/2D scenes that may have reversed bounds
60 lines (37 loc) • 1.48 kB
Markdown
if a point is outside ranges.
It could be useful in vertex & fragment shaders to support reversed ranges (bounds) in 3D/2D scenes.
Function prototypes:
bool outOfRange(float a, float b, float p);
bool outOfRange(vec2 a, vec2 b, vec2 p);
bool outOfRange(vec3 a, vec3 b, vec3 p);
bool outOfRange(vec4 a, vec4 b, vec4 p);
Please note that in the case of vec4 input arguments, only 3 tests are made i.e. for xyz and not for w.
```glsl
void main() {
if (outOfRange(bounds[0], bounds[1], position)) discard;
gl_FragColor = vec4(1.0, 0.5, 0.25, 1.0);
}
```
Install with npm:
```
npm install glsl-out-of-range
```
Then use with [glslify](https://github.com/stackgl/glslify).
```glsl
```
| | Github | Twitter |
|---|--------|---------|
|**Alex C. Johnson**| [@alexcjohnson](https://github.com/alexcjohnson) | |
|**Étienne Tétreault-Pinard**| [@etpinard](https://github.com/etpinard) | [@etpinard](https://twitter.com/etpinard) |
|**Mojtaba Samimi**| [@archmoj](https://github.com/archmoj) | |
Code and documentation copyright 2018 Plotly, Inc.
Code released under the [MIT license](https://github.com/plotly/plotly.js/blob/master/LICENSE).
Docs released under the [Creative Commons license](https://github.com/plotly/documentation/blob/source/LICENSE).
Tests