28 class ISurfaceMaterial;
33 class ApproachDescriptor;
40 using LayerPtr = std::shared_ptr<const Layer>;
42 using NextLayers = std::pair<const Layer*, const Layer*>;
92 virtual ~Layer() =
default;
140 template <
typename options_t>
142 return resolve(options.resolveSensitive, options.resolveMaterial,
143 options.resolvePassive);
153 virtual bool resolve(
bool resolveSensitive,
bool resolveMaterial,
154 bool resolvePassive)
const;
166 template <
typename options_t>
184 template <
typename options_t>
188 const options_t&
options)
const;
221 std::unique_ptr<ApproachDescriptor> ades =
nullptr,