Whilst usually this is bad practice (reusing an existing expression context),
and instead you should make a new context for every batch of expression evaluations,
we can't do this in the style model and we end up potentially creating
thousands of new contexts. So instead, we use a single one, which is
safe because the actual expression context used here is a very
basic one...
* Add button to change billboard symbol.
* Add shaders for billboards.
* Add billboard material class.
* Add sample billboard image.
* Add dummy handler for billboard.
* Add billboard geometry class.
* First working version of 3D point as billboard.
* Make selected feature bigger.
* Use default symbol preview as billboard.
* Update billboard when changes the viewport size.
* Use QgsTerrainTextureImage for adding image to texture.
* Show better quality of billboard default symbol.
* Promote QgsSymbolButton not working.
* Add QgsSymbolButton properly.
* Add seTexture2DFromSymbol.
* Use default symbol
* [On Progress] Get symbol from the QgsSymbolButton.
* [On progress] failed to change the symbol
* Fix billboard fragment shader for macOS
* Better transparency handling.
* Use size from the symbol.
* Add set layer for 3d billboard symbol.
* Set billboard size from the symbol pixel size * 20
* Use size from the image.
* [Debug] set white symbol to success kid, it work when previous billboard is success kid.
* Use store and restore symbol from Nyall.
* Remove unrelated code.
* Apply random extent to fix the bug, from Martin.
* Remove add mesh entities for billboard.
* Hide material and transformation widget for billboard.
* Remove add scene entities for billboard.
* Add selected as parameter in drawPreviewIcon.
* Add QgsMarkerSymbol to store the symbol in billboard
* Put billboard symbol in point3dsymbol serialization.
* Add billboard height in the UI.
* Set height for billboard.
* Store billboard height separately. Perhaps better to use existing transform.
* Set height of billboard to TY.
* Flipped image for billboard symbol.
* Add helper function to set billboard function.
* Generate billboard transform from general transform.
* Use static dpi for context size.
* Remove debug message.
* Use Qgs3DRenderContext for selection color and dpi from QgsApplication.
* Remove unnecessary file and code.
* Remove commented iut code.
* Add documentation of new classes.
* Fix banned keywords.
* Add missing parameter's documentation.
* Address PR review.
* Use context from readXML.
* Remove one line function.
* Fix billboard size.
* Make some functions private, remove unused function.
* Use unique_ptr for the ownership.
* Use unique_ptr for default symbol to avoid memory leak.
* Add parent to texture2D.
* Fix documentation.
* Add copy constructor.
* Fix documentation.
* Remove documentation warning.
* Fix sip error.
* Add unit test for billboard rendering.
* Set ambient to not transparent for measurement line.
* Add dpi in the Qgs3DMapSetting
* Update billboard rendering unit test.
* Remove layer from 3d point widget since it's not supported yet.
* Addressing PR review from Martin.
* Attach dom directly for the billboard symbol.
* Remove unused constructor for point3dsymbol.
* Use stroke width ratio for solving big stroke width.
* Update unit test for rendering with some stroke color.
* Fix typo.
Adds:
- __len__ : returns number of symbol layers in symbol
- [ ] getter: returns a specific symbol layer, also allows negative indices to retrieve from end of symbol
- del [ ]: removes a specific symbol layer, also allows negative indices
- raise IndexError when an invalid symbol layer is requested
- allow iteration over symbol layers using
for layer in symbol:
print(layer.color())
For the c++ api dox this expands to "\c nullptr" (the
\c directive indicates a code literal value), and for sipify/Python
it expands to ``None`` (`` is sphinx annotation for literal values)
Makes for nicer dox for both c++ and Python!
This new option, available under the "Advanced" button for fill symbols,
allows forcing rendered polygons to follow the standard "right hand
rule" for ring orientation (where exterior ring is clockwise, and
interior rings are all counter-clockwise).
The orientation fix is applied while rendering only, and the original
feature geometry is unchanged.
This allows for creation of fill symbols with consistent appearance,
regardless of the dataset being rendered and the ring orientation
of individual features.
Refs #12652