Commit Graph

12102 Commits

Author SHA1 Message Date
Olivier Guyot
a39f751981 Shader Builder / adapt logic & test to the new expression types
Also fixes a sneaky bug where the two last texture coordinates were inverted.
2019-10-25 14:55:44 +02:00
Olivier Guyot
27c530ec64 Expressions / introduce the match operator
This operator allows mapping from input values to output values of different
kinds and handles variable arguments count.
2019-10-25 14:55:44 +02:00
Olivier Guyot
e3f7d29bb2 Expressions / add utilities for using strings in GLSL & more type checking
It is now possible to specify a type hint when parsing an expression, which
helps determine the output value type.

When no single output type can be inferred, an error is thrown.

For strings, every literal value will be replaced by a number and a map of
these associations will be kept in the parsing context, which is passed
recursively.
2019-10-25 14:55:44 +02:00
Olivier Guyot
31dae929f5 ShaderBuilder / adapt logic & tests to new expressions module 2019-10-25 14:55:44 +02:00
Olivier Guyot
bcf7649b9a Expressions / store the variables & attributes in the context 2019-10-25 14:55:44 +02:00
Olivier Guyot
7e4119d580 Expressions / restored the parsing logic with better type checking
Converting expressions to GLSL is now done in ol/style/expressions, with the
same logic as before in ol/webgl/ShaderBuilder.
2019-10-25 14:55:44 +02:00
Olivier Guyot
72903d6454 Expressions / added operator declarations & type checking logic 2019-10-25 14:55:44 +02:00
Olivier Guyot
35af80b433 Style / add an ol/style/expressions module
This module will contain the utilities and operator declarations
for literal style expressions, boh for type checking and parsing
2019-10-25 14:55:44 +02:00
Andreas Hocevar
61c4fa8cd6 Document that map render events do not have a context set 2019-10-24 16:32:04 +02:00
Frederic Junod
88bbb8c1ae Clamp the weight value between 0 and 1 2019-10-24 13:52:59 +02:00
Tim Schaub
6b4e00e6ac Remove description from type tag 2019-10-23 10:27:56 -06:00
Andreas Hocevar
bf7af07657 Ensure inherited docs are shown 2019-10-23 14:40:27 +02:00
mike-000
ce8b63a67e Open default attributions links in new tab/window 2019-10-23 12:10:55 +01:00
mike-000
6b25f713cd Open default attributions links in new tab/window 2019-10-23 12:08:40 +01:00
mike-000
4b79818797 Open default attributions links in new tab/window 2019-10-23 12:03:01 +01:00
Andreas Hocevar
062614388c Merge pull request #10161 from ahocevar/vectorimage-getfeatures
Implement getFeatures() for ol/layer/VectorImage
2019-10-23 11:26:08 +02:00
Olivier Guyot
8c5be52462 Merge pull request #10168 from jahow/webgl-style-add-filter
Webgl / Add support for filtering and color interpolation in style expressions
2019-10-23 09:45:16 +02:00
Olivier Guyot
fc555241ea ShaderBuilder / simplify check/parse code a bit 2019-10-23 09:22:12 +02:00
Olivier Guyot
d837166a1b Literal Style / add new math operators 2019-10-22 23:17:00 +02:00
Olivier Guyot
c659c05de8 ShaderBuilder / fix stretch operator GLSL expression 2019-10-22 23:17:00 +02:00
Olivier Guyot
485ade42b5 Literal Style / add support for color interpolation 2019-10-22 23:17:00 +02:00
Olivier Guyot
85c3aae454 ShaderBuilder / add support for color interpolation in parse 2019-10-22 23:17:00 +02:00
Olivier Guyot
a29fc016f5 ShaderBuilder / formatColor/Array utilities now output vecX(...) 2019-10-22 23:17:00 +02:00
Olivier Guyot
19eadaea24 Shader Builder / add type checking in expressions parsing
All expressions will now be type checked before actually being parsed.
2019-10-22 23:17:00 +02:00
Olivier Guyot
b8e8d30df0 Shader Builder / add utilities for checking an expression type
Type checking is done either against a literal value (number, string...)
or against the operator in case of an expression.

Sometimes it is not possible to infer only one type, for example
the value 'transparent' could either be a color or a string. This
is covered by the fact that all operators expect exactly one type
for their arguments.
2019-10-22 23:17:00 +02:00
Olivier Guyot
f43637cc33 Shader Builder / support strings in formatColor 2019-10-22 23:17:00 +02:00
Olivier Guyot
56faf4c3ad Color / add an isStringColor utility function 2019-10-22 23:17:30 +02:00
Olivier Guyot
a0b271a812 Literal Style / add support for variables in the style
These variables are accessed using the `var` operator, and are meant
to be mutated directly in the style object. When doing so,
the new value will always be used for the render.

