These widgets were being created when the widget is in toolbar mode,
even though they were never used or added to a layout
Instead defer their creation so that it only happens when they are to
be used.
It looks like CMake 3.18 fixed escaping of `$` in generated Makefiles. It does on FreeBSD, at least, where I had to apply this patch in packaging to get existing QGis packages to build against newer CMake. I'm still checking if this doesn't break with older CMake, though -- I'm fairly confident of the syntax, but you never know until it compiles.
inputs for multi input parameters regardless of the required type
Otherwise we potentially block valid use cases. Better to be flexible
and catch errors at run time then prevent users making the model they need...
From the qt docs:
"The Gooch lighting model uses both color and brightness to help show the
curvature of 3D surfaces. This is often better than models such as Phong
that rely purely upon changes in brightness. In situations such as in CAD
and CAM applications where photorealism is not a goal, the Gooch shading
model in conjunction with some kind of silhouette edge inking is a popular
solution.
The Gooch lighting model is explained fully in the original Gooch paper.
The Gooch model mixes a diffuse object color with a user-provided cool
color and warm color to produce the end points of a color ramp that is
used to shade the object based upon the cosine of the angle between the
vector from the fragment to the light source and the fragment's normal
vector. Optionally, a specular highlight can be added on top. The
relative contributions to the cool and warm colors by the diffuse color
are controlled by the alpha and beta properties respecitvely."""
The TLDR: the shader works well for revealing 3d details of objects
which may otherwise be hidden due to the scene's lighting. Ultimately,
it's an easier material to work with as you don't need to worry
about setting up appropriate scene lighting in order to visualise features.
Restrict choice of material in widgets based on the symbol's required technique,
and hide material settings in phong widget which don't apply to certain
rendering techniques (e.g. hiding all but the ambient color for simple 3d line
symbols)
for specifying terrain layers to render
Previously the one method was used for both, which made it very
difficult to have a different set of layers used for terrain
generation vs 3d entity generation (you had to manually create a map
theme, which is very messy)