31 class ISurfaceMaterial;
36 class ApproachDescriptor;
37 class IMaterialDecorator;
47 using LayerPtr = std::shared_ptr<const Layer>;
49 using NextLayers = std::pair<const Layer*, const Layer*>;
99 virtual ~Layer() =
default;
147 template <
typename options_t>
149 return resolve(options.resolveSensitive, options.resolveMaterial,
150 options.resolvePassive);
160 virtual bool resolve(
bool resolveSensitive,
bool resolveMaterial,
161 bool resolvePassive)
const;
198 const Vector3& direction)
const;
221 std::unique_ptr<ApproachDescriptor> ades =
nullptr,