This is intended to be used for modifying the style through external
parameters such as an input field, a slider, mouse position etc.
2019-10-22 23:17:00 +02:00
Olivier Guyot
a1c00744d1 Webgl points renderer / throw if shader compilation fails
This should only happen if providing handcrafted shaders to the renderer.
2019-10-22 23:17:00 +02:00
Olivier Guyot
94b8cf6af3 Webgl / add support for a time operator in literal styles
This required adding `u_time` as one of the default uniforms provided by the
webgl helper.
2019-10-22 23:17:23 +02:00
Olivier Guyot
0c0c8c5d56 Literal Style / add support for a filter property 2019-10-22 23:17:00 +02:00
Andreas Hocevar
fef4d4e9b7 Merge pull request #10093 from mike-000/patch-3
Set label text for Graticule option styles
2019-10-22 15:23:01 +02:00
mike-000
110c17cf9e Remove label style caches 2019-10-22 12:04:06 +01:00
Olivier Guyot
e38250ee14 ShaderBuilder / add fragment discard expression in shader params 2019-10-22 11:39:30 +02:00
Andreas Hocevar
39012a58f8 Implement getFeatures() for ol/layer/VectorImage 2019-10-22 11:27:26 +02:00
Olivier Guyot
7b66b294a8 ShaderBuilder / attempt to clarify the way attributes are handled in parseSymbolStyle 2019-10-22 11:18:39 +02:00
Olivier Guyot
9ee93cd2cf ShaderBuilder / refactoring to use an actual builder pattern
There is now a ShaderBuilder class with chainable methods
to specify more easily the contents of the final shaders.
This is to avoid passing around large objects to different functions,
and allow for a richer API.

The documentation has also been corrected and clarified.
2019-10-22 11:12:06 +02:00
Edward Nash
9eb4816b27 Fix property name collision target_ with Control
* As described in #10158, Control uses the property target_ for
   a custom parent HTMLElement, leading to Events on the Control being
   dispatched with that as the target and not the Control itself.

 * Solved by renaming the target_ property on Target to eventTarget_
2019-10-22 09:37:05 +02:00
Andreas Hocevar
3d351a53e6 Merge pull request #10142 from ahocevar/fix-tilechange-events
Fix tilechange events
2019-10-19 09:06:12 +02:00
Andreas Hocevar
36a366bfeb Do not stop event propagation in prepareTile 2019-10-18 20:50:01 +02:00
wirdehall
bd5510b62a Updated docs for Select style.
Updated docs for Select style with new option of false.
2019-10-18 00:20:05 +02:00
wirdehall
a34e7ddd99 Should be able to ovveride defaultvalue of style in selection.
null or false should be able to prevent overriding the style.
As discussed here: https://github.com/openlayers/openlayers/issues/10131
2019-10-17 15:05:30 +02:00
mike-000
2b1417df3f Revise the description of applyTransform
Revise the description of applyTransform and transformFn (loosely based on that used in ol/extent) to avoid any misunderstanding that the function is called inside a forEach method.
2019-10-16 13:59:38 +01:00
Andreas Hocevar
61fc71c30f Properly unregister source tile change listeners 2019-10-15 21:23:37 +02:00
Andreas Hocevar
54884314ee Merge pull request #10094 from ahocevar/immediate-hitdetection
New Layer#getFeatures method with fast hit detection
2019-10-14 22:21:08 +02:00
Frédéric Junod
aba93e7b9c Merge pull request #10104 from openlayers/attribution_font_size
Remove font sizing from the attribution control
2019-10-14 15:28:02 +02:00
Andreas Hocevar
90d6a6f441 Move hit detection to its own module 2019-10-14 14:40:06 +02:00
Andreas Hocevar
7454df0c2f Resolve empty when tile not loaded yet 2019-10-14 14:13:57 +02:00
Tim Schaub
f475387d39 Merge pull request #10108 from notnotse/issue/9814-fix-documentation-for-handlemoveevent
Fix documentation for handleMoveEvent
2019-10-12 08:14:39 -06:00
Tim Schaub
5af4dfa623 Merge pull request #10118 from mike-000/patch-7
Document the OSM crossOrigin default
2019-10-12 08:13:17 -06:00